Есть примерно такая структура:
PBX1 -> E1 ->
PBX2 -> E1 -> Asterisk -> PSTN
2-ве АТС по E1 подключены к Asterisk, который уже рулит исходящими вызовами в город, плюсом есть достаточное количество IP телефонов.
Сейчас Caller ID звонков, идущих от PBX1/2, задан на самих АТС в виде для PSTN. Это вызывает несколько проблем, в частности - на IP телефоны звонки внутренних АТС приходят с городским Caller ID, а не со внутренним, что создает некоторую путаницу. Второй проблемой является одинаковый Caller ID у некоторых экстеншенов АТС, что тоже путает пользователей IP телефонов. Есть желание проставить Caller ID на обоих АТС равными внутренним номерам АТС, а при звонке наружу модифицировать их на Asterisk.
Собственно вопрос: какой способ модификации Caller ID при исходящем звонке наиболее правилен в данной ситуации ?
Вот такой, например, работает
[pstn]
exten => s,1,NoOp(${CALLERID(num)})
exten => s,n,ExecIf($[${CALLERID(num)}=2555]?Set(CALLERID(num)=8127972222))
Смущает количество ExecIf равное количеству номеров внутренних АТС, то есть при звонке наружу будет очень длинная проверка.
Есть второй вариант - прописать на АТС Caller ID в виде внутреннийномер+внешнийномер, например вот так 25558127972222 и далее уже при звонке наружу отрезать правые цифры Caller ID для PSTN, при звонке внутри отрезать левые цифры внутреннего номера, технически это будет работать быстрее, но базы Caller ID остаются на АТС, хотелось бы их держать на Asterisk, чтобы рулить всем из одного места.
В общем посоветуйте, как наиболее правильно сделать ?
Правильней будет устанавливать номер при выходе звонка в город. Если номера привязаны к внутренним , то используйте БД для назначения. Например
exten=> _X.,ExecIf($[${DB_EXISTS(CID/${CALLERID(num)})]?Set(CALLERID(num)=${DB(CID/${CALLERID(num)})})
exten=> _X.,Dial(TECH/OUT_TRUNK/NUM)
Задан: 2014-09-06 20:23:34 +0400
Просмотрен: 597 раз
Обновлен: Sep 07 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.