Добрый день.
Есть нетривиальная конфигурация. Asterisk с прикрученным к нему GTalk. Звонки принимаются, голос ходит. Тут проблем нет. Есть Avaya с ее голосовым меню. к ней отдаемся через SIP (на самом деле там по дороге еще и Сшыco Call Manager есть, но это неважно). Это тоже работает. Вопросы начинаются вот как раз тут.
В GTalk нет возможности вызвать клавиатуру и послать DTMF в сторону Asterisk. Это приводит к тому, что пользоваться голосовым меню, не получится. Существует однако возможность принять через jabber текст и оперировать им. Вот пример.
exten => s,1,Answer()
exten => s,n,SendText("If you know the extension of the party you wish to reach, dial it now.")
exten => s,n,Background(if-u-know-ext-dial)
exten => s,n,Set(OPTION=${JABBER_RECEIVE(asterisk,${CALLERID(name)::15},5)})
exten => s,n,Dial(SIP/${OPTION},20)
Все бы хорошо (на самом деле не SendText, а JabberSend надо применять), но это все работае тогда, когда голосовое меню локальное. У нас же это не так. Надо ловить текст уже после того, как сделан DIAL на avaya. В процессе прослушивания того удаленного меню.
Это проблема. Потому, что из DIAL на следующую строку перескакиваем только после того, как разговор закончится. Отсюда вопрос. Можно ли как-то после того, как сделали DIAL продолжать слушать jabber и текст оттуда перегодять через dtmf в линию?