Есть входящий от sip провайдера, который по донабору должен попасть экстеншен.
На зарегистрированный экстеншен - без проблем.
Но что делать с не зарегистрированными экстеншенами, попадающими под шаблон, как их выделять из общего потока и отправлять куда либо?
[inbound_telphin]
exten => 00038,1,Set(CHANNEL(language)=ru)
exten => 00038,2,NoOp(incoming_telphin from ${CALLERID(NUM)})
exten => 00038,n,Answer()
exten => 00038,n,Wait(1)
exten => 00038,n,Background(vm-enter-num-to-call)
exten => 00038,n,WaitExten(20)
exten => _5XXX,1,Dial(sip/${EXTEN},20,Tt)
exten => _5XXX,n,Hangup()
exten => i,1,Playback(vm-unknown-caller)
exten => i,n,Hangup()
к примеру на 5001 и 5002 позвонить - нормально, ибо они зарегистрированны.
но при донаборе 5129 - в логах WARNING[30073]: app_dial.c:2274 dial_exec_full: Unable to create channel of type 'sip' (cause 20 - Unknown)
| Код: |
| exten => s-CHANUNAVAIL,1, NoOp(CHANUNAVAIL to num ${EXTEN}) same => n,Macro(invalid_num) same => n,GoTo(00038,1) [macro-invalid_num] exten => s,1,Wait(1) same => n,PlayBack(invalid_num_sory) same => n,Wait(1) same => n,MacroExit() |
Так же советую делать внутренние номера в отдельной секции, так как далее сможете использовать экстеншены и для внутреней связи без написания доп кода (там же можно прикрутить s-BUSY с отправкой e-mail или VoiseMail).
Но исходящие так же должны быть в отдельной секции.
| Код: |
| [dial-office-num] exten => _5XXX,1,NoOp(Dial from ${CALLERID(name)} ${CALLERID(num)} to ${EXTEN}) same => n,Dial(sip/${EXTEN},20,Tt) same => n,Hangup() exten => i,1,Playback(vm-unknown-caller) same => n,Hangup() |
и тогда
| Код: |
| [inbound_telphin] include => dial-office-num |
_________________
Мы всегда можем уметь...
| nikto @ Чт Окт 25, 2012 14:42 писал(а): |
| Позволю себе развить мысль. |
спасибо за столь подробное разъяснение!