имею астриск 11 + gsm dongle
Задача, при звонке на 100, и если не берут трубку позвонить на 792111111111, ну и соответственно чтобы на всех этапах говорило занято, не отвечает, недоступен.
Для других XXX номеров должно все обрабатываться аналогично, кроме отсутствия дозвона через GSM.
Код: Выделить всё
[globals]
[general]
[internal]
include => test
exten => _7X.,1,Dial(Dongle/GSM1/holdother:+${FILTER(0-9,${EXTEN})})
exten => _+7X.,1,Dial(Dongle/GSM1/holdother:+${FILTER(0-9,${EXTEN})})
exten => _8X.,1,Dial(Dongle/GSM1/holdother:+7${FILTER(0-9,${EXTEN:1})})
;exten => _007X.,1,Dial(Dongle/GSM1/holdother:+7${FILTER(0-9,${EXTEN:3})})
exten => _XXX,1,Answer()
exten => _XXX,2,Wait(1)
exten => _XXX,3,Playback(confbridge-join)
exten => _XXX,4,Background(transfer)
exten => _XXX,5,Dial(SIP/${EXTEN},30,Ttrm(default))
exten => _XXX,6,Goto(${EXTEN}-${DIALSTATUS},1)
;если не ответил для узла 100, пробуем позвонить через GSM
exten => 100-NOANSWER,1,Playback(followme/status) ; альтернативные пути
exten => 100-NOANSWER,n,Dial(Dongle/GSM1/holdother:+792111111111,30,Ttrm(default))
exten => 100-NOANSWER,n,Goto(_XXX-NOANSWER,1)
;eсли ответи
exten => _XXX-ANSWER,1,Goto(_XXX,7)
;Если абонент не отвечает
exten => _XXX-NOANSWER,1,Playback(no-answer)
exten => _XXX-NOANSWER,n,Goto(_XXX,7)
;Если абонент занят
exten => _XXX-BUSY,1,Playback(vm-isonphone) ; занят
exten => _XXX-BUSY,n,Goto(_XXX,7)
;Если абонент недоступен (незарегистриорван на сервере)
exten => _XXX-CHANUNAVAIL,1, Playback(no-answer) ; абонент недоступен
exten => _XXX-CHANUNAVAIL,n,Goto(_XXX,7)
;exten => _XXX-CONGESTION,1, GoTo(_XXX-BUSY,1)
exten => _XXX,7,Playback(vm-goodbye) //До свидания
exten => _XXX,n,Wait(1)
exten => _XXX,n,Hangup()
при звонке на несуществующий номер 145, получаю ошибку. Наверное потому что exten => _XXX,6,Goto(${EXTEN}-${DIALSTATUS},1) не может перейти в exten => _XXX-CHANUNAVAIL,1, Playback(no-answer) ; абонент недоступен
Код: Выделить всё
-- Executing [145@internal:5] Dial("SIP/200-00000017", "SIP/145,30,Ttrm(default)") in new stack
[Sep 28 04:29:24] WARNING[10702][C-00000036]: chan_sip.c:6011 create_addr: Purely numeric hostname (145), and not a peer--rejecting!
[Sep 28 04:29:24] WARNING[10702][C-00000036]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [145@internal:6] Goto("SIP/200-00000017", "145-CHANUNAVAIL,1") in new stack
-- Goto (internal,145-CHANUNAVAIL,1)
[Sep 28 04:29:24] WARNING[10702][C-00000036]: pbx.c:6646 __ast_pbx_run: Channel 'SIP/200-00000017' sent to invalid extension but no invalid handler: context,exten,priority=internal,145-CHANUNAVAIL,1
truebest*CLI>
Ок
Беру звоню на существующий номер 400 и не беру трубку, получаю ошибку, что логично
Код: Выделить всё
Executing [400@internal:5] Dial("SIP/200-0000001c", "SIP/400,30,Ttrm(default)") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/400
-- Started music on hold, class 'default', on channel 'SIP/200-0000001c'
-- SIP/400-0000001d is ringing
-- Nobody picked up in 30000 ms
-- Stopped music on hold on SIP/200-0000001c
-- Executing [400@internal:6] Goto("SIP/200-0000001c", "400-NOANSWER,1") in new stack
-- Goto (internal,400-NOANSWER,1)
[Sep 28 04:35:47] WARNING[10829][C-0000003c]: pbx.c:6646 __ast_pbx_run: Channel 'SIP/200-0000001c' sent to invalid extension but no invalid handler: context,exten,priority=internal,400-NOANSWER,1
Код: Выделить всё
-- Executing [400@internal:5] Dial("SIP/200-0000001e", "SIP/400,30,Ttrm(default)") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/400
-- Started music on hold, class 'default', on channel 'SIP/200-0000001e'
-- SIP/400-0000001f is ringing
-- Got SIP response 603 "Decline" back from 176.53.244.82:1024
-- SIP/400-0000001f is busy
== Everyone is busy/congested at this time (1:1/0/0)
-- Stopped music on hold on SIP/200-0000001e
-- Executing [400@internal:6] Goto("SIP/200-0000001e", "400-BUSY,1") in new stack
-- Goto (internal,400-BUSY,1)
-- Executing [400-BUSY@internal:1] Playback("SIP/200-0000001e", "vm-isonphone") in new stack
-- <SIP/200-0000001e> Playing 'vm-isonphone.ulaw' (language 'ru')
-- Executing [400-BUSY@internal:2] Goto("SIP/200-0000001e", "_XXX,7") in new stack
-- Goto (internal,_XXX,7)
-- Executing [_XXX@internal:7] Playback("SIP/200-0000001e", "vm-goodbye") in new stack
-- <SIP/200-0000001e> Playing 'vm-goodbye.ulaw' (language 'ru')
-- Executing [_XXX@internal:8] Wait("SIP/200-0000001e", "1") in new stack
-- Executing [_XXX@internal:9] Hangup("SIP/200-0000001e", "") in new stack
== Spawn extension (internal, _XXX, 9) exited non-zero on 'SIP/200-0000001e'