Новая интересная возможность и кейс для решений с переключением.
Кейс
К нам обратился заказчик с интересной задачей. Он владеет интернет-площадкой для поиска недвижимости. Риэлторы и собственники недвижимости размещают на ней объявления, а посетители могут выбрать подходящий вариант. Ключевая проблема — риэлторы не всегда могут определить, что клиент пришёл именно с этой площадки.
Для решения этой проблемы заказчик нашёл элегантное решение. Номера телефонов на его площадке подменяются на его собственные. Трубку берёт наша программа и затем делает вызов на номер риэлтору. После поднятия трубки программа произносит «Звонок с сайта такого-то!» и соединяет два звонка. Такая конфигурация одновременно помогает решить вопрос с call-tracking и при этом уведомляет о источнике лида.
Решение
Чтобы решить эту задачу, мы добавили в наш продукт возможность умного переключения вызова. Раньше программа просто отдавала АТС команду переключения звонка на произвольный номер и, получив ответ телефонии об успешном выполнении команды переключения, больше не беспокоилась о судьбе звонка. Дозвонилась ли при этом АТС до абонента, взял ли он трубку — определить было невозможно. Новая возможность позволяет, не прерывая текущего вызова, выполнить новый, дождаться ответа абонента, произнести ему сообщение и только затем выполнить объединение вызовов. Так же возможно запросить разрешение второго абонента на соединение, посредством распознавания голоса или нажатия клавиш телефона.
Новая возможность сейчас доступна в тестовом режиме. Для реализации необходимо в нужное место сценария (например, после успешного набора номера и произнесения сообщения), вставить этот код:
[code lang=»js»]
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); // Соединяем первого и второго абонента
}
[/code]
После выполнения переключения, абоненты разговаривают между собой, а программа продолжает свою работу. Немного доработав код, можно выполнять дозвон не одному абоненту, а, скажем, по списку номеров и переключать на первого ответившего или первого изъявившего желание пообщаться.