Немогу понять...
Добавлено: 28 сен 2014, 04:39
Здравствуйте. Я новичок, 2й день бьюсь с астериском, прошу помощи
имею астриск 11 + gsm dongle
Задача, при звонке на 100, и если не берут трубку позвонить на 792111111111, ну и соответственно чтобы на всех этапах говорило занято, не отвечает, недоступен.
Для других XXX номеров должно все обрабатываться аналогично, кроме отсутствия дозвона через GSM.
при звонке на несуществующий номер 145, получаю ошибку. Наверное потому что exten => _XXX,6,Goto(${EXTEN}-${DIALSTATUS},1) не может перейти в exten => _XXX-CHANUNAVAIL,1, Playback(no-answer) ; абонент недоступен
Ок
Беру звоню на существующий номер 400 и не беру трубку, получаю ошибку, что логично
ок беру звоню и на 400 скидываю звонок и это обрабатывается
Вопрос, почему последнее _XXX-BUSY обрабатывается?
имею астриск 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'