Имею FreePBX 2.8.1.4 и Asterisk 1.8.
Есть два транка от одного провайдера Порттелеком (если это важно).
Мне надо, чтобы, если звонять на транк №1 -> звонок на 1-й экстейшн, а если звонят на транк №2 - > звонок на 2-й экстейшн.
Создаю в Inbound Routers входящий маршрут и с CID указываю номер 302555 (это номер транка №2). Сохраняю. Звоню на этот номер и получаю лог от Астериска:
== Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5
-- Executing [302555@from-trunk-sip-portel1:1] Set("SIP/portel1-00000477", "GROUP()=OUT_1") in new stack
-- Executing [302555@from-trunk-sip-portel1:2] Goto("SIP/portel1-00000477", "from-trunk,302555,1") in new stack
-- Goto (from-trunk,302555,1)
-- Executing [302555@from-trunk:1] Set("SIP/portel1-00000477", "__FROM_DID=30255") in new stack
-- Executing [302555@from-trunk:2] NoOp("SIP/portel1-00000477", "Received an unknown call with DID set to 302007") in new stack
-- Executing [302555@from-trunk:3] Goto("SIP/portel1-00000477", "s,a2") in new stack
-- Goto (from-trunk,s,2)
-- Executing [s@from-trunk:2] Answer("SIP/portel1-00000477", "") in new stack
-- Executing [s@from-trunk:3] Wait("SIP/portel1-00000477", "2") in new stack
-- Executing [s@from-trunk:4] Playback("SIP/portel1-00000477", "ss-noservice") in new stack
-- <SIP/portel1-00000477> Playing 'ss-noservice.gsm' (language 'en')
-- Executing [s@from-trunk:5] SayAlpha("SIP/portel1-00000477", "302555") in new stack
-- <SIP/portel1-00000477> Playing 'digits/3.gsm' (language 'en')
-- <SIP/portel1-00000477> Playing 'digits/0.gsm' (language 'en')
-- <SIP/portel1-00000477> Playing 'digits/2.gsm' (language 'en')
-- <SIP/portel1-00000477> Playing 'digits/0.gsm' (language 'en')
-- <SIP/portel1-00000477> Playing 'digits/0.gsm' (language 'en')
-- <SIP/portel1-00000477> Playing 'digits/7.gsm' (language 'en')
-- Executing [s@from-trunk:6] Hangup("SIP/portel1-00000477", "") in new stack
== Spawn extension (from-trunk, s, 6) exited non-zero on 'SIP/portel1-00000477'
-- Executing [h@from-trunk:1] Macro("SIP/portel1-00000477", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/portel1-00000477", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] GotoIf("SIP/portel1-00000477", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] GotoIf("SIP/portel1-00000477", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] Hangup("SIP/portel1-00000477", "") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/portel1-00000477' in macro 'hangupcall' == Spawn extension (from-trunk, h, 1) exited non-zero on 'SIP/portel1-00000477'
В логе указано, что Астериск перебирает не только транк №1 и №2, но и другие. О других я не упомянул, чтобы не запутаться.
100% уверен, что делаю не правильно. Что именно?
Решение не самое элегантное, но на примере просто Астериска можно сделать так:
Зарегистрировать оба аккаунта у провайдера и разрулить их в разные экстеншены в дефолтном контексте:
sip.conf
register => trunk1login:pass1@prov.com/ext1
register => trunk2login:pass2@prov.com/ext2
extension.conf
[default]
exten => ext1,1,Goto(contexttrunk1,s,1)
exten => ext2,1,Goto(contexttrunk2,s,1)
[contexttrunk1]
exten => s,1,Dial(SIP/user1)
[contexttrunk2]
exten => s,1,Dial(SIP/user2)
-- Goto (from-trunk,s,2)
Странно что переходит в тот же контекст, что и ранее. См:
-- Goto (from-trunk,302555,1)
Может from-trunk1 или from-trunk2?
Надо для начала убедиться что провайдер посылает логин и пароль при входящем звонке. У меня например манго телеком. И провайдер не посылает логин.
Задан: 2011-04-13 10:53:34 +0400
Просмотрен: 4,592 раз
Обновлен: Apr 14 '11
Особенность или глюк станции, при входящем вызове.
Неавторизованные входящие звонки на Elastix. Как?
Входящая маршрутизация zap-транков [закрыт]
Распределение входящих по транкам
Входящая маршрутизация(Inbound Routes)
did inbound - username mismatch, have <provider>, digest has <username> [закрыт]
Elastix и добавление + перед номером входящего звонка
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.