|
Здравствуйте.
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
|
|