Вот мой sip профиль с gateway
<profile name="supptechttk">
<aliases>
</aliases>
<gateways>
<gateway name="samara-ast1">
<param name="username" value="xxx"/><!-- -->
<param name="password" value="yyy"/>
<param name="realm" value="10.200.104.11"/>
<param name="from-domain" value="sip.svttk.ru"/>
<param name="register" value="false"/>
<param name="caller-id-in-from" value="false"/>
<param name="contact-params" value="tport=tcp"/>
<param name="context" value="support_svttk"/>
</gateway>
</gateways>
<domains>
<domain name="all" alias="false" parse="true"/>
</domains>
<settings>
<param name="user-agent-string" value="FreeSWITCH TTK"/> <!-- Название SIP-агента-->
<param name="caller-id-type" value="rpid"/>
<!--Диагностика -->
<param name="debug" value="0"/> <!-- Дебаг отключен -->
<param name="sip-trace" value="no"/> <!-- Трассировка отключена -->
<param name="sip-capture" value="no"/> <!-- Захват SIP трафика отключен -->
<param name="log-auth-failures" value="true"/> <!-- Включаем логи неуспешных попыток авторизации-->
<!-- Параметры DTMF -->
<param name="rfc2833-pt" value="101"/> <!-- Идентификатор DTMF 2833 в трафике RTP-->
<param name="dtmf-duration" value="2000"/>
<param name="dtmf-type" value="rfc2833"/>
<param name=”liberal-dtmf” value=”true”/> <!-- всегда предлагать rfc2833, а принимать и rfc2833, и info dtmf -->
<!-- Параметры WatchDOG (перезапуск сервера, если он вдруг перестал отвечать) -->
<param name="watchdog-enabled" value="false"/> <!-- Выключен. -->
<param name="watchdog-step-timeout" value="30000"/>
<param name="watchdog-event-timeout" value="30000"/>
<!-- На каком порту и на каком Ip адресе будет работать профиль-->
<param name="sip-port" value="5060"/>
<param name="sip-ip" value="$${local_ip_v4}"/>
<param name="rtp-ip" value="$${local_ip_v4}"/>
<param name="nonce-ttl" value="60"/> <!-- Параметр TTL-->
<param name="ext-rtp-ip" value="auto-nat"/>
<param name="ext-sip-ip" value="auto-nat"/>
<param name="dialplan" value="XML"/>
<param name="context" value="support_svttk"/>
<param name="max-proceeding" value="1000"/>
<param name="hold-music" value="$${hold_music}"/><!-- MOH -->
<param name="unregister-on-options-fail" value="true"/>
<param name="all-reg-options-ping" value="true"/>
<param name="nat-options-ping" value="true"/>
<param name="unregister-on-options-fail" value="true"/>
<param name="sip-options-respond-503-on-busy" value="true"/>
<param name="auth-calls" value="false"/>
<!-- Кодеки и RTP -->
<param name="outbound-codec-prefs" value="$${global_codec_prefs}"/>
<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
<param name="disable-transcoding" value="true"/>
<param name=”inbound-codec-negotiation” value="generous"/>
<param name="inbound-late-negotiation" value="true"/>
<param name="rtp-timer-name" value="soft"/>
<param name="auto-jitterbuffer-msec" value="60"/>
<param name="rtp-timeout-sec" value="300"/>
<param name="rtp-hold-timeout-sec" value="1800"/>
<!-- Прочие параметры SIP -->
<param name="enable-timer" value="false"/>
<param name="auth-all-packets" value="false"/>
<param name="enable-100rel" value="true"/>
<param name="challenge-realm" value="auto_from"/>
<param name="manage-presence" value="false"/>
<param name="accept-blind-auth" value="false"/>
<param name="accept-blind-reg" value="false"/>
<param name="ws-binding" value=":5066"/>
<param name="record-path" value="$${recordings_dir}"/>
<param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
</settings>
</profile>
Как мне кажется ключевой момент в том, что переменной effective_caller_id_number не присвается в процессе набора никакого значения:
2015-12-08 15:01:09.171864 [DEBUG] switch_core_state_machine.c:216 (
sofia/supptechttk/2003@sip.svttk.ru) State Change CS_ROUTING -> CS_EXECUTE
2015-12-08 15:01:09.171864 [DEBUG] switch_core_state_machine.c:532 (
sofia/supptechttk/2003@sip.svttk.ru) State ROUTING going to sleep
2015-12-08 15:01:09.171864 [DEBUG] switch_core_state_machine.c:473 (
sofia/supptechttk/2003@sip.svttk.ru) Running State Change CS_EXECUTE
2015-12-08 15:01:09.171864 [DEBUG] switch_core_state_machine.c:539 (
sofia/supptechttk/2003@sip.svttk.ru) State EXECUTE
2015-12-08 15:01:09.171864 [DEBUG] mod_sofia.c:196
sofia/supptechttk/2003@sip.svttk.ru SOFIA EXECUTE
2015-12-08 15:01:09.171864 [DEBUG] switch_core_state_machine.c:258
sofia/supptechttk/2003@sip.svttk.ru Standard EXECUTE
EXECUTE
sofia/supptechttk/2003@sip.svttk.ru set(hangup_after_bridge=true)
2015-12-08 15:01:09.171864 [DEBUG] mod_dptools.c:1498 SET
sofia/supptechttk/2003@sip.svttk.ru [hangup_after_bridge]=[true]
EXECUTE
sofia/supptechttk/2003@sip.svttk.ru set(continue_on_fail=true)
2015-12-08 15:01:09.171864 [DEBUG] mod_dptools.c:1498 SET
sofia/supptechttk/2003@sip.svttk.ru [continue_on_fail]=[true]
EXECUTE
sofia/supptechttk/2003@sip.svttk.ru set(effective_caller_id_number=)
2015-12-08 15:01:09.171864 [DEBUG] mod_dptools.c:1498 SET
sofia/supptechttk/2003@sip.svttk.ru [effective_caller_id_number]=
[UNDEF]EXECUTE
sofia/supptechttk/2003@sip.svttk.ru set(effective_caller_id_name=)
2015-12-08 15:01:09.171864 [DEBUG] mod_dptools.c:1498 SET
sofia/supptechttk/2003@sip.svttk.ru [effective_caller_id_name]=
[UNDEF]EXECUTE
sofia/supptechttk/2003@sip.svttk.ru log(INFO 2003 ----> 9735050)
2015-12-08 15:01:09.171864 [INFO] mod_dptools.c:1692 2003 ----> 9735050
Значение присваивается, только если в диалплане четко прописать например так:
<action application="set" data="effective_caller_id_number=2059568"/>
а вот так не работает
<action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
Хотя переменная outbound_caller_id_number в описании пользователя в directory определена