Несколько компаний используют одну Askoiza PBX (перевод)

Недавно нас спрашивали, можно ли использовать одну Askozia для нескольких организаций. Важным моментом было то, что при входящем звонке мы должны на телефоне видеть в какую именно компанию позвонил клиент, т.к. звонки обрабатывают одни и те же сотрудники.

Если используется несколько провайдеров, но можно просто указать префикс отображаемого номера для каждого провайдера в настройках. Например написать Company A, Company B и т.д. перед номером. Эта информация отобразится на телефоне сотрудника. Как это сделать написано в нашей wiki.

[spoiler]
0dbd8facfb78acfea4a122272e240e8c.jpg

А вот если вы используете одного провайдера, то в этом случае возникает проблема. Определить в какую компанию позвонили можно только по набранному номеру телефона.

В нашем примере будет 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 вашего провайдера. Чтобы ее найти нужно зайти в раздел Учетные записи  ->  Провайдеры -> Ваш провайдер -> Дополнительно
e050cc2785f3fc2af5b0dcd9ccc768d0.png


Не забудьте сохранить изменения.

p.s. Оригинал http://askozia.com/multiple-companies-sharing-one-phone-system/