VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

FreeSWITCH и att_xfer на extension

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

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

tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

FreeSWITCH и att_xfer на extension

Сообщение tma »

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

Мучаю тут 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
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: FreeSWITCH и att_xfer на extension

Сообщение Vlad1983 »

вместо 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
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: FreeSWITCH и att_xfer на extension

Сообщение tma »

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

Re: FreeSWITCH и att_xfer на extension

Сообщение Vlad1983 »

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

по считанному через

Код: Выделить всё

<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
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: FreeSWITCH и att_xfer на extension

Сообщение tma »

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

Re: FreeSWITCH и att_xfer на extension

Сообщение Glukinho »

tma писал(а):С FreeSWITCH занимаюсь всего пару дней, до этого ни разу не щупал, поэтому не все понимаю... ;(
Где-то я это уже видел))
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: FreeSWITCH и att_xfer на extension

Сообщение tma »

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
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: FreeSWITCH и att_xfer на extension

Сообщение Vlad1983 »

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

с дублированием диалплана для перевода можно попробовать
в att_xfer заменяете на execute_extension и в целевом extension вместо bridge вызываете att_xfer
ЛС: @rostel
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: FreeSWITCH и att_xfer на extension

Сообщение tma »

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 »

Последний вопрос снят - я сам дурак, завершал набор номера через '#', который сам же определил для прерывания оригинации.
Трансфер на внешний номер удался, буду копать дальше. Минус всего этого дела пока в том, что уж больно много писанины с непривычки...
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH