Вы прочитали, что я написал?! Там может и не номер быть. Все зависит, какое вы каналу имя присвоили.
bolshoy_plohish (Feb 5 '12)editЕсть 2 номера у одного провайдера, заведенные на 1 Asterisk.
[443613371]
host=sip.intertelecom.ua
username=443613371
secret=***
trunkname=intertelecom.ua
context=DID_443613371
hasexten=no
hasiax=no
hassip=yes
registeriax=no
registersip=yes
trunkstyle=voip
fromdomain=sip.intertelecom.ua
fromuser=443613371
authuser=443613371
insecure=port,invite
disallow=all
allow=ulaw,alaw,gsm,g726
[443836313]
host=sip.intertelecom.ua
username=443836313
secret=***
trunkname=itelecom313
context=DID_443836313
hasexten=no
hasiax=no
hassip=yes
registeriax=no
registersip=yes
trunkstyle=voip
insecure=port,invite
fromdomain=sip.intertelecom.ua
authuser=443836313
fromuser=443836313
disallow=all
allow=ulaw,alaw,gsm
Для каждого заведен свой contex, но при звонке на любой номер срабатывает только 1 из указанных contex'ов.
-- Executing [443836313@DID_443836313:1] Goto("SIP/443836313-00000016", "default,6005,1") in new stack
-- Goto (default,6005,1)
-- Executing [443613371@DID_443836313:1] Goto("SIP/443836313-00000014", "default,6005,1") in new stack
-- Goto (default,6005,1)
Как правильно разделить вызовы, в зависимости от набранного номера? Кроме как подымать под каждый номер отдельный сервер.
я делаю так
[incoming]
exten => 1111111111,1,Goto(context1,s,1)
exten => 2222222222,1,Goto(context2,s,1)
[context1]
exten => s,1,Dial()
[context2]
exten => s,1,Dial()
астериск определяет транк по паре адрес+порт.
тоесть в вашем случае будет всегда ОДИН выбираться. тото который первый в конфиге.
поищите другой вариант разделения, например по номерам.
да, точно ничего сделать с этим нельзя. это очень глубоко в sip канале заложено.
надо определить оба этих номера в один контекст (in_intertelecom например), а в нем обрабатывать их с помощью плана нумерации:
[in_intertelecom]
exten => 443613371,1,Dial(SIP/100)
exten => 443836313,1,Dial(SIP/101)
Еще можно по имени канала маршрутизацию сделать.
[incoming]
exten => _.,1,GotoIf($["${CHANNEL:4:-9}" = "443613371"]?context1,s,1)
exten => _.,n,GotoIf($["${CHANNEL:4:-9}" = "443836313"]?context2,s,1)[context1]
exten => s,1,Dial()[context2]
exten => s,1,Dial()
Вы прочитали, что я написал?! Там может и не номер быть. Все зависит, какое вы каналу имя присвоили.
bolshoy_plohish (Feb 5 '12)editПравильнее использовать SIP_HEADER(TO)
[incoming]
exten => _.,1,Set(DestN=${SIP_HEADER(TO):5})
exten => _.,n,Set(DestN=$CUT(DestN,@,1)})
exten => _.,n,Goto(${DestN},s,1)
#exten => _.,n,GotoIf($["DestN" = "443613371"]?context1,s,1)
#exten => _.,n,GotoIf($["DestN" = "443836313"]?context2,s,1)
[443613371]
exten => s,1,Dial()
[context1]
ну и так далее, смотря на Ваше усмотрение
Задан: Feb 3 '12
Просмотрен: 2,520 раз
Обновлен: Aug 31 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.