Письмо #20215 Списка Рассылки CGatePro@list.communigate.ru
От Кого: Dmitry Akindinov <CGatePro@ru.stalker.com>
Кому: CommuniGate Pro Russian Discussions <CGatePro@ru.stalker.com>
Тема: Re: [CGP] auto-attendant для несовсем локальных номеров
Дата: Wed, 26 Apr 2017 23:24:17 +0300
Здравствуйте.

On 2017-04-26 21:28, Dmitry Miloserdov wrote:
Подскажите пожалуйста есть ли возможность с помощью auto-attendant
дозваниваться до номеров не находящихся под управлением CGP?
В CGP заводим номера 3xxx, а есть номера 2xxx в старой АТС.
В настройках прописал
Directory Prefix: 23
Directory Digits: 4
Звонок на локальные номера идет а на старую АТС нет.
В router есть правило
Signal:<2(3d)@*>     = gatewaycaller{2*}#pbx
И для обычных звонков оно работает, а вот после автосекретаря эта схема
похоже не работает.
В логах вижу rejecting call: code=401(Authentication required)

Аутентификации требует приложение gatewaycaller в строке 79: оно должно знать, от имени какого аккаунта делается звонок, чтобы прочитать его настройки. Звонки же через автосекретаря могут быть анонимными (если приходят не от локального аккаунта) - такие gatewaycaller по умолчанию не пропускает.

Есть какая-то правильная схема чтобы для звонков на 2xxx не требовалась
авторизация? Или как-то автосекретаря авторизовать?

Можно модифицировать gatewaycaller: в строке 79 вставить проверку, что звонок идет через определенный шлюз и назначить какой-то аккаунт ответственным за звонок, приблизительно так:

if(callerEmail == null) {callerEmail = MyEmail();}

Но это небезопасно, аоскольку потенциально позволит отправлять звонки неаутентифицированных пользователей в шлюз (в город) - создаст открытый релей. Надо вставить проверку на нос=мер или на имя шлюза.

Другой вариант - модифицировать callConnected.sppi в районе строки 24:
callParams.impersonate = RouteLocalURI(RemoteURI()) == null? MyEmail(): SIPURIToEmail(RemoteURI());


--
Best regards,
Dmitry Akindinov
Подписаться (Прямо) Подписаться (Дайджест) Подписаться (Оглавление) Отписаться Написать Listmaster-у