ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

FreeSWITCH и att_xfer на extension

Использование и настройка других открытых VoIP PBX

Модераторы: april22, Zavr2008

FreeSWITCH и att_xfer на extension

Сообщение tma » 02 янв 2016, 22:03

Всех с Новым Годом!

Мучаю тут FreeSWITCH и не могу почему-то победить довольно-таки простую вещь - трансфер.
С FreeSWITCH занимаюсь всего пару дней, до этого ни разу не щупал, поэтому не все понимаю... ;(

Схема такая:
Инициатор вызова из города -> FS -> IVR -> Город -transfer-> FS -> Город
Словами:
Вызов приходит из города, поступает в IVR, нажимается в меню цифра 1:
Код: выделить все
<entry action="menu-exec-app" digits="1" param="transfer 300 XML fmc-context"/>


300 - это короткий номер FMC, уходит через транк оператору (т.е. обратно в город).
Абонент 3XX тыкает кнопки *4301#, слушаем замечательную музыку, вызов уходит на короткий FMC номер 301 опять в город.
Абоненты 300 и 301 разговаривают друг с другом, а дальше - облом. Если повесить трубку на абоненте 300, то на 301
вызов завершается. При этом инициируемый вызов абонент остается на линии слушать тишину до бесконечности...
Описание вызова att_xfer:
Код: выделить все
<action application="bind_meta_app" data="4 b s execute_extension::att_xfer_kik XML ${context}"/>


сам extension att_xfer:
Код: выделить все
    <extension name="att_xfer_kik">
     <condition field="destination_number" expression="^att_xfer_kik$">
       <action application="read" data="3 4 'tone_stream://%(10000,0,350,440)' digits 30000 #"/>
       <action application="set" data="origination_cancel_key=#"/>
       <!-- <action application="att_xfer" data="user/${digits}@${context}"/> --> <!-- не работает, т.к. это не зарегистрированный юзер -->
       <action application="set" data="sip_h_X-return=true"/> <!-- в интернете предлагали -->
       <action application="att_xfer" data="<fmc_group=<GROUP>>loopback/${digits}"/>
       <!-- <action application="transfer" data="${digits} XML ${context}"> -->
     </condition>
    </extension>


Читал, что с loopback могут быть проблемы и т.д. Пробовал разные варианты, но пока ничего не получилось.
Нужно направлять именно в контекст, т.к. вызываться может не только внешний номер, но и зарегистрированный юзер.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

Re: FreeSWITCH и att_xfer на extension

Сообщение Vlad1983 » 03 янв 2016, 09:40

вместо loopback попробовать одноразово для проверки
Код: выделить все
<action application="set" data="uuid_bridge_continue_on_cancel=true"/>
<action application="att_xfer" data="sofia/gateway/fmc/301,[leg_delay_start=10]sofia/gateway/tfop/89012345678"/>

если в таком виде все нормально, выдергивать списки альтернатив через mod_perl, mod_lua ... и вызывать оттуда же att_xfer
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: FreeSWITCH и att_xfer на extension

Сообщение tma » 03 янв 2016, 11:22

sofia плохо, т.к. нужно вызывать экстеншин, а не непосредственно FMC-номер.
На каких-то номерах может висеть что-то еще кроме мобильника.
Или универсально не сделать?
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

Re: FreeSWITCH и att_xfer на extension

Сообщение Vlad1983 » 03 янв 2016, 12:18

говорю как сделать универсально
не видите

по считанному через
Код: выделить все
<action application="read" data="3 4 'tone_stream://%(10000,0,350,440)' digits 30000 #"/>
номеру
формируется из данных БД, CRM, etc эта строка:
Код: выделить все
sofia/gateway/fmc/301,[leg_delay_start=10]sofia/gateway/tfop/89012345678

но сначала нужно проверить работает ли оно корректно в вашем случае
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: FreeSWITCH и att_xfer на extension

Сообщение tma » 03 янв 2016, 23:07

300 и 301 - это номера в FMC группе, оба номера - сотовые.
Не совсем понимаю причем здесь leg_delay_start - это же задержка, больше для перебора подходит (folow me/etc).
Через sofia я попробую, но универсальности не вижу. Оба номера в примере - внешние и оба, а меня интересует возможность вызова экстеншина, где какие-то номера могут быть внешними, а какие-то - внутренними.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

Re: FreeSWITCH и att_xfer на extension

Сообщение Glukinho » 04 янв 2016, 00:11

tma писал(а):С FreeSWITCH занимаюсь всего пару дней, до этого ни разу не щупал, поэтому не все понимаю... ;(

Где-то я это уже видел))
Glukinho
 
Сообщений: 616
Зарегистрирован: 07 янв 2011, 21:05

Re: FreeSWITCH и att_xfer на extension

Сообщение tma » 04 янв 2016, 02:36

Vlad1983 писал(а):но сначала нужно проверить работает ли оно корректно в вашем случае


Некорректно. Прописываю вызов только FMC-номера (мне еще нужно заголовок передать для идентификации - P-Asserted-Identity):
Код: выделить все
       <action application="unset" data="sip_h_Privacy"/>
       <action application="unset" data="sip_h_P-Asserted-Identity"/>
       <action application="set" data="sip_h_P-Asserted-Identity=<sip:IDIDID@IP.IP.IP.IP>"/>
       <action application="att_xfer" data="sofia/gateway/fmcgw/${digits}"/>


На fmcgw вызов уходит, по tcpdump я вижу INVITE, но тут же FreeSWITCH отправляет CANCEL и возвращает вызов обратно.
Шлюз даже ответить-то не успевает...
Но даже если такой метод заработает, он очень ограниченный.
Хотелось бы так: номер 301 может быть зарегистрированным абонентом и FMC-номером.
Тогда нужно направить вызов на абонента и если его нет - на FMC.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

Re: FreeSWITCH и att_xfer на extension

Сообщение Vlad1983 » 04 янв 2016, 10:39

без изменений только loopback может вызвать вместе с вагоном непредсказуемого поведения

с дублированием диалплана для перевода можно попробовать
в att_xfer заменяете на execute_extension и в целевом extension вместо bridge вызываете att_xfer
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: FreeSWITCH и att_xfer на extension

Сообщение tma » 04 янв 2016, 12:36

Ok, посмотрим, но это добавит логики, но почему после:
Код: выделить все
<action application="att_xfer" data="sofia/gateway/fmcgw/${digits}"/>

я получаю CANCEL?
Идет:
INVITE -> fmcgw
SIP/2.0 100 Trying -> fmcgw
CANCEL -> fmcgw
OK <- fmcgw
В случае с loopback его нет, хотя есть другие проблемы.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

Re: FreeSWITCH и att_xfer на extension

Сообщение tma » 04 янв 2016, 13:46

Последний вопрос снят - я сам дурак, завершал набор номера через '#', который сам же определил для прерывания оригинации.
Трансфер на внешний номер удался, буду копать дальше. Минус всего этого дела пока в том, что уж больно много писанины с непривычки...
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

След.

Вернуться в FreeSwitch, SER, Yate и другие

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH