Сообщение о неправильно набранном номере
т.е. добавляю в конец контекста внутренних номеров exten=>i,1,Playback(pbx-invalid), входящий звонок попадает в этот контекст и при неправильном наборе слышит сообщение об этом, а вот если внутренний абонент в этом же контексте i не обрабатывает, в консоли стандартное сообщение о не найденном екстеншене
| Code: |
| [Dec 22 11:37:01] NOTICE[3055]: chan_sip.c:20200 handle_request_invite: Call from '142' to extension '999' rejected because extension not found in context 'phones_town'. |
как реализовать?
мде.... сам туплю.... i и t обрабатываются приложением waitexten же, так что тут надо как то по другому это делать, но вопрос остаётся не решенным, как сообщать внутреннему обоненту о неправильном номере?
| Code: |
| [on_inbound] .... exten => _1XX,1,Macro(in,${EXTEN}) exten => _X.,1,Macro(in,${EXTEN}) [macro-in] ... exten => s,n,ExecIf($[LEN(${MACRO_EXTEN})>3 | LEN(${MACRO_EXTEN}) s,n(ring),Ringing() exten => s,n,Dial(SIP/${MACRO_EXTEN},30,Ttm) ... exten => error,1,Progress() exten => error,n,Playtones(congestion) exten => error,n,Wait(2) exten => error,n,Playback(privacy-incorrect,noanswer) exten => error,n,Playtones(congestion) exten => error,n,Wait(2) exten => error,n,Hangup() |
Итого, за исключение некоторых опущенных строк, имеем. Поступающий звонок с намерением звонить на 1ХХ номера, попадает в макрос, где определяется его длина. Если она больше или меньше трёх, то звонок валится на error, где говорится о том, что номер неверен. В иных случаях идёт дозвон на внутренний номер абонента.
exten => error,n,Playback(privacy-incorrect,noanswer)
Что не так?
Если же номер не зарегестрирован, занят, не берут трубку, то для этого у меня в этом же контексте есть отдельные средства для обработки.