VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Передача внешнего CallerID из Opensips Астериксу

Использование и настройка других открытых VoIP PBX

Модераторы: april22, Zavr2008

Ответить
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Передача внешнего CallerID из Opensips Астериксу

Сообщение shaverdoff »

Добрый вечер коллеги!
Имеется схема
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)
Звонки между пирами 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 этот кусок

Код: Выделить всё

if (is_method("INVITE")) {
setflag(1);
if (!uri=~"sip:\*\*") {
route(toasterisk);
} else {
strip(2);
}
}
в диалплане Asterisk убрал все что выше. Внутренние звонки с пира на пир идут напрямую опенсип-опенсип.
но ситуация при Внешнем входящем звонке опять таже. нужный внешний CallerID не передается......
Последний раз редактировалось shaverdoff 12 янв 2015, 18:23, всего редактировалось 4 раза.
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: Передача внешнего CallerID из Opensips Астериксу

Сообщение Samael28 »

-- Executing [79XXXXXXXXX@multifon-in:3] Dial("SIP/multifon1-out-00000009", "SIP/10000,35,tTHhM(record^791YYYYYYYY^79XXXXXXXX)") in new stack ;

same => n,Dial(${MY},35,tTHhM(record^${CALLERID(NUM)}^${EXTEN}))

MY=SIP/7XXXXXXXXXX

??????
Мой профайл на Upwork
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: Передача внешнего CallerID из Opensips Астериксу

Сообщение shaverdoff »

Переменная называется MYMEGA1=SIP/7XXXXXXXXXX, а MY=SIP/10000
Скрыл номер просто.... и руками писал переменную неуглядел название:))

подправил ,)

но ситуацию это не меняет.
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Передача внешнего CallerID из Opensips Астериксу

Сообщение awsswa »

а конечно не силен в opensip
а что если из астера звонить через Dial(Local/
платный суппорт по мере возможностей
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: Передача внешнего CallerID из Opensips Астериксу

Сообщение shaverdoff »

эм.... это как? можно пример?

я убрал логику внутренних звонков пиров опенсипаса через астериск и в астериске и в опенсипсе.

смысла зацикливания особо не вижу...
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: Передача внешнего CallerID из Opensips Астериксу

Сообщение shaverdoff »

Вероятно решение - пиры оставить на астериске а опенсипс при запросе смотрел в базу и пропускал при регистрации пиров в астериск.
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Передача внешнего CallerID из Opensips Астериксу

Сообщение gosha »

а где полные конфиги ? и что говорит сип дамп поповоду того на каком леге ломается CallerID ?
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: Передача внешнего CallerID из Opensips Астериксу

Сообщение shaverdoff »

Он не ломается.... пиры сидят на опенсипсе. звонок из вне идет на астериск на внешний пир-мультифон. в диалплане контекст мультифон-ин идет обработка на какой пир отправлять звонок если он пришел извне на определенный внешний номер. и вот тут - раз пир не астерискный -идет на опенсипс same => n,Dial(${MY},35,tTHhM(record^${CALLERID(NUM)}^${EXTEN}))
и в итоге Caller-id берется из переменной MY равна она SIP/10000

ну или я уже ничего не понимаю

UPD:!!!

Заработало!!! правильно номер теперь передается!!!! кому интересно могу выложить конфиги
В общем итоге пропарсил еще раз конфиг опенсипса, корректно его прочесал... что там не работало и ошибку в логах не казало! ну и получилось!
чудеса в решете ....
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH