Кейс: контролируемое переключение звонка

Контролируемое переключение

Новая интересная возможность и кейс для решений с переключением.

Кейс

К нам обратился заказчик с интересной задачей. Он владеет интернет-площадкой для поиска недвижимости. Риэлторы и собственники недвижимости размещают на ней объявления, а посетители могут выбрать подходящий вариант. Ключевая проблема — риэлторы не всегда могут определить, что клиент пришёл именно с этой площадки.

Для решения этой проблемы заказчик нашёл элегантное решение. Номера телефонов на его площадке подменяются на его собственные. Трубку берёт наша программа и затем делает вызов на номер риэлтору. После поднятия трубки программа произносит «Звонок с сайта такого-то!» и соединяет два звонка. Такая конфигурация одновременно помогает решить вопрос с call-tracking и при этом уведомляет о источнике лида.

Решение

Чтобы решить эту задачу, мы добавили в наш продукт возможность умного переключения вызова. Раньше программа просто отдавала АТС команду переключения звонка на произвольный номер и, получив ответ телефонии об успешном выполнении команды переключения, больше не беспокоилась о судьбе звонка. Дозвонилась ли при этом АТС до абонента, взял ли он трубку — определить было невозможно. Новая возможность позволяет, не прерывая текущего вызова, выполнить новый, дождаться ответа абонента, произнести ему сообщение и только затем выполнить объединение вызовов. Так же возможно запросить разрешение второго абонента на соединение, посредством распознавания голоса или нажатия клавиш телефона.

Новая возможность сейчас доступна в тестовом режиме. Для реализации необходимо в нужное место сценария (например, после успешного набора номера и произнесения сообщения), вставить этот код:

var NewCall = new ActiveXObject ('CallOffice.Device');     // Создаём новое устройство

NewCall.LogFile = 'NewCall.log';                           // Если необходимо, включаем формирование журнала
NewCall.OpenCall (Device.Device);                          // Создаём новый вызов на текущем устройства

if (NewCall.Dial ('<номер телефона>@<адрес SIP сервера>', 40) == 0) {     // Набираем номер второго абонента и ждём ответа абонента 40 секунд
   NewCall.Say ('CallOffice.wav');                         // Произносим второму абоненту звуковое сообщение
   Device.TransferCall (NewCall);                          // Соединяем первого и второго абонента
}

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

Понравилась статья? Расскажите друзьям!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *