Система: elastix 2.0.0
Asterisk 1.6.2.13
Есть 3 многоканальных номера, заведённых по sip транку (по логину и паролю)
Стоит задача делать разные сценарии в зависимости от номера DID, сейчас все заведено через один сценарий, но дописано чтобы работало по префиксу, сейчас возникла мысль, прописать направление входящего вызова в настройках самого транка:
[78172765378]
secret=пароль
username=user79837265346
host = mangosip.ru
fromuser = user79837265346
fromdomain = mangosip.ru
dtmfmode=rfc2833
qualify=2000
insecure=invite
disallow=all
allow=alaw
nat=yes
context=inbound-rezinaNET
hasexten = no
hassip = yes
hasiax = no
registeriax = no
registersip = yes
canreinvite = nonat
[golden044_7777_1]
disallow=all
username=login
type=peer
secret=gfhjkm
insecure=invite
host=62.64.127.43
fromuser=login
context=inbound-rezina
allow=ulaw
allow=alaw
allow=g726
[golden044_7777_10]
disallow=all
username=login_2
type=peer
secret=gfhjkm2
insecure=invite
host=62.64.127.43
fromuser=login_2
context=inbound-rezina
allow=ulaw
allow=alaw
allow=g726
[golden044_5555]
disallow=all
username=login1
type=peer
secret=gfhjfkmeg
insecure=invite
host=62.64.127.43
fromuser=login1
context=inbound-220instrument
allow=ulaw
allow=alaw
allow=g726
как сейчас заведён сценарий:
[inbound-rezina]
exten => _.,1,Wait(1)
exten => _.,n,Wait(1)
exten => _номердид1,1,Read(select00,custom/Converted_Welcome_220,3,,,4)
exten => _номердид2,n,Read(select00,custom/welcome_rezina,3,,,4)
exten => _номердид3,2,Read(select00,custom/hellonet,3,,,4)
и т.д
exten => _.,1,Wait(1)
exten => _.,n,Wait(1)
exten => _номердид1,1,Read(select00,custom/Converted_Welcome_220,3,,,4)
exten => _номердид2,n,Read(select00,custom/welcome_rezina,3,,,4)
exten => _номердид3,2,Read(select00,custom/hellonet,3,,,4)
и т.д
Прописал в настройках транка направлять вызов на определённый inbound, а в файле диалплана создал три разных сценарий, но при вызове на любой из номеров срабатывает только 1 сценарий, который последним прописан в диалплане, помогите пожалуйста, где капать?
Последний раз редактировалось: Mixa87 (Чт Ноя 01, 2012 16:15)
exten => _номердид1,1,Read(select00,custom/Converted_Welcome_220,3,,,4)
exten => _номердид2,n,Read(select00,custom/welcome_rezina,3,,,4)
exten => _номердид3,2,Read(select00,custom/hellonet,3,,,4)
Должно быть так
exten => номердид1,1,Read(select00,custom/Converted_Welcome_220,3,,,4)
exten => номердид2,1,Read(select00,custom/welcome_rezina,3,,,4)
exten => номердид3,1,Read(select00,custom/hellonet,3,,,4)
_________________
Мы всегда можем уметь...
Что в консоли? Какие ошибки!
Звонок может слетать потому как неверно прописан сам номер.
Давайте лог работы и там уже будет видно.
_________________
Мы всегда можем уметь...
-- Executing [444927777@inbound-rezina:1] Read("SIP/golden044_5555-000000a3", "select00,custom/welcome_rezina,3,,,4") in new stack
-- Accepting a maximum of 3 digits.
== Spawn extension (from-internal, 0970244180, 5) exited non-zero on 'SIP/113-00000085'
== MixMonitor close filestream
== End MixMonitor Recording SIP/113-00000085
-- Playing 'custom/welcome_rezina.slin' (language 'ru')
[inbound-rezina]
exten => s,1,Wait(1)
exten => s,n,тра-ля-ля
[inbound-rezinaNET]
exten => s,1,Wait(1)
exten => s,n,тра-ля-ля
[inbound-220instrument]
exten => s,1,Wait(1)
exten => s,n,тра-ля-ля
дальше если надо перекинуть на общую ветку, добвляете в конце
exten => s,n,Goto(zvono-dalee,s,1)
[zvono-dalee]
exten => s,1,NoOp(тра-ля-ля)
exten => s,n,тра-ля-ля
Пишите разные контексты для каждого транка и будет Вам великое счастье.
А еще, все же почитайте книгу, все станет сразу проще и понятней.
_________________
Мы всегда можем уметь...
[78172765378]
secret=пароль
username=user79837265346
host = mangosip.ru
fromuser = user79837265346
fromdomain = mangosip.ru
dtmfmode=rfc2833
qualify=2000
insecure=invite
disallow=all
allow=alaw
nat=yes
context=inbound-rezinaNET
hasexten = no
hassip = yes
hasiax = no
registeriax = no
registersip = yes
canreinvite = nonat
[golden044_7777_1]
disallow=all
username=login
type=peer
secret=gfhjkm
insecure=invite
host=62.64.127.43
fromuser=login
context=inbound-rezina
allow=ulaw
allow=alaw
allow=g726
[golden044_7777_10]
disallow=all
username=login_2
type=peer
secret=gfhjkm2
insecure=invite
host=62.64.127.43
fromuser=login_2
context=inbound-rezina
allow=ulaw
allow=alaw
allow=g726
[golden044_5555]
disallow=all
username=login1
type=peer
secret=gfhjfkmeg
insecure=invite
host=62.64.127.43
fromuser=login1
context=inbound-220instrument
allow=ulaw
allow=alaw
allow=g726
secret=пароль
username=user79837265346
host = mangosip.ru
fromuser = user79837265346
fromdomain = mangosip.ru
dtmfmode=rfc2833
qualify=2000
insecure=invite
disallow=all
allow=alaw
nat=yes
context=inbound-rezinaNET
hasexten = no
hassip = yes
hasiax = no
registeriax = no
registersip = yes
canreinvite = nonat
[golden044_7777_1]
disallow=all
username=login
type=peer
secret=gfhjkm
insecure=invite
host=62.64.127.43
fromuser=login
context=inbound-rezina
allow=ulaw
allow=alaw
allow=g726
[golden044_7777_10]
disallow=all
username=login_2
type=peer
secret=gfhjkm2
insecure=invite
host=62.64.127.43
fromuser=login_2
context=inbound-rezina
allow=ulaw
allow=alaw
allow=g726
[golden044_5555]
disallow=all
username=login1
type=peer
secret=gfhjfkmeg
insecure=invite
host=62.64.127.43
fromuser=login1
context=inbound-220instrument
allow=ulaw
allow=alaw
allow=g726
Не нравится что во время определения звонка номер схватывается не корректно:
Executing [448327777@inbound-rezina:1] Read("SIP/golden044_5555-000000a3", "select00,custom/welcome_rezina,3,,,4")
пробуйте так:
| Код: |
| ; Localphone exten => localphone,1,NoOp(Localphone call from ${CALLERID(all)} to ${SIP_HEADER(To)}) exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="46123456789"]?swedish_did,1) exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="34912345678"]?spanish_did,1) exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:15}"="88351001234"]?skype_did,1) ; default processing ... exten => localphone,n,Busy() exten => localphone,n,Hangup |
| Код: |
| ; Localphone (Swedish, Spanish, Skype DID) ; +34xxx, +46xxx, +88351xxx register => username:secret@localphone.com/localphone [sip-provider-user](!) context=incoming type=user progressinband=yes insecure=port,invite nat=no qualify=8000 disallow=all allow=gsm allow=alaw [sip-provider-peer](!) context=incoming type=peer progressinband=yes insecure=port,invite nat=no qualify=8000 disallow=all allow=gsm allow=alaw [localphone](sip-provider-user) defaultuser=username fromuser=username authuser=username secret=secret host=localphone.com fromdomain=localphone.com rfc2833compensate=yes [localphone](sip-provider-peer) defaultuser=username fromuser=username authuser=username secret=secret host=localphone.com fromdomain=localphone.com rfc2833compensate=yes |
; Localphone
exten => localphone,1,NoOp(Localphone call from ${CALLERID(all)} to ${SIP_HEADER(To)})
exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="46123456789"]?swedish_did,1)
exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="34912345678"]?spanish_did,1)
exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:15}"="88351001234"]?skype_did,1)
А потом поставить метки:
exten => _.,1(swedish_did),Wait(2)
exten => _.,n,Read(select00,custom/welcome_rezina,3,,,4)
........
exten => _.,1(spanish_did),Wait(2)
exten => _.,n,Read(select00,custom/welcome_instrument,3,,,4)
............................
exten => _.,1(skype_did),Wait(2)
exten => _.,n,Read(select00,custom/welcome_books,3,,,4)
Так можно использовать?
Added after 4 minutes:
Ещё dialplan довольно таки большой и содержит очень много меток, а они как я понимаю, должны быть уникальными, поэтому и возникла мысль чтобы просто разделить context на всех транках, и чтобы в зависимости от номера звонок направлялся на определённых контекст.
>>Так можно использовать?
Если Вы делаете
exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="46123456789"]?swedish_did,1)
то Вы прыгните на екстеншен swedish_did и приоритет 1
exten => swedish_did,1,NoOp()
same => n,Hangup()
А вот если Вы напишите
exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="46123456789"]?swedish_did)
То астер будет в данном екстеншене искать метку swedish_did
То есть
[inbound-rezina]
exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="46123456789"]?swedish_did)
......
......
same =>n(swedish_did),NoOp()
......
same => n,Hangup()
Мало того, Вы можете прыгнуть на другой контекст в четко определенный екстеншенс с определенным приоритетом.
То будет
[inbound-rezina]
exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="46123456789"]?inbound-220instrument,swedish_did,1)
[inbound-220instrument]
exten => swedish_did,1,NoOp()
same => n,Hangup()
Срочно тыц
_________________
Мы всегда можем уметь...
Последний раз редактировалось: Mixa87 (Чт Ноя 01, 2012 14:29)
| Код: |
| exten => localphone,1,NoOp(Localphone call from ${CALLERID(all)} to ${SIP_HEADER(To)}) exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="46123456789"]?46123456789,1) exten => localphone,n,GotoIf($["${SIP_HEADER(To):5:11}"="34912345678"]?46123456789,1) ... |
| Код: |
| exten => 46123456789,1,Playback(congratulations-your-call-to-swedish-dhd-is-successful)[ |