Подстановка номера Extensions при беусловной переадресации.

901 views
Skip to first unread message

Чертыковцев Владимир

unread,
Sep 14, 2016, 8:26:32 AM9/14/16
to freeswitch-ru
Коллеги, подскажите, может кто сталкивался.

Установлен FusionPBX и Freeswitch.
На Extensions, если делать с него исходящий вызов - подставляется его Outbound Caller ID Number.
Если на Extension установить номер для безусловной переадресации, то для переадресованного звонка подставляется Caller ID звонящего, но не номер Extension.

Диаплан для вхоодящего звонка:
<extension name="400408" >
   <condition field="destination_number" expression="^(400408)$" >
       <action application="set" data="call_direction=inbound"/>
       <action application="set" data="domain_uuid=2a4b5132-05c0-47fd-97ed-f9c674bca7cd"/>
       <action application="set" data="domain_name=172.19.32.8"/>
       <action application="set" data="domain=172.19.32.8"/>
       <action application="set" data="domain_name=172.19.32.8" />
       <action application="set" data="domain=172.19.32.8" />
       <action application="transfer" data="${destination_number} XML 172.19.32.8" />
   </condition>
</extension>

Диалплан для исходящего транка:
<extension name="gwpstn.d6" >
   <condition field="destination_number" expression="^(\d{6})$" >
       <action application="set" data="call_direction=inbound"/>
       <action application="set" data="domain_uuid=2a4b5132-05c0-47fd-97ed-f9c674bca7cd"/>
       <action application="set" data="domain_name=172.19.32.8"/>
       <action application="set" data="domain=172.19.32.8"/>
       <action application="set" data="sip_h_X-accountcode=${accountcode}" />
       <action application="set" data="call_direction=outbound" />
       <action application="set" data="hangup_after_bridge=true" />
       <action application="log" data="caller_id_set_trials" />
       <action application="set" data="inherit_codec=true" />
       <action application="set" data="ignore_display_updates=true" />
       <action application="set" data="callee_id_number=$1" />
       <action application="set" data="continue_on_fail=true" />
       <action application="bridge" data="sofia/gateway/dec9b7f0-df69-4837-aa69-47a5d61838bb/$1" />
   </condition>
</extension>

Каким образом заставить FS передавать АОН Externsion при call_forward?
log.txt

Чертыковцев Владимир

unread,
Sep 14, 2016, 8:31:20 AM9/14/16
to freeswitch-ru
upd. При настройке call forward, на extension добавляется dial sting
{presence_id=904...@172.19.32.8,instant_ringback=true,domain_uuid=2a4b5132-05c0-47fd-97ed-f9c674bca7cd,sip_invite_domain=172.19.32.8,domain_name=172.19.32.8,domain=172.19.32.8,extension_uuid=686380e6-da44-45ee-a309-4d717dfab389,toll_allow='',sip_h_Diversion=<400...@172.19.32.8>;reason=unconditional}sofia/gateway/dec9b7f0-df69-4837-aa69-47a5d61838bb/904066

ros tel

unread,
Sep 14, 2016, 8:36:15 AM9/14/16
to freeswitch-ru
в sofia-профилях выставить
<param name="manual-redirect" value="true"/>

все директы пойдут в контекст redirected
в нем уже выставлять effective_caller_id_number беря его из профиля пользователя через user_data

среда, 14 сентября 2016 г., 17:26:32 UTC+5 пользователь Чертыковцев Владимир написал:

Чертыковцев Владимир

unread,
Sep 15, 2016, 2:00:06 AM9/15/16
to freeswitch-ru
ros tel.
manual-redirect - для переадресации на оконечном оборудовании.
В моей ситуации переадресация идет с extension силами freeswitch.

среда, 14 сентября 2016 г., 17:36:15 UTC+5 пользователь ros tel написал:

ros tel

unread,
Sep 15, 2016, 2:12:31 AM9/15/16
to freeswitch-ru
принцип тот же
только найти места где идет вычитывание номеров для переадресации

четверг, 15 сентября 2016 г., 11:00:06 UTC+5 пользователь Чертыковцев Владимир написал:

Алексей Жуйков

unread,
Dec 16, 2016, 7:58:04 AM12/16/16
to freeswitch-ru
У меня тоже подставляется dial_string на extention, но почему то она совсем не используется, и в конечном счете в прилетает полностью номер и имя того, кто звонит. у нужно номер переадресующего телефона
Ни как не могу победить.
Строку в профиле прописал - ни как не хочет. в логах ни какого контекста redirected на появилось
вызовы как проходили так и проходят не правильно.



среда, 14 сентября 2016 г., 17:36:15 UTC+5 пользователь ros tel написал:
в sofia-профилях выставить

ros tel

unread,
Dec 17, 2016, 1:24:10 AM12/17/16
to freeswitch-ru
Процитирую Владимира
по итогам расследования:

копаюсь, оказывается что fusionpbx не пользуется исходящим диалпаном. при установке переадресации, на extension формирует dial_string и он используется для переадресованных звонов. 904...@172.19.32.8,instant_ringback=true,domain_uuid=2a4b5132-05c0-47fd-97ed-f9c674bca7cd,sip_invite_domain=172.19.32.8,domain_name=172.19.32.8,domain=172.19.32.8,extension_uuid=686380e6-da44-45ee-a309-4d717dfab389,toll_allow='',sip_h_Diversion=<400...@172.19.32.8>;reason=unconditional}sofia/gateway/dec9b7f0-df69-4837-aa69-47a5d61838bb/904066 Если сюда, в dial_string добавить origination_caller_id_number=400408, то все начинает работать корректно. Dial_string формирует lua скрипт, осталось в нем разобраться и научить его добавлять нужное поле в dial_string

пятница, 16 декабря 2016 г., 17:58:04 UTC+5 пользователь Алексей Жуйков написал:

Алексей Жуйков

unread,
Dec 17, 2016, 3:18:43 AM12/17/16
to freeswitch-ru
Огромное спасибо, в понедельник попробую. А в lua-скрипте я уже нашел, где формируется dial-string

Алексей Жуйков

unread,
Dec 19, 2016, 5:23:37 AM12/19/16
to freeswitch-ru
Что то со скриптом call_forward.lua не всё в порядке.
в лог постгреса ошибки на синтаксис валятся при формировании dial_string
похоже по этому и не работает. А если руками добавить в сформированную строку origination_caller_id_number=12341423124, то вся прекрасно подставляется. и работает.


суббота, 17 декабря 2016 г., 13:18:43 UTC+5 пользователь Алексей Жуйков написал:

alexeyme...@gmail.com

unread,
Dec 20, 2016, 9:40:17 AM12/20/16
to freeswitch-ru
На сколько я вижу для CallForward нужно устанавливать отдельный номер и только через список Destinations.
Для того чтобы использовать outbound_caller_id_number нужно установить cdr/call_forward_fix/boolean/true в Default/Domain Settings.
Правда этот параметр не работает для call_forward.lua. Думаю завтра добавлю,

alexeyme...@gmail.com

unread,
Dec 20, 2016, 10:19:49 AM12/20/16
to freeswitch-ru
Попробуйте этот вариант. https://github.com/fusionpbx/fusionpbx/pull/2260

вторник, 20 декабря 2016 г., 17:40:17 UTC+3 пользователь alexeyme...@gmail.com написал:

Алексей Жуйков

unread,
Dec 20, 2016, 12:22:35 PM12/20/16
to freeswitch-ru
У меня сегодня получились хорошие результаты. Завтра выхожу что получилось. Осталось только найти, какой скрипт создает dial_string в extention (речь о fusionpbx). Какой скрипт ни правил, стринг не изменяется.

Алексей Жуйков

unread,
Dec 21, 2016, 12:18:41 AM12/21/16
to freeswitch-ru
Вот результат моих вчерашних исследований:
настраиваем переадресацию follow_me как на картинке:

сохраняем. При этом формируется следующий dial-strig в extention:

{fail_on_single_reject=USER_BUSY,instant_ringback=true,ignore_early_media=true,domain_uuid=f9e8b277-3346-4697-9461-9bd078ac927f,sip_invite_domain=company1.ru,domain_name=company1.ru,domain=company1.ru,extension_uuid=6990a286-c411-499b-b34a-a62c25fa9de7,group_confirm_key=exec,group_confirm_file=lua confirm.lua,
origination_caller_id_name=${effective_caller_id_name},origination_caller_id_number=${effective_caller_id_number},sip_h_X-accountcode=company1.ru,accountcode=company1.ru,toll_allow='mobile'}
[outbound_caller_id_number=${effective_caller_id_number},presence_id=288...@company1.ru,leg_delay_start=0,leg_timeout=20]${sofia_contact(288...@company1.ru)},
[outbound_caller_id_number=${effective_caller_id_number},presence_id=288...@company1.ru,leg_delay_start=20,leg_timeout=20]${sofia_contact(288...@company1.ru)},
[outbound_caller_id_number=${effective_caller_id_number},presence_id=288...@company1.ru,leg_delay_start=40,leg_timeout=60]sofia/gateway/83fcfad5-be22-480c-a49e-372b9e3c18b9/989222222222

По этому dial-string прекрасно работает переадресация на внутренние номера, но на сотовый уходит с неправильным АОН.
Правим этот dial-sting следующим образом:

{fail_on_single_reject=USER_BUSY,instant_ringback=true,ignore_early_media=true,domain_uuid=f9e8b277-3346-4697-9461-9bd078ac927f,sip_invite_domain=company1.ru,domain_name=company1.ru,domain=company1.ru,extension_uuid=6990a286-c411-499b-b34a-a62c25fa9de7,group_confirm_key=exec,group_confirm_file=lua confirm.lua,
origination_caller_id_name=${effective_caller_id_name},origination_caller_id_number=${effective_caller_id_number},sip_h_X-accountcode=company1.ru,accountcode=company1.ru,toll_allow='mobile'}
[outbound_caller_id_number=${effective_caller_id_number},presence_id=288...@company1.ru,leg_delay_start=0,leg_timeout=20]${sofia_contact(288...@company1.ru)},
[outbound_caller_id_number=${effective_caller_id_number},presence_id=288...@company1.ru,leg_delay_start=20,leg_timeout=20]${sofia_contact(288...@company1.ru)},
[origination_caller_id_number=84957777777,presence_id=288...@company1.ru,leg_delay_start=40,leg_timeout=60]sofia/gateway/83fcfad5-be22-480c-a49e-372b9e3c18b9/989222222222

И всё начинает прекрасно работать и на внутренние с внутренним АОНом и на внешние номера с АОНом 84957777777.
Далее, путем нехитрых исправлений dial-straig сделал вывод, что в здесь в принципе не работают переменные ${effective_caller_id_number} и ${outbound_caller_id_number}. Если хотим чтобы подставлялись АОН нужно чтобы были не переменные а именно цифирки. А вот как их туда воткнуть, взяв из настроек extention, я пока недоехал.

как то так. надеюсь кому нибудь пригодится.

alexeyme...@gmail.com

unread,
Dec 21, 2016, 2:19:51 AM12/21/16
to freeswitch-ru

И всё начинает прекрасно работать и на внутренние с внутренним АОНом и на внешние номера с АОНом 84957777777.
Далее, путем нехитрых исправлений dial-straig сделал вывод, что в здесь в принципе не работают переменные ${effective_caller_id_number} и ${outbound_caller_id_number}. Если хотим чтобы подставлялись АОН нужно чтобы были не переменные а именно цифирки. А вот как их туда воткнуть, взяв из настроек extention, я пока недоехал.


FusionPBX не поддерживает отдельные CID номера для каждого отдельного элемента Follow Me. Можно только установить общий номер

Этот номер будет использоваться для всех каналов.
FusionPBX формирует dial-string в момент сохранения через WebUI и сохраняет ее в отдельной таблице.
Если кто-то пытается включить Follow Me через Lua, то Lua скрипт просто берет готовый dial-string и 
сохраняет его в Extension. Таким образом ваш вариант перестанет работать если кто-то повторно сохранит 
`Call Routing` или кто-то включит Follow Me/DND/CallForward через Lua.

Тут так же есть более теоретический вопрос. Какой номер подставлять и почему.
Например. Внутренний номер 100 с outbound CID 84951111111 звонит на внутренний номер 200 с outbound CID 84952222222.
у которого установлен Follow Me на внутренний номер 300 и на мобильный телефон. Какой АОН должен уходить на 300 и
какой на мобильный номер и почему? Далее можно рассмотреть варианты при отсутствии outbound CID на одном из внутренних
номеров, звонке на номер с внешнего шлюза (DID->200). Можно еще добавить необходимость иметь различный АОН при звонках
через разные шлюзы или на различные направления. В общем для начала нужно определится как

Алексей Жуйков

unread,
Dec 21, 2016, 5:09:26 AM12/21/16
to freeswitch-ru
Позвольте с Вами не согласиться, ибо только что проверил следующий dial-sting:

{fail_on_single_reject=USER_BUSY,instant_ringback=true,ignore_early_media=true,domain_uuid=f9e8b277-3346-4697-9461-9bd078ac927f,sip_invite_domain=company1.ru,domain_name=company1.ru,domain=company1.ru,extension_uuid=6990a286-c411-499b-b34a-a62c25fa9de7,group_confirm_key=exec,group_confirm_file=lua confirm.lua,origination_caller_id_name=${effective_caller_id_name},origination_caller_id_number=${effective_caller_id_number},sip_h_X-accountcode=company1.ru,accountcode=company1.ru,toll_allow='61'}
[outbound_caller_id_number=${effective_caller_id_number},presence_id=288...@company1.ru,leg_delay_start=0,leg_timeout=20]${sofia_contact(288...@company1.ru)},
[origination_caller_id_number=333333,presence_id=288...@company1.ru,leg_delay_start=20,leg_timeout=20]sofia/gateway/83fcfad5-be22-480c-a49e-372b9e3c18b9/281075,
[origination_caller_id_number=444444,presence_id=288...@company1.ru,leg_delay_start=40,leg_timeout=60]sofia/gateway/83fcfad5-be22-480c-a49e-372b9e3c18b9/281599

на номер 281075 пришел АОН 333333
на номер 281599 пришел АОН 444444

Относительно FS они внешние и доступны через шлюз, значит на каждый отдельный  вызов получается отдельный АОН.
Конечно, при каждом сохранении стринг нуждается в корректировке - но это дело админа, а включение/отключение forward/follow_me через IVR просто отключил, чтобы не получить непроизвольное изменение стринга :)
По поводу теоретического вопроса, тот пример, который я привел выше с разными АОН, работает вполне приемлемо. Далеко ни каждая УПАТС так умеет.
Единственное неудобство - ручное поправление стринга.


среда, 21 декабря 2016 г., 12:19:51 UTC+5 пользователь alexeyme...@gmail.com написал
 
FusionPBX не поддерживает отдельные CID номера для каждого отдельного элемента Follow Me. Можно только установить общий номер 
Этот номер будет использоваться для всех каналов.



Алексей Жуйков

unread,
Dec 21, 2016, 5:50:01 AM12/21/16
to freeswitch-ru
кстати, какая у Вас версия FusionPBX?
У меня нет в Follow_me поля Caller ID number.
Или есть возможность включить эту опцию

alexeyme...@gmail.com

unread,
Dec 21, 2016, 6:25:48 AM12/21/16
to freeswitch-ru

Позвольте с Вами не согласиться, ибо только что проверил следующий dial-sting:


Я имел в виду именно автоматическое построение строки. А если писать строку в ручную,
то можно и без Call Routing GUI обойтись :)
 

среда, 21 декабря 2016 г., 13:50:01 UTC+3 пользователь Алексей Жуйков написал:
кстати, какая у Вас версия FusionPBX?
У меня нет в Follow_me поля Caller ID number.
Или есть возможность включить эту опцию

Я пользуюсь 4.3.0 (примерно двухдневной давности). Но эта опция там очень давно.
Список номеров формируется из списка `Destinations->Inbound`.
Если нет `Destinations`, то список не виден.

PS. Настоятельно рекомендую обновится до версии 4.2.1 или 4.3.0
Reply all
Reply to author
Forward
0 new messages