Передача внешнего CallerID из Opensips Астериксу
Добавлено: 12 янв 2015, 17:56
Добрый вечер коллеги!
Имеется схема
Opensips 1.6.2 no tls внутренний IP 192.168.5.16
Asterisk 11 cert9 внутренний IP 192.168.5.8
Opensips является регистратором и пресенс-агентом сипклиентов
Asterisk в свою очередь держит транки и диалплан
конфиг Opensips
диалплан астериска
Звонки между пирами opensips идут через астериск
На Asterisk настроен Мультифон транк, сделан проброс всех внешних звонков на мультифон.
Если звонить на мультифоновский транк то не пробрасывается внешний CallerID звонящего
в логах астера при звонке с внешнего номера вот что
-- Executing [79XXXXXXXXX@multifon-in:1] NoOp("SIP/multifon1-out-00000009", "791YYYYYYYY") in new stack
-- Executing [79XXXXXXXXX@multifon-in:2] Set("SIP/multifon1-out-00000009", "__TRANSFER_CONTEXT=int") in new stack
-- Executing [79XXXXXXXXX@multifon-in:3] Dial("SIP/multifon1-out-00000009", "SIP/10000,35,tTHhM(record^791YYYYYYYY^79XXXXXXXX)") in new stack ; Здесь все правильно отображается
== Using SIP VIDEO CoS mark 6
== Using SIP RTP CoS mark 5
-- Called SIP/10000
== Using SIP VIDEO CoS mark 6
== Using SIP RTP CoS mark 5
-- Executing [10000@phones:1] Dial("SIP/10000-0000000b", "SIP/**10000@192.168.5.16") in new stack ; а вот тут уже нет
и в итоге получается что я как будто получаю сам от себя звонок. Понимаю что чего то не хватает... какой то переменной или опции в опенсипсе или астериске чтобы правильно отдавался CallerID.
если пользовать Астериск без связки с опенсипом и все пиры сидели бы на астериске то подобные звонки правильно обрабатываются CallerID показывается... подскажите в чем я ошибаюсь??
UPD:
Вообще убрал из Opensips этот кусок
в диалплане Asterisk убрал все что выше. Внутренние звонки с пира на пир идут напрямую опенсип-опенсип.
но ситуация при Внешнем входящем звонке опять таже. нужный внешний CallerID не передается......
Имеется схема
Opensips 1.6.2 no tls внутренний IP 192.168.5.16
Asterisk 11 cert9 внутренний IP 192.168.5.8
Opensips является регистратором и пресенс-агентом сипклиентов
Asterisk в свою очередь держит транки и диалплан
конфиг Opensips
Код: Выделить всё
if (is_method("INVITE")) {
setflag(1);
if (!uri=~"sip:\*\*") {
route(toasterisk);
} else {
strip(2);
}
}
route[toasterisk] {
xlog("forwarding to asterisk\n");
rewritehostport("192.168.5.8:5060");
if (!t_relay()) {
sl_reply_error();
}
exit;
}
Код: Выделить всё
[global]
MYMEGA1=SIP/7XXXXXXXXXX
MY=SIP/10000
[multifon-in]
exten => 7XXXXXXXXXX,1,NoOP(${CALLERID(NUM) - ${EXTEN}})
same => n,Set(__TRANSFER_CONTEXT=int)
same => n,Dial(${MY},35,tTHhM(record^${CALLERID(NUM)}^${EXTEN}))
same => n,Macro(voicemail,${MYHOME}@jewy)
same => n,HangUp()
[int]
exten => _1XXXX,n,Dial(SIP/**${EXTEN}@192.168.5.16)
На Asterisk настроен Мультифон транк, сделан проброс всех внешних звонков на мультифон.
Если звонить на мультифоновский транк то не пробрасывается внешний CallerID звонящего
в логах астера при звонке с внешнего номера вот что
-- Executing [79XXXXXXXXX@multifon-in:1] NoOp("SIP/multifon1-out-00000009", "791YYYYYYYY") in new stack
-- Executing [79XXXXXXXXX@multifon-in:2] Set("SIP/multifon1-out-00000009", "__TRANSFER_CONTEXT=int") in new stack
-- Executing [79XXXXXXXXX@multifon-in:3] Dial("SIP/multifon1-out-00000009", "SIP/10000,35,tTHhM(record^791YYYYYYYY^79XXXXXXXX)") in new stack ; Здесь все правильно отображается
== Using SIP VIDEO CoS mark 6
== Using SIP RTP CoS mark 5
-- Called SIP/10000
== Using SIP VIDEO CoS mark 6
== Using SIP RTP CoS mark 5
-- Executing [10000@phones:1] Dial("SIP/10000-0000000b", "SIP/**10000@192.168.5.16") in new stack ; а вот тут уже нет
и в итоге получается что я как будто получаю сам от себя звонок. Понимаю что чего то не хватает... какой то переменной или опции в опенсипсе или астериске чтобы правильно отдавался CallerID.
если пользовать Астериск без связки с опенсипом и все пиры сидели бы на астериске то подобные звонки правильно обрабатываются CallerID показывается... подскажите в чем я ошибаюсь??
UPD:
Вообще убрал из Opensips этот кусок
Код: Выделить всё
if (is_method("INVITE")) {
setflag(1);
if (!uri=~"sip:\*\*") {
route(toasterisk);
} else {
strip(2);
}
}
но ситуация при Внешнем входящем звонке опять таже. нужный внешний CallerID не передается......