Да, понял. Не сразу, правда.
Добавляю в файл пользователя number-alias="811" и работает. Но вот..
На FS вн. адрес. Домен, на котором все пользователи, по идее, должен работать с внешним ИП. Все порты проброшены, все ок. Пользователи тестовые регистрируются с настройками внешнего IP, изнутри локалки и снаружи, без проблем. Вызовы друг другу ходят.
Если звонить 205 - полет нормальный. Если набирать 811, FS почему то сваливается в дефолтный домен. Все перерыл, кроме глобальных настроек нигде нет упоминания вн. IP адреса.
<extension name="Local_Extension9"> <condition field="destination_number" expression="^(8[01][0-9])$"> <action application="export" data="dialed_extension=$1"/> <action application="set" data="ringback=${ru-ring}"/> <action application="set" data="transfer_ringback=$${hold_music}"/> <action application="set" data="call_timeout=30"/> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="continue_on_fail=true"/> <action application="bridge" data="user/${user_data(${dialed_extension}@внешний_IP attr id)}"/> </condition> </extension>
Dialplan: sofia/internal/1001@внешний_IP Absolute Condition [global] Dialplan: sofia/internal/1001@внешний_IP Action hash(insert/${domain_name}-spymap/${caller_id_number}/${uuid}) Dialplan: sofia/internal/1001@внешний_IP Action hash(insert/${domain_name}-last_dial/${caller_id_number}/${destination_number}) Dialplan: sofia/internal/1001@внешний_IP Action hash(insert/${domain_name}-last_dial/global/${uuid}) Dialplan: sofia/internal/1001@внешний_IP Action export(RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}) Dialplan: sofia/internal/1001@внешний_IP parsing [default->snom-demo-2] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [snom-demo-2] destination_number(811) =~ /^9001$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->snom-demo-1] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [snom-demo-1] destination_number(811) =~ /^9000$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->eavesdrop] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [eavesdrop] destination_number(811) =~ /^88(\d{4})$|^\*0(.*)$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->eavesdrop] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [eavesdrop] destination_number(811) =~ /^779$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->call_return] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [call_return] destination_number(811) =~ /^\*69$|^869$|^lcr$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->del-group] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [del-group] destination_number(811) =~ /^80(\d{2})$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->add-group] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [call-group-simo] destination_number(811) =~ /^82(\d{2})$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->call-group-order] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [call-group-order] destination_number(811) =~ /^83(\d{2})$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->extension-intercom] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [extension-intercom] destination_number(811) =~ /^8(10[01][0-9])$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->Local_Extension] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [Local_Extension] destination_number(811) =~ /^(10[01][0-9])$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->Local_Extension2] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (FAIL) [Local_Extension2] destination_number(811) =~ /^(\d{5})$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP parsing [default->Local_Extension9] continue=false Dialplan: sofia/internal/1001@внешний_IP Regex (PASS) [Local_Extension9] destination_number(811) =~ /^(8[01][0-9])$/ break=on-false Dialplan: sofia/internal/1001@внешний_IP Action export(dialed_extension=811) Dialplan: sofia/internal/1001@внешний_IP Action set(ringback=${ru-ring}) Dialplan: sofia/internal/1001@внешний_IP Action set(transfer_ringback=local_stream://moh) Dialplan: sofia/internal/1001@внешний_IP Action set(call_timeout=30) Dialplan: sofia/internal/1001@внешний_IP Action set(hangup_after_bridge=true) Dialplan: sofia/internal/1001@внешний_IP Action set(continue_on_fail=true) Dialplan: sofia/internal/1001@внешний_IP Action bridge(user/${user_data(${dialed_extension}@внешний_IP attr id)}) 2019-08-21 14:46:14.317054 [DEBUG] switch_core_state_machine.c:286 (sofia/internal/1001@внешний_IP) State Change CS_ROUTING -> CS_EXECUTE 2019-08-21 14:46:14.317054 [DEBUG] switch_core_state_machine.c:643 (sofia/internal/1001@внешний_IP) State ROUTING going to sleep 2019-08-21 14:46:14.317054 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/1001@внешний_IP) Running State Change CS_EXECUTE (Cur 1 Tot 24) 2019-08-21 14:46:14.317054 [DEBUG] switch_core_state_machine.c:650 (sofia/internal/1001@внешний_IP) State EXECUTE 2019-08-21 14:46:14.317054 [DEBUG] mod_sofia.c:209 sofia/internal/1001@внешний_IP SOFIA EXECUTE 2019-08-21 14:46:14.317054 [DEBUG] switch_core_state_machine.c:328 sofia/internal/1001@внешний_IP Standard EXECUTE EXECUTE sofia/internal/1001@внешний_IP set(open=true) 2019-08-21 14:46:14.317054 [DEBUG] mod_dptools.c:1598 SET sofia/internal/1001@внешний_IP [open]=[true] EXECUTE sofia/internal/1001@внешний_IP hash(insert/10.133.40.51-spymap/1001/5c78986d-7eb6-4ae1-83b3-b8b5ace3458e) EXECUTE sofia/internal/1001@внешний_IP hash(insert/10.133.40.51-last_dial/1001/811) EXECUTE sofia/internal/1001@внешний_IP hash(insert/10.133.40.51-last_dial/global/5c78986d-7eb6-4ae1-83b3-b8b5ace3458e) EXECUTE sofia/internal/1001@внешний_IP export(RFC2822_DATE=Wed, 21 Aug 2019 14:46:14 +0300) 2019-08-21 14:46:14.317054 [DEBUG] switch_channel.c:1296 EXPORT (export_vars) [RFC2822_DATE]=[Wed, 21 Aug 2019 14:46:14 +0300] EXECUTE sofia/internal/1001@внешний_IP export(dialed_extension=811) 2019-08-21 14:46:14.317054 [DEBUG] switch_channel.c:1296 EXPORT (export_vars) [dialed_extension]=[811] EXECUTE sofia/internal/1001@внешний_IP set(ringback=%(800,3200,425)) 2019-08-21 14:46:14.317054 [DEBUG] mod_dptools.c:1598 SET sofia/internal/1001@внешний_IP [ringback]=[%(800,3200,425)] EXECUTE sofia/internal/1001@внешний_IP set(transfer_ringback=local_stream://moh) 2019-08-21 14:46:14.317054 [DEBUG] mod_dptools.c:1598 SET sofia/internal/1001@внешний_IP [transfer_ringback]=[local_stream://moh] EXECUTE sofia/internal/1001@внешний_IP set(call_timeout=30) 2019-08-21 14:46:14.317054 [DEBUG] mod_dptools.c:1598 SET sofia/internal/1001@внешний_IP [call_timeout]=[30] EXECUTE sofia/internal/1001@внешний_IP set(hangup_after_bridge=true) 2019-08-21 14:46:14.317054 [DEBUG] mod_dptools.c:1598 SET sofia/internal/1001@внешний_IP [hangup_after_bridge]=[true] EXECUTE sofia/internal/1001@внешний_IP set(continue_on_fail=true) 2019-08-21 14:46:14.317054 [DEBUG] mod_dptools.c:1598 SET sofia/internal/1001@внешний_IP [continue_on_fail]=[true] EXECUTE sofia/internal/1001@внешний_IP bridge(user/205) 2019-08-21 14:46:14.317054 [DEBUG] switch_channel.c:1250 sofia/internal/1001@внешний_IP EXPORTING[export_vars] [RFC2822_DATE]=[Wed, 21 Aug 2019 14:46:14 +0300] to event 2019-08-21 14:46:14.317054 [DEBUG] switch_channel.c:1250 sofia/internal/1001@внешний_IP EXPORTING[export_vars] [RFC2822_DATE]=[Wed, 21 Aug 2019 14:46:14 +0300] to event 2019-08-21 14:46:14.317054 [DEBUG] switch_channel.c:1250 sofia/internal/1001@внешний_IP EXPORTING[export_vars] [dialed_extension]=[811] to event 2019-08-21 14:46:14.317054 [DEBUG] switch_ivr_originate.c:2204 Parsing global variables 2019-08-21 14:46:14.317054 [WARNING] mod_dptools.c:4268 Can't find user [205@10.10.10.10] 2019-08-21 14:46:14.317054 [NOTICE] switch_ivr_originate.c:2944 Cannot create outgoing channel of type [user] cause: [SUBSCRIBER_ABSENT] 2019-08-21 14:46:14.317054 [DEBUG] switch_ivr_originate.c:3941 Originate Resulted in Error Cause: 20 [SUBSCRIBER_ABSENT] 2019-08-21 14:46:14.317054 [INFO] mod_dptools.c:3518 Originate Failed. Cause: SUBSCRIBER_ABSENT Зачем FS ломится в дефолтный домен? Ведь если набирать 205, то дозванивается нормально по настройкам правильного домена. Почему в случае алиаса уходит на дефолтный? Не понимаю.
<include> <user id="205" number-alias="811"> <params> <param name="password" value="iopjkl"/> <param name="vm-password" value="205"/> </params> <variables> <variable name="toll_allow" value="domestic,international,local"/> <variable name="accountcode" value="205"/> <variable name="effective_caller_id_name" value="Zink"/> <variable name="effective_caller_id_number" value="205"/> <variable name="outbound_caller_id_name" value="Zink"/> <variable name="outbound_caller_id_number" value="205"/> <variable name="callgroup" value="techsupport"/> <variable name="rtp_secure_media" value="false"/> </variables> </user> </include>
Заранее спасибо, если ткнете в ошибку.
p.s. - если 205.xml скопировать в /etc/freeswitch/directory/default то дозвониться по номеру 811 получается. Но это ж отвратительно ( Все еще не понимаю, почему в дефолтный домен уходит.
|