Если используется несколько провайдеров, но можно просто указать префикс отображаемого номера для каждого провайдера в настройках. Например написать Company A, Company B и т.д. перед номером. Эта информация отобразится на телефоне сотрудника. Как это сделать написано в нашей wiki.
[spoiler]
А вот если вы используете одного провайдера, то в этом случае возникает проблема. Определить в какую компанию позвонили можно только по набранному номеру телефона.
В нашем примере будет SIP транк с 10-ю номерами от xxxxxxx0 до xxxxxxx9. Мы должны анализировать каждый набранный номера и сопоставлять его с нужной компанией. Допустим номера xxxxxxx0 до xxxxxxx3 принадлежат Company A, номера xxxxxxx4 - xxxxxxx6 принадлежат Company B, а номера xxxxxxx7 до xxxxxxx9 Company C.
Set(BUSINESS=${EXTEN:-1}); получаем последнюю цифру ExecIf($[${BUSINESS} >= 0 & ${BUSINESS} <= 3]?Set(CALLERID(name)=Business A ${CALLERID(name)})) ; Company A ExecIf($[${BUSINESS} >= 4 & ${BUSINESS} <= 6]?Set(CALLERID(name)=Business B ${CALLERID(name)})) ; Company B ExecIf($[${BUSINESS} >= 7 & ${BUSINESS} <= 9]?Set(CALLERID(name)=Business C ${CALLERID(name)})) ; Company C |
Этот скрипт может работать и с большим количеством номеров. Например, чтобы анализировать две последние цифры, вам нужно заменить строчку EXTEN:-1 на EXTEN:-2.
Модифицируйте код так как вам необходимо, затем добавьте его в секцию Manual Dialplan Incoming вашего провайдера. Чтобы ее найти нужно зайти в раздел Учетные записи -> Провайдеры -> Ваш провайдер -> Дополнительно
Не забудьте сохранить изменения.
p.s. Оригинал http://askozia.com/multiple-companies-sharing-one-phone-system/