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

On 2017-04-27 21:46, Dmitry Miloserdov wrote:
Спасибо.
Еще бы хотелось оставить оригинальный CgPN.
Если входящий звонок с XXXXXXX@PBX-IP через автосекретаря направляется
но локального пользователя то входящий номер указан верно, а если на
того кто за гейтом то с номера указанного в "Name for Gateway" у pbx

Поле From строится из значения Caller ID настроек PSTN. Если его оставить пустым, то должен использоваться оригинальный URI.

26.04.2017 23:24, Dmitry Akindinov пишет:
Здравствуйте.

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-у