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

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2013-09-12 17:37:15 +0400

jorikfon Gravatar jorikfon flag of Russian Federation

http://www.telefon1c.ru/

Можно ли снять трубку на хардфоне после Dial программно?(часть 2)

Начало http://asterisk-support.ru/question/44644/mozhno-li-sniat-trubku-na-khardfone-posle-dial

Есть задача. При входящем звонке нажать на экране кнопку Ответить, и в этот момент телефон снимает трубку(громкая связь или гарнитура).

Как я понял SIPAddHeader можно устанавливать только до того как телефон начал звонить.

При оригинации звонка, мы просто устанавливаем хидер через AMI и все работает, но при входящем не понятно как сделать. Пока предполагаю переводить вызов в контекст примерно такого содержания:

exten => _XXX,n,SIPAddHeader(“Call-Info:; answer-after=0″) exten => _XXX,n,Dial(SIP/${SIPACCOUNT}) Может есть более красивые решения?

upd. С данным контекстом неприятная проблема. Все дальнейшие переводы с SIP/${SIPACCOUNT} на другие телефоны вызывают автоподъем и на них. Попробовал сделать так:

exten => _XXX,n,SIPAddHeader(Call-Info:\;answer-after=0) exten => _XXX,n,Dial(SIP/${SIPACCOUNT},20,tTcM(miko-clear-auto-answer))

[macro-miko-clear-auto-answer] exten => s,1,SIPRemoveHeader() В verbose вижу что SIPAddHeader устанавливается для изначального канала, а SIPRemoveHeader для канала SIP/${SIPACCOUNT}, но все дальнейшие переадресации вызывают автоподъем у коллег на телефонах. Проблема с безусловным переводом.

Можно ли снять трубку на хардфоне после Dial программно?(часть 2)

Начало http://asterisk-support.ru/question/44644/mozhno-li-sniat-trubku-na-khardfone-posle-dial

Есть задача. При входящем звонке нажать на экране кнопку Ответить, и в этот момент телефон снимает трубку(громкая связь или гарнитура).

Как я понял SIPAddHeader можно устанавливать только до того как телефон начал звонить.

При оригинации звонка, мы просто устанавливаем хидер через AMI и все работает, но при входящем не понятно как сделать. Пока предполагаю переводить вызов в контекст примерно такого содержания:

exten => _XXX,n,SIPAddHeader(“Call-Info:; _*XXX*,n,SIPAddHeader(“Call-Info:; answer-after=0″)
exten => _XXX,n,Dial(SIP/${SIPACCOUNT})
_*XXX*,n,Dial(SIP/${SIPACCOUNT})

Может есть более красивые решения?

upd. С данным контекстом неприятная проблема. Все дальнейшие переводы с SIP/${SIPACCOUNT} на другие телефоны вызывают автоподъем и на них. Попробовал сделать так:

exten => _XXX,n,SIPAddHeader(Call-Info:\;answer-after=0)

 exten => _XXX,n,Dial(SIP/${SIPACCOUNT},20,tTcM(miko-clear-auto-answer))

_*XXX*,n,SIPAddHeader(Call-Info:\;answer-after=0) exten => _*XXX*,n,Dial(SIP/${SIPACCOUNT},20,tTcM(miko-clear-auto-answer))

[macro-miko-clear-auto-answer] exten => s,1,SIPRemoveHeader()

В verbose вижу что SIPAddHeader устанавливается для изначального канала, а SIPRemoveHeader для канала SIP/${SIPACCOUNT}, но все дальнейшие переадресации вызывают автоподъем у коллег на телефонах. Проблема с безусловным переводом.

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