First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

ami playDTMF НЕ в Local канал [закрыт]

0

Есть вообще возможность отсылать DTMF не только в Local канал?

Для неверующих пример лога звонка Tt есть, перевод звонка при нажатии на телефонах *2 работают.

    -- Executing [s@macro-dialout-one-predial-hook:1] MacroExit("IAX2/202-9540", "") in new stack
   
-- Executing [s@macro-dial-one:47] ExecIf("IAX2/202-9540", "0?Set(D_OPTIONS=trII)") in new stack
   
-- Executing [s@macro-dial-one:48] Dial("IAX2/202-9540", "SIP/200,,TtrIb(func-apply-sipheaders^s^1)") in new stack
 
== Using SIP RTP TOS bits 184
 
== Using SIP RTP CoS mark 5
   
-- SIP/200-00000002 Internal Gosub(func-apply-sipheaders,s,1) start
   
-- Executing [s@func-apply-sipheaders:1] NoOp("SIP/200-00000002", "Applying SIP Headers to channel") in new stack
   
-- Executing [s@func-apply-sipheaders:2] Set("SIP/200-00000002", "SIPHEADERKEYS=") in new stack
   
-- Executing [s@func-apply-sipheaders:3] While("SIP/200-00000002", "0") in new stack
   
-- Jumping to priority 7
   
-- Executing [s@func-apply-sipheaders:8] Return("SIP/200-00000002", "") in new stack
 
== Spawn extension (from-internal, 200, 1) exited non-zero on 'SIP/200-00000002'
   
-- SIP/200-00000002 Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=
   
-- Called SIP/200
   
-- Connected line update to IAX2/202-9540 prevented.
   
-- SIP/200-00000002 is ringing
   
-- Connected line update to IAX2/202-9540 prevented.
   
-- SIP/200-00000002 answered IAX2/202-9540
   
-- Channel SIP/200-00000002 joined 'simple_bridge' basic-bridge <d6f93d6f-b989-42e9-ac54-a783557a3eb5>
   
-- Channel IAX2/202-9540 joined 'simple_bridge' basic-bridge <d6f93d6f-b989-42e9-ac54-a783557a3eb5>
[2016-07-13 07:58:18] DTMF[124777][C-00000002]: channel.c:3944 __ast_read: DTMF end '1' received on IAX2/202-9540, duration 0 ms
[2016-07-13 07:58:18] DTMF[124777][C-00000002]: channel.c:3971 __ast_read: DTMF begin emulation of '1' with duration 100 queued on IAX2/202-9540
[2016-07-13 07:58:18] DTMF[124777][C-00000002]: channel.c:4108 __ast_read: DTMF end emulation of '1' queued on IAX2/202-9540
[2016-07-13 07:58:18] DTMF[124777][C-00000002]: channel.c:3944 __ast_read: DTMF end '1' received on IAX2/202-9540, duration 0 ms
[2016-07-13 07:58:18] DTMF[124777][C-00000002]: channel.c:3971 __ast_read: DTMF begin emulation of '1' with duration 100 queued on IAX2/202-9540
[2016-07-13 07:58:18] DTMF[124777][C-00000002]: channel.c:4108 __ast_read: DTMF end emulation of '1' queued on IAX2/202-9540
[2016-07-13 07:58:19] DTMF[124777][C-00000002]: channel.c:3944 __ast_read: DTMF end '2' received on IAX2/202-9540, duration 0 ms
[2016-07-13 07:58:19] DTMF[124777][C-00000002]: channel.c:3971 __ast_read: DTMF begin emulation of '2' with duration 100 queued on IAX2/202-9540
[2016-07-13 07:58:19] DTMF[124777][C-00000002]: channel.c:4108 __ast_read: DTMF end emulation of '2' queued on IAX2/202-9540

там есть при этом звонке 2 канала:

Channel              Location             State   Application(Data)             
SIP
/200-00000002     (None)               Up      AppDial((Outgoing Line))      
IAX2
/202-9540        s@macro-dial-one:48  Up      Dial(SIP/200,,TtrIb(func-apply

Через AMI функцией PlayDTMF ни в один канал DTMF не заходит, хотя АМИ отвечает что запрос выполнен упешно. Если генирируз звонок каналом Local то DTMF функцие plyaDTMF на канал Local заходят.

Возможно кто-то не понял вопроса. флаги TtWw мне не нужны если оператор позвонил клиенту и там у него IVR то оператору нужно нажать кнопку допустим 2 но не на телефоне а в каком-то приложении, которое через АМИ с помощью функции playAMI передает данное нажатие в канал пользователю. Если я генерирую Local канал на исходящую то в Local канал ДТМФ заходит, а если в SIP/ то не заходит.

Если создавать звонок с Local каналом то все DTMF, в этот канал, ходят через AMI нормально, если просто SIP/ то DTMF не заходят. Вот я и хочу понять что это баг или фича.

Мне это не мешает, но разобраться хочу.

PS: Разобрался.

спросил Jul 13 '16

romariosar Gravatar romariosar flag of Russian Federation
588 93 11 44
http://www.webunix.ru/

обновил Jul 28 '16

Comments

Подробнее вопрос. Не хочется опять играть в эту игру "пять вопросов за один ответ" .

zzuz (Jul 13 '16)edit

DTMF тоны обрабатываются только тогда когда в команде через AMI указываешь канал Local/{ноые}@test, а если указать прямой канал например SIP/{номер} то DTMF не отрабатывает.

romariosar (Jul 13 '16)edit

Ведь в контексте test есть опции для Dial , а для SIP/{номер} их нет .

zzuz (Jul 13 '16)edit

А у меня везде отрабатывало. ЧЯДНТ? Тоесть это не вопрос. Возможность есть, навыков нет.

meral (Jul 13 '16)edit

zzuz вы про что имеете ввиду? какие опции влияют на обработку DTMF с помощью команды PlayDTMF через AMI?

romariosar (Jul 13 '16)edit

meral у тебя DTMF обрабатывался через AMI когда ты отсылал в канал типа SIP/{num}? на какой версии это работало?

romariosar (Jul 13 '16)edit

Опции Dial такие как tTwW позволяют перехватывать dtmf в модуле features.c . Без них dmtf не анализируется.

zzuz (Jul 13 '16)edit

zzuz эти опции стоят звонко переводится успешно, я еще раз говорю через AMI заходят только в local канал. Поробуйте у себя https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerAction_PlayDTMF

romariosar (Jul 13 '16)edit

Где опции стоят ? При звонке через SIP/{num} ?

zzuz (Jul 13 '16)edit

zzuz да там стоят Tt и Когда нажимаю на кнопки у телефонов DTMF проходит, вопрос именно в функции PlayDTMF

romariosar (Jul 13 '16)edit

" да там стоят Tt " - не верю

zzuz (Jul 13 '16)edit

Все работает на всех версиях. Если вам надо передать dtmf дальше, вам надо ВЫКЛЮЧИТЬ features на эти направления.

meral (Jul 13 '16)edit

meral, всмысле ВЫКЛЮЧИТЬ? мне надо чтобы между собой 2 канал когад разговаривают я мог в канал одному из ни загнать DTMF через AMI.

romariosar (Jul 13 '16)edit

У вас есть выбор. Либо вы dtmf обрабатываете, либо пропускаете. Соответсвенно надо выставить флаги в каналах. Если чтото непонятно, вы, как декларируемый "эксперт", можете легко и быстро почитать исходники.

meral (Jul 13 '16)edit

meral, вот вы на украние все чтоль такие, флаги TtWw мне не нужны если оператор позвонил клиенту и там у него IVR то оператору нужно нажать кнопку допустим 2 но не на телефоне а в какомто приложении, которое через АМИ с помощью функции playAMI передать данное нажатие в канал пользователю. Если я генерирую Local канал на исходящую то в Local канал ДТМФ заходит, а если в SIP/ то не заходит. Флаги вообще не причем.

romariosar (Jul 14 '16)edit

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Jul 13 '16

Просмотрен: 393 раз

Обновлен: Jul 28 '16

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.