Компоненты IVR: переключения

Два компонента переключают обслуживаемую линию на другого абонента. «Переключение на номер» — универсальный: годится и для внутренних номеров, и для города. «Переключение на внешний номер с указанием последовательности выделения линий» — только для внешних вызовов, но даёт полный контроль над тем, через какую линию пойдёт звонок и что абонент будет слышать во время дозвона.

Что происходит после успешной коммутации Управление уходит по ветке «Переход», и дальше сценарий должен дойти до компонента «Стоп». Он прервёт выполнение, не разрывая коммутацию и не возвращая управление в родительские сценарии. Без «Стопа» сценарий продолжит работу поверх уже состоявшегося разговора.
Работа при неснятой трубке Оба компонента работают и когда трубка на обслуживаемой внешней линии не снята. Тогда она снимается автоматически после ответа вызываемого абонента, а всё время дозвона внешний абонент слышит сигнал КПВ вместо мелодии ожидания. Это и есть сквозное переключение: за ожидание платит вызывающая сторона, а не вы.

Переключение на номер

Коммутирует обслуживаемую линию с абонентом по указанному номеру — во внешнюю среду или внутри системы. При наборе городского номера резервируется свободная и доступная по правам внешняя линия, в неё набирается номер, и ответа ждут в течение установленного интервала — по умолчанию 40 секунд. Во время ожидания играет стандартная мелодия.

Порядок выделения внешних линий Когда сценарий обрабатывает внешнюю линию либо внутреннюю, не связанную с пользователем, внешние линии выделяются в обратном порядке — с самой последней. Если порядок важен, берите второй компонент, где последовательность задаётся явно.

Переключение внутри АТС

Доступны все типы внутренних номеров, и ведут они себя по-разному.

Тип номераЧто происходит
Стандартный Попытка соединить абонента с одним из операторов или внутренних линий номера. Если все заняты, можно задействовать очередь ожидания.
Быстрый Переключение идёт внутрь АТС, но физически набор производится во внешнюю линию; тип быстрого номера (АТС или город) определяет, какая линия берётся. Свободных линий нет — возврат по ветке «Занято». Линия зарезервирована — управление вернётся после ответа внешней АТС по соответствующей ветке.
Запуск IVR Безвозвратный запуск назначенного в номере сценария. Текущий сценарий прекращает исполнение, переходы по веткам компонента не выполняются.
Служебный Доступны «Выход в город», «Выход в АТС» и «Перехват». См. ниже.
Служебные номера дают внешним абонентам права внутренних При «Выходе в город» и «Выходе в АТС» резервируется соответствующая служебному номеру внешняя линия — или производится коммутация с ней, смотря как настроен способ набора в «Общие настройки. АТС». При успехе управление возвращается по ветке «Переход», и сценарий ждёт компонента «Стоп». Дальше абонент оказывается ровно в тех условиях, как если бы он снял трубку на внутренней линии и набрал этот служебный номер.

«Перехват» работает обычным образом и нужен в основном в сценарии исходящей маршрутизации. Переключать на него можно сразу с номером-расширением: *103, где * — служебный номер перехвата, а 103 — внутренний стандартный номер.
Несуществующий номер уходит в «Не отвечает» Если указанного номера в системе нет или его тип не входит в перечисленные выше, управление возвращается по ветке «Не отвечает» — не по «Отсутствует», как можно было бы ожидать. Учитывайте это, разбирая, почему сценарий уводит абонента не туда.

Свойства

СвойствоОписание
НазначениеГородской (внешний) номер, внутренний АТС, «Авто» или «Возврат к оператору». См. ниже.
НомерАргумент с номером для дозвона.
Тип вызоваОбычный или интерком. При интерком-вызове телефонное устройство снимает трубку автоматически сразу после поступления звонка — если поддерживает эту функцию; иначе вызов идёт обычным образом.
CallerIdНомер дозванивающегося, отправляемый как caller-id. Если не указан, берётся настроенный общим образом номер, определившийся при внешнем звонке, либо основной внутренний номер пользователя или линии при внутреннем. Отображается во всплывающем окне у вызываемого.
CallerNameИмя, принудительно отправляемое как caller-name в IP-канал. При звонке внутри АТС без указания берётся имя абонента-инициатора. Тоже видно во всплывающем окне.
Дополнительная информация об абонентеПроизвольные данные об абоненте. См. предупреждение ниже.
Сигнал вызоваТег мелодии при звонке, если устройство это поддерживает; иначе играет сигнал по умолчанию.
Очередь ожиданияТолько при назначении «Внутри АТС». Ставить ли абонента в очередь, если номер занят.
Время ожиданияСколько секунд ждать соединения перед отбоем. См. предупреждение ниже.
Символы прерыванияПри их наборе ожидание прекращается, управление уходит по ветке «Переход, прервано».
Параметр командыТолько при назначении «В город». Свойство для служебных сценариев: передаёт пароль пользователя и подставляет его в статистику как инициатора звонка.
Запись разговора«Согласно настройкам» по умолчанию — работает стандартный поиск правил записи. Также «Записывать» и «Не записывать» — безусловно.
Код отказа SIP в переменнуюКод отказа, если компонент прерван неудачным SIP-ответом.
«Время ожидания» действует не всегда При наборе стандартного внутреннего номера свойство применяется только если ожидание в очереди запрещено. Если очередь разрешена, время ожидания не лимитируется вовсе.
Дополнительная информация теряется при переводах Она попадает в окно уведомления о входящем вызове, в комментарий к коммутации и доступна для просмотра и поиска в журналах «Статистика АТС» и «Мои звонки». Но при flash-переключении и flash-удержании последующие коммутации уже не содержат установленного значения. При дальнейших переводах абонента его нужно указывать заново.

Режимы назначения

РежимЧто делает
В город / Внутри АТСЯвное указание, куда идёт номер.
АвтоНомер ищется во внутреннем номерном плане: нашёлся — переключение внутрь системы, нет — набор в город.
Возврат к операторуПринудительно разрывает коммутацию абонента, кладёт трубку второму участнику и возвращает звонок на зарезервированного оператора, который ждёт обратного соединения в задаче.
Где пригодится «Возврат к оператору» Помимо основного сценария в call-центре — им разрывают только что начавшуюся коммутацию по какому-либо событию: истекло время, абонент набрал команду DTMF, в базе появились нужные данные, — и переводят звонок на полноценную обработку в IVR-сценарии.

Ветки переходов

ВеткаКогда срабатывает
ПереходУспешная коммутация.
Переход, занятоНомер занят; для внутренних — если очередь ожидания не активирована.
Переход, не отвечаетИстекло время ожидания. Сюда же уходит несуществующий номер.
Переход, отсутствуетНомер не обнаружен, нет ни одного активного абонента, нет внешней линии при наборе быстрого номера.
Переход, прерваноАбонент прервал ожидание набором символов прерывания.

Переключение на внешний номер с указанием последовательности выделения линий

То же переключение в город или на внешнюю АТС, но линия выбирается по заданному вами списку. Свободная линия ищется по установленной последовательности, резервируется, в неё набирается номер, ответа ждут установленный интервал — по умолчанию 40 секунд, — а в канал играет выбранная мелодия.

Поведение компонента меняется кардинально в зависимости от свойств Прежде всего от свойства «Коммутировать сразу» — именно оно определяет, что попадёт в статистику, что войдёт в запись разговора и какие ветки переходов вообще будут доступны. Разбор ниже.

Номер и его преобразование

СвойствоОписание
НомерАргумент с номером. Может содержать команду — строку из DTMF-символов и командных спецсимволов w, q, z, {, }. При звонке через SIP-шлюз без регистрации можно указать URI вида sip:username@domain — тогда, независимо от настроек, звонок уйдёт по этому адресу. Для шлюзов межсерверного взаимодействия указание URI обязательно.
Тип командыБез преобразования (по умолчанию) — номер уходит в линию как есть. Использовать команду направления — если линия взята из направления и в нём настроено преобразование, номер будет преобразован в команду по схеме направления.
Тип вызоваОбычный, экстренный или интерком.
Пустой номер меняет смысл компонента Если номер не указан, вместо набора производится выход на одну из назначенных внешних линий — аналогично служебным номерам «Выход в город» и «Выход в АТС». Линии перебираются в заданной компонентом последовательности. Исключение — когда «Коммутировать сразу» выставлено в «нет».
Экстренный вызов рвёт чужие разговоры В экстренном режиме, если среди назначенных линий нет свободных, система разрывает активные коммутации, чтобы освободить линию под этот звонок.

Значение «экстренный» уместно только в сценарии входа в АТС при наборе экстренного номера в явном виде — то есть без использования внутреннего номера с типом «экстренный». Во всех остальных случаях оставляйте «обычный»: вариации возможны, но их нужно тщательно продумывать, иначе разрывы будут незапланированными.
Когда преобразование в команду уже сделано Номер может быть преобразован в команду заранее — в самом сценарии или прямо в таблице абонентов (номер в чистом виде — частный случай команды). Тогда повторно преобразовывать не нужно, оставляйте «без преобразования».

Выбор линий

СпособКак задаётся
Список объектов Явно перечисляются существующие в системе линии и направления, задаётся последовательность поиска свободной, ненужные элементы отключаются. По каждому направлению перебираются все входящие в него линии.
Аргумент Динамическое указание: код или GUID линии, направления, потока либо шлюза строкой. Все линии указанного объекта перебираются последовательно до первой свободной и готовой к вызову. Режим введён для работы со шлюзами с динамической регистрацией потоков и компонентом «Регистрация потока».
Если линия входит в несколько направлений Когда включено преобразование номера по команде направления, будет применена команда того направления, которое стоит выше по приоритету в вашем перечислении. Порядок в списке — не только очерёдность поиска, но и правило разрешения таких пересечений.
СвойствоОписание
Фильтровать по правамДа / нет, по умолчанию «нет». Если обрабатывается канал пользователя системы, перечисленные линии дополнительно фильтруются по его правам выхода на внешние линии.
Идентификатор выбранной линии в переменнуюGUID линии, через которую пошёл вызов.
CallerIdПодставляемый номер. При отсутствии или некорректном значении берётся номер по умолчанию для канала.
CallerNameПодставляемое имя абонента для IP-каналов. Без указания CallerId не применяется.
Время ожиданияСколько секунд ждать соединения перед отбоем.
Мелодия ожиданияВыбирается так же, как файл в компоненте «Воспроизведение»: прикрепляется к сценарию либо берётся по сформированному пути на сервере. Играет до конца работы компонента.
Параметр командыДля служебных сценариев: передаёт пароль пользователя и подставляет его в статистику как инициатора звонка.
Символы прерыванияПри их наборе ожидание прекращается, управление уходит по ветке «Переход, прервано».
Запись разговора«Согласно настройкам», «Записывать» или «Не записывать».
Код отказа SIP в переменнуюКод отказа при переходе по ветке «Занято». Имеет смысл при звонках через внешние SIP-транки. Если переменная числовая, сохраняется только код.

«Коммутировать сразу»: три режима

Это главное свойство компонента. По умолчанию — «нет, воспроизводить мелодию».

РежимКогда происходит коммутацияЧто слышит абонентСтатистика и запись
Да Сразу после нахождения линии и начала набора. Ответа внешнего абонента ждут уже в коммутации. Всё, что приходит с внешней линии Строка о разговоре появится даже при неответе. Запись включит КПВ-сигнал — весь звук с момента SIP-ответа 183 или 200 OK.
Нет, воспроизводить мелодию Только после ответа абонента Выбранную мелодию ожидания; она смолкает при получении 200 OK. Уже стартовавшее фоновое воспроизведение не прерывается. По факту разговора
Нет, прослушивать медиа-поток Только после ответа абонента Сигнал с внешней линии, а не мелодию. Фоновое воспроизведение прерывается. Коммутация и запись начинаются с момента 200 OK.

В режиме «Да» возврат из компонента происходит сразу по ветке «Переход»; ветки «Занято» и «Не отвечает» в этом режиме недоступны. Сбой при наборе или коммутации уводит по ветке «Ошибка», отсутствие доступной линии — по ветке «Линий не найдено».

Режим «Да» с пустым номером на CTI-каналах Для FXO и E1 поведение меняется: после снятия трубки на внешнем канале он сразу коммутируется с обслуживаемым. С потоками E1 этим нужно пользоваться крайне осторожно — без дополнительных устройств-преобразователей протокол не поддерживает посимвольный набор номера через звуковой интерфейс, и такая комбинация параметров сделает дальнейший набор и коммутацию невозможными.

Столь же осмотрительно стоит задавать в компоненте последовательность линий из разных потоков, и тем более линий разного типа — E1, FXO, IP.
На SIP-каналах коммутация отложена Фактическая коммутация возможна только после получения SDP от удалённой стороны, поэтому и коммутация, и выход из компонента происходят отложенно — по ответам 183 и 200. При ответах серии 4xx коммутация не производится вовсе.

Ветки переходов

ВеткаКогда срабатывает
ПереходУспешная коммутация. В режиме «коммутировать сразу» успехом считается момент соединения двух каналов — от внешнего абонента при этом ещё не получено никаких сигналов, КПВ, отбой или ответ придут позже.
Переход, занятоНомер занят. Недоступно в режиме «коммутировать сразу».
Переход, не отвечаетИстекло время ожидания. Недоступно в режиме «коммутировать сразу».
Переход, линия не найденаСреди перечисленных нет доступной для вызова внешней линии.
Переход, прерваноАбонент прервал ожидание символами прерывания.
Переход, ошибкаОшибка при проверке пароля, наборе номера, ожидании событий или коммутации каналов.

Полный перечень возможных SIP-ответов приведён в спецификации протокола SIP — RFC 3261.