Не получается разрулить звонок по CID
Столкнулся с проблемой не получается разрулить звонок по CID
AMI запрос
| Код: |
| Action: Originate Channel: SIP/100 Exten: 74951234567 Context: from_web Priority: 1 Callerid: "100" Async: yes |
Диалплан для обработки
| Код: |
| [default] exten => s,1,Verbose(1,${CONTEXT} - ${EXTEN} - all: ${CALLERID(all)} - num: ${CALLERID(num)} - name: ${CALLERID(name)}) same => n,DumpChan(0) [from_web] exten => _7[3-589]XXXXXXXXX/_10X,1,Set(TRUNK=trunk-1) exten => _7[3-589]XXXXXXXXX/_20X,1,Set(TRUNK=trunk-2) exten => _7[3-589]XXXXXXXXX,2,NoOp() same => n,Dial(SIP/${TRUNK}) |
Т.к в контексте from_web не находит нужный exten перекидывает в контекст default
| Код: |
| [Jan 19 23:13:13] == Starting SIP/100-00000030 at from_web,74951234567,1 failed so falling back to exten 's' [Jan 19 23:13:13] == Starting SIP/100-00000030 at from_web,s,1 still failed so falling back to context 'default' [Jan 19 23:13:13] -- Executing [s@default:1] Verbose("SIP/100-00000030", "1,default - s - all: "100" - num: 100 - name: 1000") in new stack [Jan 19 23:13:13] default - s - all: "100" - num: 100 - name: 100 [Jan 19 23:13:13] -- Executing [s@default:2] DumpChan("SIP/100-00000030", "0") in new stack [Jan 19 23:13:13] Dumping Info For Channel: SIP/100-00000030: ================================================================================ Info: Name= SIP/100-00000030 Type= SIP UniqueID= 1421701991.48 LinkedID= 1421701991.48 CallerIDNum= 100 CallerIDName= 100 ConnectedLineIDNum= 100 ConnectedLineIDName=100 DNIDDigits= (N/A) RDNIS= (N/A) Parkinglot= default Language= ru State= Up (6) Rings= 0 NativeFormat= 0x4 (ulaw) WriteFormat= 0x4 (ulaw) ReadFormat= 0x4 (ulaw) RawWriteFormat= 0x4 (ulaw) RawReadFormat= 0x4 (ulaw) WriteTranscode= No ReadTranscode= No 1stFileDescriptor= 25 Framesin= 4 Framesout= 0 TimetoHangup= 0 ElapsedTime= 0h0m2s DirectBridge= IndirectBridge= Context= default Extension= s Priority= 2 CallGroup= PickupGroup= Application= DumpChan Data= 0 Blocking_in= (Not Blocking) Variables: SIPCALLID=1adf90b11f9642c718e9d52c45e2c0f1@18.63.93.25:5060 ================================================================================ |
Судя по DumpChan все нужные поля CallerID установлены, но по CID даже не пытается вызвать нужный exten.
Может кто знает как можно сделать правильно и красиво, мне пришлось городить логику из GotoIf
используется Asterisk 1.8
_________________
Jabber конференция
сервер: conference.jabber.ru
комната: asterisk
Последний раз редактировалось: koqep (Вт Янв 20, 2015 17:49)
2) ну сам Dial два раза должен быть.
| Код: |
| [from_web] exten => _7[3-589]XXXXXXXXX/_10X,1,Set(TRUNK=trunk-1) same => n,Dial(SIP/${TRUNK}) exten => _7[3-589]XXXXXXXXX/_20X,1,Set(TRUNK=trunk-2) same => n,Dial(SIP/${TRUNK}) |
А вот если вот так сделать, тогда будет замечательно работать, но буде выбираться trunk-other
| Код: |
| [from_web] exten => _7[3-589]XXXXXXXXX/_10X,1,Set(TRUNK=trunk-1) exten => _7[3-589]XXXXXXXXX/_20X,1,Set(TRUNK=trunk-2) exten => _7[3-589]XXXXXXXXX,1,Set(TRUNK=trunk-other) ;; _7[3-589]XXXXXXXXX,2,NoOp() same => n,Dial(SIP/${TRUNK}) |
_________________
Jabber конференция
сервер: conference.jabber.ru
комната: asterisk
| Код: |
| CLI> core show version Asterisk 1.8.23.1 built by root @ ...... on a i386 running FreeBSD on 2013-10-25 18:01:45 UTC |
| Код: |
| [from_web]. exten => _7[3-589]XXXXXXXXX/_10X,1,Set(TRUNK=trunk-1) exten => _7[3-589]XXXXXXXXX/_20X,1,Set(TRUNK=trunk-2) exten => _7[3-589]XXXXXXXXX,1,Set(TRUNK=trunk-other) exten => _7[3-589]XXXXXXXXX,2,NoOp() same => n,NoOp(${TRUNK}) |
| Код: |
| ACTION: Originate Channel: SIP/6003 Exten: 74951234567 Context: from_web Priority: 1 Callerid: "100" |
| Код: |
| CLI> -- Executing [74951234567@from_web:1] Set("SIP/6003-000014b3", "TRUNK=trunk-1") in new stack -- Executing [74951234567@from_web:2] NoOp("SIP/6003-000014b3", "") in new stack -- Executing [74951234567@from_web:3] NoOp("SIP/6003-000014b3", "trunk-1") in new stack |
| Код: |
| ACTION: Originate Channel: SIP/6003 Exten: 74951234567 Context: from_web Priority: 1 Callerid: "200" |
| Код: |
| CLI> -- Executing [74951234567@from_web:1] Set("SIP/6003-000014b4", "TRUNK=trunk-2") in new stack -- Executing [74951234567@from_web:2] NoOp("SIP/6003-000014b4", "") in new stack -- Executing [74951234567@from_web:3] NoOp("SIP/6003-000014b4", "trunk-2") in new stack |
а что у вас показывает ?
| Код: |
| CLI> dialplan show 74951234567@from_web |
| Код: |
| CLI> dialplan show 74951234567@from_web [ Context 'from_web' created by 'pbx_config' ] '_7[3-589]XXXXXXXXX' (CID match '_10X') => 1. Set(TRUNK=trunk-1) [pbx_config] '_7[3-589]XXXXXXXXX' (CID match '_20X') => 1. Set(TRUNK=trunk-2) [pbx_config] '_7[3-589]XXXXXXXXX' => 1. Set(TRUNK=trunk-other) [pbx_config] 2. NoOp() [pbx_config] 3. NoOp(${TRUNK}) [pbx_config] |
| Цитата: |
| Be Careful with Pattern Matching Icon Please be aware that because of the way auto-fallthrough works, if Asterisk can't find the next priority number for the current extension or pattern match, it will also look for that same priority in a less specific pattern match. Consider the following example: exten => 6410,1,SayDigits(987) exten => _641X,1,SayDigits(12345) exten => _641X,n,SayDigits(54321) If you were to dial extension 6410, you'd hear "nine eight seven five four three two one". We strongly recommend you make the Hangup() application be the last priority of any extension to avoid this problem, unless you purposely want to fall through to a less specific match. |
Впрочем, дело ваше: https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching#PatternMatching-MatchingonCallerID