Определение “липкости” вызова

Что такое липкость вызова в АТС? Это перевод звонка клиента, который он делает на общий номер компании, тому сотруднику, который позвонил клиенту до этого.

Пример. Сотрудник позвонил клиенту и не дозвонился. Клиент увидел пропущенный вызов и решил “отзвониться”. “Липкость” соединит звонок клиента именно с тем сотрудником, который звонил этому клиенту. Или сотрудник дозвонился до клиента, они поговорили, но потом клиент решил что-то уточнить. Он точно так же перезванивает на общий номер и попадает именно к тому сотруднику, с которым он начал беседу.

Давайте реализуем “липкость” в 3CX Phone System. Строго говоря, для этого нам потребуется приложение 3CX Voice Application Designer. Но мы подготовили готовый скрипт, который вы можете самостоятельно установить в свою инсталляцию 3CX! Сразу оговоримся, что этот скрипт придется модифицировать нами под вашу конкретную инсталляцию 3CX.

Принцип работы скрипта “липкости”

Далее мы опишем принцип действия и необходимые параметры скрипта “липкости”.

1. Клиент звонит на общий номер компании.

2. Вызов направляется на Автосекретарь, за которым закреплен скрипт VAD. В скрипт передается Caller ID клиента.

3. Скрипт обращается к базе данных (истории вызовов) 3CX.

  • если Caller ID (последние 6 цифр) находится в истории вызовов 3CX, оттуда извлекается запись о последнем исходящем вызове, связанная с этим Caller ID. Из этой записи извлекается внутренний номер звонившего сотрудника. Далее скрипт переводит вызов на извлеченный номер.
  • если Caller ID (последние 6 цифр) не находится в истории вызовов 3CX, скрипт переводит вызов на внутренний номер по умолчанию для всех входящих вызовов, например на Отдел продаж или секретаря.

Создание источника данных на сервере 3CX Phone System

Для доступа к базе данных 3CX нужно на сервере, на котором стоит 3CX, создать источник данных ODBC

Укажите:

  • база данных –  phonesystem
  • сервер – localhost
  • имя пользователя – logsreader
  • порт – 5480
  • пароль – см. в файле c:Program Files3CX PhoneSystemBin3CXPhoneSystem.ini

Секция в файле 3CXPhoneSystem.ini, в которой можно найти данные доступа к базе данных (истории вызовов) 3CX Phone System.

После создания, источник данных ODBC будет выглядеть так:

Описание скрипта “липкости”

Данные доступа к базе 3CX еще раз задаются в переменных проекта 3CX VAD.

Компонент доступа к данным (штатный компонент VAD), названный Query3cxDatabase, обращается к базе 3CX (истории вызовов) для нахождения последней записи с входящим Caller ID. При этом запрос передает последние 6 цифр входящего Caller ID. Это связано с тем, что сотрудник может набрать номер клиента в коротком (локальном) формате, а при входящем вызове от клиента Caller ID передается в национальном формате. Например, сотрудник может набрать 3928676, а Caller ID входящего вызова будет 0443928676.

SQL запрос имеет вид, указанный ниже. Для правильного составления запроса использовалось описание таблиц базы данных 3CX.

SELECT
from_no
FROM
callhistory3
WHERE
dialednumber LIKE '%{0}' AND
is_fromoutside = 'FALSE'
ORDER BY
idcallhistory3 DESC
LIMIT 1

Далее результат запроса передается элементу логического сравнения VAD.

Если количество строк результата запроса равно единице (строка найдена), управление передается компоненту перевода на сотрудника, который назван EmployeeFound.

Если количество строк результата запроса равно нулю (строка не найдена), управление передается компоненту перевода на сотрудника, который назван EmployeeNotFound.

После того, как управление перейдет на компонент перевода вызова TransferToEmployee, скрипт извлечет содержимое первой ячейки из полученной в результате запроса строки. Это и будет внутренний номер сотрудника, на который нужно перевести вызов.

Если же ничего в истории вызовов найдено не будет, вызов будет переведен на внутренний номер по умолчанию.

Дополнительная настройка 3CX

После установки скрипта в систему 3CX, направьте на Автосекретарь, соответствующий этому скрипту, все общие линии, на которые могут звонить клиенты.

Примечания

Для корректной работы скрипта вы должны сообщить нам следующие данные:

  • номер Автосекретаря, за которым будет закреплен скрипт “липкости” – по умолчанию 851.
  • пароль к базе данных 3CX
  • номер для входящих вызовов по умолчанию (когда система не может найти Caller ID клиента) – по умолчанию 850.

Данные о вызовах попадают в базу данных 3CX с небольшой задержкой (по нашим наблюдениям – около 10 секунд). В связи с этим, при очень высокой частоте вызовов иногда возможны некорректные переводы входящих звонков от клиентов.