Сценарий переключения для внешних номеров
Сценарий переключения - это IVR сценарий, который запускается всякий раз, когда вы переводите звонок на другого сотрудника. Перевод звонка может осуществляться, например, с помощью кнопки TRAN на ip-телефоне Yealink, а в клиентском приложении при использовании USB гарнитуры мы можем перевести звонок с помощью кнопки Флеш.
В сценарии переключения возникает большое количество различных ситуаций при переводе звонка. В этой статье, мне хотелось бы затронуть каждую из них. Для того, чтобы можно было легко описать каждый случай представим себе, что в компанию позвонил клиент А. Он попадает в главный сценарий (сценарий входящей маршрутизации) и каким-либо образом коммутируется с пользователем/оператором Б. Немного пообщавшись, пользователь Б хочет соединить клиента А с пользователем В. Это будет нашей отправной точкой.
Пользователи Б и В могут быть представлены как внутренними номерами, так и внешними, что дает нам вообще говоря 4 ситуации:
- внутренний пользователь Б переключает на внутреннего пользователя В
- внутренний пользователь Б переключает на внешний номер В
- внешний номер Б переключает на внутреннего пользователя В (только если установлен режим FLASH на внешней линии)
- внешний номер Б переключает на внешнего пользователя В (только если установлен режим FLASH на внешней линии)
Первый вопрос, который встает перед нами - будет ли в самом начале пользователь Б разговаривать с пользователем В, прежде чем переключит А на В.
Если да, то тогда пользователь Б нажимает флеш -> набирает номер -> ожидает ответа пользователя В. Пользователь В, может в свою очередь, как ответить на звонок, так и нет. Но об этом попозже. Клиент А все это время слушает мелодию ожидания. В случае удачного соединения Б и В, пользователь Б (который переключает) должен положить трубку и клиент А соединится с пользователем В.
Если пользователь Б не хочет дожидаться ответа тогда он будет ожидать первых гудков от пользователя В, а а затем положить трубку. Клиент А, в таком случае, должен соединиться с пользователем В. Если пользователь В недоступен, то клиент А услышит короткие гудки. Поэтому здесь важно, чтобы в случае неудачной коммутации клиент А возвратился к пользователю Б. Итого 2 варианта в этом вопросе.
Второй вопрос, который встает перед нами - доступен ли абонент В. Если абонент В недоступен, то клиент А должен опять соединиться с Б. Это добавляет еще 2 варианта.
Таким образом, мы приходим к выводу, что в сценарии переключения у нас могут быть 4*2*2 = 16 различных вариантов, которые все нужны учесть при создании.
Предлагаемый сценарий переключения способен учесть все варианты, но имеет свои особенности, которые будут освещены далее.
1. Перевод звонка внутренней линией на внутреннюю. Пользователи Б и В - внутреннии линии.
В таком случае при переводе звонка сценарий пойдет следующим образом:
а) При нажатии на флеш запустится сценарий переключения. Затем на компоненте "Режим Flash" служебной переменной Режим Flash устанавливается значение 1. Если пользователь Б положит трубку, то у клиента А (который был во Flash буфере) запустится сценарий переключения с того компонента, на котором отключился пользователь Б. Затем в компоненте сравнения "Это внутренний пользователь?" сценарий будет продолжен по ветке Ложь, и переменной "Номер возврата" присвоится номер пользователя Б. В случае неудачного перевода на пользователя В, клиент А вернется именно на этот номер. Затем на компоненте сравнения "флеш пусто?" сценарий перейдет по ветке Ложь и переменной НОМЕР будет присвоен номер пользователя В (с помощью функции CalledId). На компоненте сравнения "Номер Пусто?" в зависимости от типа устройства на котором происходит переключение стандартным образом происходит сборка номера В, до компонента присвоения "На который = Номер". Это обозначает, что номер пользователя В находится в переменной "НАКОТОРЫЙ". Далее происходит набор номера В.
б)На компоненте "Внутренние" происходит коммутация. Если пользователь Б продолжает ожидать коммутацию и пользователь В берет трубку. То переменной "невозврат" присваивается 1 , а номеру возврата (то есть в случае неудачной коммутации) присваивается номер "НАКОТОРЫЙ", то есть пользователя В. Таким образом у нас всегда есть информация, о том куда звонить клиенту А в случае неудачной коммутации. После разговора пользователь Б положит трубку, и А переключится на В. Также есть возможность пользователю В положить трубку и А соединится с В.
в) Если пользователь В недоступен, то после компонента "ВНУТРЕННИЕ", пользователь Б в режиме предпрослушивания услышит короткие гудки "занято", и у него произойдет сброс линии. Это осуществляется с помощью компонента "статус объекта" с помощью функции "мягкий сброс". После этого Октелл вернется А к Б. Также здесь специально поставлен компонент (устанавливающий есть ли линия во флеше), устанавливающий "незвозврат" в 1, так как иначе будут возникать случаи, что после коммутации А и Б, Б повесит трубку, А будет опять возвращаться к нему.
г) Если пользователь Б не хочет коммутироваться с В, то он услышав первые гудки кладет трубку, тогда А (начинающий с компонента ВНУТРЕННИЕ) успешно коммутируется и ему ставится переменная "невозврат = 1" и "номер возврата" = номер пользователя В. В случае если В недоступен клиент А услышит короткие гудки, и с помощью статуса объект произойдет сброс линии у А. Мягкий сброс затем запускает сценарий вместо отбоя, куда мы вставим компоненты обеспечивающие возврат клиента А к Б (так как была неудачная коммутация)
Выглядит он следующим образом:
В самом начале в компоненте "наша линия?" проверяется соответствует ли линия, запустившая сценарий - линии А (которая присвоена в сценарии входящей маршрутизации). Далее сценарий перейдет по ветке "правда" и определит, есть ли номер возврата - если такого не имеется произойдет обрыв связи. Иначе будет третье сравнение, в котором проверяется переменная невозврат, отвечающая за возврат звонка на Б. Происходит пауза 3 секунды, после чего А возвращается к Б. Невозврат затем ставится в состояние 1. (состояние "невозврат" = 1 отвечает за то, что вовзращать к Б не надо). Возврат к Б осуществляется по номеру "номер возврата".
2. В случае, когда внутренняя линия переключает на внешний номер (либо сразу набирая внешний , либо переключая на быстрый), можно поставить режим Flash на внешней линии. Подробнее в сценарии набора быстрых/внешних номеров. Остальная маршрутизация звонка при переключении происходит также, как описано выше.