2016-11-15 4 views
0

Im пытается найти умный способ задержать 200 ok для подтверждения рукопожатия до тех пор, пока «пожалуйста, введите код вашей телефонной карты», что моя система voip будет быть передачи на входящий вызов ..Asterisk/SIP - Задержка 200 OK до тех пор, пока не будет введена телефонная карточка

Любые мысли по этому вопросу .. Я должен признать, что я ", смотрю на это концептуально в данный момент, и я немного наивен ...

заранее спасибо!

ответ

0

Вы не сможете, по крайней мере, планировать поддержку стандартных SIP-устройств.

Вы можете отправить ранние носители на устройство, например, ваш «пожалуйста, введите ..» аудио, с ответом на выполнение сеанса 183, но я не вижу, что это очень полезно, поскольку вызывающее устройство SIP не отправляет DTMF выводит сигнал на сервер до тех пор, пока не будет дан ответ на вызов, для которого требуется ответ 200 Ok.

Несмотря на то, что я подозреваю, что вы, возможно, смотрите на неправильную вещь. 200 Ok из Asterisk предназначен для вызова между вызывающим абонентом и сервером Asterisk для получения тонов DTMF и определения того, разрешена ли следующая очередь вызова. Только после того, как код вызывающей карты принят, начинается следующий этап вызова. Похоже, ваша проблема заключается в том, что пользователи замечают, что оплачиваемое время вызова включает время, которое они проводят, вводя PIN-код своей телефонной карты. Скрипт с ответом 200 Ok - это не способ исправить это. Попытка получить Asterisk для создания нового CDR для второго вызова будет лучшим подходом.

0

Для вызываемого абонента:

[main_content] 

exten => _X.,1,Dial(SIP/${NUM}@provider,,M(dialout-macro)) 

[macro-dialout-macro] 
exten => s,1,Noop(here you should add detect of "please enter") 
exten => s,n,Noop(some other commands go) 
exten => s,n,MacroExit;we are ready to connect call. 

Для звонящего - вам нужны вся вашей поддержки поставщика ранних средства массовой информации и DTMF перед ответом. Положительно получить провайдера, который поддерживает ранние медиа, да. Но я не знаю никакой системы, которая поддерживает dtmf перед ответом, извините.

Диалплан будет как этот

exten => _x.,1,Read(variable,filename,10,n,3) 

примечание: нет ответа не должно быть до этого команды, следует использовать параметр п

п: читать цифры, даже если линия не вверх.

Однако, как я говорю, это будет работать только в теории.

Смежные вопросы