Урок 25 Маршрутизация исходящих вызовов — различия между версиями
Строка 10: | Строка 10: | ||
==Введение == | ==Введение == | ||
− | + | На прошлом уроке мы разбирались с приемом и обработкой входящих соединений, на этом уроке мы разберемся с исходящими. Исходящим звонком называется соединение или его попытка, который инициировала внутренняя линия. Все такие вызовы разделяют на две группы - исходящие на внешние линии и внутренние звонки (на внутренние линии). | |
− | * | + | |
− | * | + | В система Oktell совершить исходящий звонок различными способами: |
− | * | + | * Когда пользователь системы набирает номер со своего устройства запускается '''<span style="color:blue">сценарий IVR исходящей маршрутизации</span>''' |
− | * Система самостоятельно инициирует звонок. Например, | + | * Во время перевода звонка используется '''<span style="color:orange">сценарий IVR маршрутизации при переводе звонка</span>''' (если он отсутствует используется ''сценарий исходящей маршрутизации'') |
+ | * Если вызов номера происходит в рамках сбора конференции, запускается ''служебный сценарий набора внешних/быстрых номеров''' (если приглашен внешний номер) или ''служебный сценарий набора внутренних номеров при приглашении в конференцию'' (если приглашен внутренний номер) | ||
+ | * Система самостоятельно инициирует звонок. Например, через служебный сценарий, сервис автодозвона или менеджер задач (служебный сценарий набора внешнего номера в АДЗ, сценарий набора номера | ||
+ | |||
В каждом из этих сценариев в первую очередь определяется тип номера: внутренний или внешний. Если набран внешний - необходимо определить по каким линиям пойдет набор. На этом этапе выполняются необходимые проверки на длину номера, время совершения звонка и др, производятся запросы во внешние сервисы и обращение к базам данных. | В каждом из этих сценариев в первую очередь определяется тип номера: внутренний или внешний. Если набран внешний - необходимо определить по каким линиям пойдет набор. На этом этапе выполняются необходимые проверки на длину номера, время совершения звонка и др, производятся запросы во внешние сервисы и обращение к базам данных. | ||
+ | |||
+ | С помощью этого сценария система позволяет организовать "умный" выбор линии в зависимости от набираемого номера, текущего пользователя и других параметров. Особое внимание при составлении сценария следует обратить вопросу безопасности, например зашите от несанкционированных звонков на международные или платные короткие номера. | ||
==Сценарий исходящей маршрутизации== | ==Сценарий исходящей маршрутизации== | ||
− | IVR сценарии маршрутизации исходящих вызовов - системный сценарий для набора внутренних и внешних номеров пользователями системы. | + | IVR сценарии маршрутизации исходящих вызовов - системный сценарий для набора внутренних и внешних номеров пользователями системы. |
Начиная проектирование сценария необходимо принять во внимание, что большинство IP-телефонов и софтфонов могут передавать информацию о набранном номере до входа в сценарий, а аналоговые телефоны и USB-телефоны набирают номер уже после соединения. Если в первом случае можно определить набранный номер с помощью функции "'''Внешний номер (CalledId)'''", то во втором - придется реализовывать набор номера в сценарии. Таким образом, мы получаем следующие блоки: | Начиная проектирование сценария необходимо принять во внимание, что большинство IP-телефонов и софтфонов могут передавать информацию о набранном номере до входа в сценарий, а аналоговые телефоны и USB-телефоны набирают номер уже после соединения. Если в первом случае можно определить набранный номер с помощью функции "'''Внешний номер (CalledId)'''", то во втором - придется реализовывать набор номера в сценарии. Таким образом, мы получаем следующие блоки: |
Версия 06:54, 11 ноября 2014
Наверх | К предыдущему уроку |
Содержание
Введение
На прошлом уроке мы разбирались с приемом и обработкой входящих соединений, на этом уроке мы разберемся с исходящими. Исходящим звонком называется соединение или его попытка, который инициировала внутренняя линия. Все такие вызовы разделяют на две группы - исходящие на внешние линии и внутренние звонки (на внутренние линии).
В система Oktell совершить исходящий звонок различными способами:
- Когда пользователь системы набирает номер со своего устройства запускается сценарий IVR исходящей маршрутизации
- Во время перевода звонка используется сценарий IVR маршрутизации при переводе звонка (если он отсутствует используется сценарий исходящей маршрутизации)
- Если вызов номера происходит в рамках сбора конференции, запускается служебный сценарий набора внешних/быстрых номеров' (если приглашен внешний номер) или служебный сценарий набора внутренних номеров при приглашении в конференцию (если приглашен внутренний номер)
- Система самостоятельно инициирует звонок. Например, через служебный сценарий, сервис автодозвона или менеджер задач (служебный сценарий набора внешнего номера в АДЗ, сценарий набора номера
В каждом из этих сценариев в первую очередь определяется тип номера: внутренний или внешний. Если набран внешний - необходимо определить по каким линиям пойдет набор. На этом этапе выполняются необходимые проверки на длину номера, время совершения звонка и др, производятся запросы во внешние сервисы и обращение к базам данных.
С помощью этого сценария система позволяет организовать "умный" выбор линии в зависимости от набираемого номера, текущего пользователя и других параметров. Особое внимание при составлении сценария следует обратить вопросу безопасности, например зашите от несанкционированных звонков на международные или платные короткие номера.
Сценарий исходящей маршрутизации
IVR сценарии маршрутизации исходящих вызовов - системный сценарий для набора внутренних и внешних номеров пользователями системы.
Начиная проектирование сценария необходимо принять во внимание, что большинство IP-телефонов и софтфонов могут передавать информацию о набранном номере до входа в сценарий, а аналоговые телефоны и USB-телефоны набирают номер уже после соединения. Если в первом случае можно определить набранный номер с помощью функции "Внешний номер (CalledId)", то во втором - придется реализовывать набор номера в сценарии. Таким образом, мы получаем следующие блоки:
- 1й блок будет анализировать есть ли набранный номер
- 2й даст возможность совершить набор номера, если устройство его не передало
- 3й произведет анализ набранного номера и совершит маршрутизацию по соответствующим направлениям.
Рассмотрим стандартный сценарий исходящей маршрутизации, который включен изначально в дистрибутив Oktell. Сценарий выглядит следующим образом:
Блок: Определение набранного номера
Воспользуемся компонентом «присвоение», в котором создадим новую переменную сценария номер.
Размещение переменной локальное, тип — строковая.
В качестве значения указываем функцию CalledID(внешний номер),которая вернет набранный номер.
Далее переходим к компоненту сравнение в которым проанализируем наличие набранного номера.
В качестве аргумента 1 выбираем ранее созданную переменную «Номер», в качестве аргумента 2 оставляем пустоту.
Тип сравнения — равенство(=).
Таким образом мы будем сравнивать набранный номер с пустотой.
Соответственно,если набранный номер равен пустоте это означает что устройство никакую информацию нам не передало, и нам необходимо организовать набор номер,на который в дальнейшем осуществим вызов.
Если равенство не выполнится — это будет означать,что некий набранный номер существует, мы сразу перейдем к 3ему блоку, блоку анализа набранного номера с последующей маршрутизацией.
Блок: Набор номера в сценарии
Во втором блоке мы рассмотрим каким образом реализовать набор номера, для последующего вызова.
Воспользуемся компонентом воспроизведение с преднабором. В качестве аудио файла выбираем длинный гудок АТС — city. Символы прерывания указывать не будем,далее переменная — номер, в нее мы будем производить набор номера,очищать буфер оставляем да, максимальное время 20 и более секунд. Далее указываем количество символов,которые запишутся в переменную в рамках данного компонента - выставляем 1. Затем назначаем переход к следующему компоненту — компонент до ввод, в котором мы продолжим собирать номер. Так же назначаем переход по таймауту, назначаем на "Обрыв связи".
Далее переходим к компоненту преднабор, с помощью которого произведем донабор номера.
Символы прерывания так же не указываем.
В качестве переменной выбираем ту же самую переменную номер,что и в предыдущем компоненте.
Очищать буфер выставляем — НЕТ. Такая настройка поможет записывать полученные символы в конец переменной не затирая предыдущее значение.
Далее — максимальное время 3 секунды,
количество символом -1.
Переход на компонент «Пауза»,Переход,таймаут — на компонент «меню сравнения» для дальнейшего анализа.
В компоненте пауза выставляем 0 задержку,после чего осуществляем переход снова на компонент доввод,который мы использовали ранее.
С помощью такой схемы мы зацикливаем ввод, давая таким образом пользователя по 3 секунды на ввод каждой цифры.
Далее переходим к следующему блоку.
Блок: Анализ номера и маршрутизация вызова
В данном блоке мы произведем конечный анализ набранного номера и распределим коммутацию на соответствующие направления.
Компонент меню сравнения. В данном компоненте в качестве аргумента выбираем выражение, где с помощью строкой функции длина строки получаем длину набранного номера. т.е.
Далее в свойства значения указываем значения,которые может принять аргумент и назначаем соответствующие переходы.
Таким образом, если длина номера составляет 3 символа,осуществляем переключения на внутренние номера — на компонент «переключение»
Если же аргумент принимает прочие значения,то осуществляем переход на компонент переключение на внешние линии, с указанием направлений.
Далее рассмотрим свойства компонента переключение на внешние линии. В качестве номера указываем нашу переменную номер. Тип набора — без преобразований. Тип вызова — обычный Направления — указываем внешние линии через которые должны осуществляться звонки на внешнюю сеть. Далее переходим к свойству коммутировать сразу — выбираем: нет,прослушивать медиа-поток. Затем переход назначаем на стоп. Все остальные переходы на воспроизведение. Далее рассмотрим переключение внутрь. Назначение — внутрь Номер — переменная содержащая номер. Тип вызова — обычный. Переходим к очереди ожидания — выставляем ДА Время ожидания ответа 40 секунд. Затем переход назначаем на стоп, остальные переходы на воспроизведение.
Далее рассмотрим компонент воспроизведение, на который мы назначали все отрицательные переходы.
В данном компоненте ставим режим — файл полностью.
В качестве аудиофайла выбираем звук АТС Busy(короткие гудки).
После чего маршрутизируем коммутацию на обрыв связи.
Таким образов,в случае отрицательного перехода,например вызываемый абонент не отвечает или не найдены внешние свободные линии — пользователь Октелл услышит короткие гудки,после чего сможет положить трубку.
Скачать сценарий: Маршрутизация_исходящих.oscr