Инструменты пользователя

Инструменты сайта


faq:specific_provider

Это старая версия документа!


Звонок через определенного провайдера

Обратно к инструкциям

Инструкции подходят для версии Askozia 6.5.9+

Постановка задачи

В Askozia 6 (Телефония → Сотрудники) настроены следующие учетные записи сотрудников:


В Askozia 6 настроены два провайдера от поставщика услуг связи Zadarma (Маршрутизация → Провайдеры телефонии):


Необходимо, чтобы:

  1. телефон, подключенный к учетной записи 201 звонил только через первого провайдера Zadarma
  2. телефон, подключенный к учетной записи 202 звонил только через второго провайдера Zadarma.

Звонки во внешний мир (в город) через обоих провайдеров Zadarma реализуются по одинаковому исходящему правилу: это десятизначный номер, начинающийся с 7. Схематично задачу можно изобразить следующим образом:

Решение

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

  • Звонки всегда будут идти через первого провайдера, если перед исходящим номером всегда добавлять 1. Следовательно, если 201 абонент будет набирать исходящие номера с префиксом 1, то вызовы пойдут через первого провайдера.

  • Звонки всегда будут идти через второго провайдера, если перед исходящим номером всегда добавлять 2. Следовательно, если 202 абонент будет набирать исходящие номера с префиксом 2, то вызовы пойдут через второго провайдера.

Схематично это можно изобразить следующим образом:

Реализовать эту задачу можно двумя способами в Askozia:

  1. Абоненты 201 и 202 всегда на телефоне будут добавлять определенные префиксы перед набираемым номером, т.е. если они хотят позвонить на номер 74952293042, они перед этим номером добавляют префикс 1 или 2, например 174952293042

  2. Абоненты 201 и 202 не набирают специальные префиксы, за них это действие выполняет сама АТС.

Первый способ

Первый способ реализации поставленной нами задачи предполагает, что абоненты 201 и 202 самостоятельно будут на телефоне набирать соответствующие префиксы перед набираемым номером. 201 абонент всегда перед номером будет добавлять 1, а 202 абонент - 2.

1. Для первого провайдера Zadarma создаем исходящее правило. Переходим в раздел МаршрутизацияИсходящие маршруты. Добавляем новое правило как на скриншоте ниже:


2. Для второго провайдера Zadarma создаем исходящее правило. Переходим в раздел МаршрутизацияИсходящие маршруты. Добавляем новое правило как на скриншоте ниже:


Второй способ

Второй способ реализации поставленной нами задачи предполагает, что абоненты 201 и 202 НЕ будут на телефоне набирать соответствующие префиксы перед набираемым номером. За них это будет делать сама АТС!

1. Добавляем исходящие правила для первого и второго провайдера Zadarma, как описано в первом способе. Настройки все идентичны.

2. В разделе МаршрутизацияПровайдеры телефонии добавьте третью учетную запись провайдера со следующими данными:



3. Сохраните учетную запись и в адресной строке скопируйте ID данного провайдера.
4. Добавьте исходящее правило для созданного провайдера. Все звонки по умолчанию мы будем направлять через данного провайдера, поэтому будьте внимательны при создании исходящего шаблона. Звонки через провайдеров Zadarma можно осуществлять на номера, начинающиеся с 7, поэтому наш шаблон принимает вид:

5. Обратите внимание, приоритет исходящего правила для провайдера Route должен быть ниже всех!

6. Переходим в раздел СистемаКастомизация системных файлов. Открываем для редактирования конфигурационный файл extensions.conf.

Выбираем режим «Добавлять в конец файла».


7. В окне редактирования вставляем следующие строки:

[globals](+)
MIKO_PREFIX_NUMBER_800=2; Префикс для внутреннего номера 800
MIKO_PREFIX_NUMBER_404=2; Префикс для внутреннего номера 404

[SIP-PROVIDER-3B7181D15C7C6079BE3DF5D97A8558B4-outgoing-custom]
exten => _.!,1,ExecIf($[ "${PREFIX_NUMBER}x" != "x" ]?return)
    same => n,ExecIf($[ "${MIKO_PREFIX_NUMBER}x" == "x" ]?Set(MIKO_PREFIX_NUMBER=${MIKO_PREFIX_NUMBER_${FROM_PEER}}))
    same => n,Set(PREFIX_NUMBER=${MIKO_PREFIX_NUMBER})
    same => n,ExecIf($[ "${MIKO_PREFIX_NUMBER}x" != "x" ]?Goto(outgoing,${MIKO_PREFIX_NUMBER}${EXTEN},4))
    same => n,return
    
    
[all_peers-custom]
include => internal-custom

[internal-custom]
exten => _.!,1,NoOp(Start custom context)
    same => n,ExecIf($[ "${MIKO_PREFIX_NUMBER}x" == "x" ]?Set(MIKO_PREFIX_NUMBER=${MIKO_PREFIX_NUMBER_${FROM_PEER}}))
    same => n,Return()

В выше приведенном фрагменте кода Вам необходимо составить правильное наименование контекста.
Формат создаваемого контекста:

[ID-ПРОВАЙДЕРА-outgoing-custom]
  • ID-ПРОВАЙДЕРА - значение, которое вы сохранили на третьем шаге, описанном в данном способе. В нашем примере это SIP-PROVIDER-3B7181D15C7C6079BE3DF5D97A8558B4.

Ниже красным цветом выделен фрагмент, который Вам необходимо изменить.

Сохраняем изменения и возвращаемся обратно к списку конфигурационных файлов.

8. Переходим в раздел ТелефонияСотрудники. Для сотрудника с 201 номером переходим к расширенным настройкам.

В поле Дополнительные параметры SIP учетки добавляем следующие строки:

setvar=MIKO_PREFIX_NUMBER=1



Таким образом для 201 учетной записи мы задали префикс 1. Все исходящие звонки теперь будут проходить через первого провайдера.

9. Аналогичные действия выполняем для учетной записи с внутренним номером 202. В поле Дополнительные параметры SIP учетки добавляем следующие строки:

setvar=MIKO_PREFIX_NUMBER=2


Таким образом для 202 учетной записи мы задали префикс 2. Все исходящие звонки теперь будут проходить через второго провайдера.

На этом настройка завершена!

faq/specific_provider.1562852177.txt.gz · Последние изменения: 2019/07/11 13:36 — Портнов Алексей