Определение “липкости” вызова
Что такое липкость вызова в АТС? Это перевод звонка клиента, который он делает на общий номер компании, тому сотруднику, который позвонил клиенту до этого.
Пример. Сотрудник позвонил клиенту и не дозвонился. Клиент увидел пропущенный вызов и решил “отзвониться”. “Липкость” соединит звонок клиента именно с тем сотрудником, который звонил этому клиенту. Или сотрудник дозвонился до клиента, они поговорили, но потом клиент решил что-то уточнить. Он точно так же перезванивает на общий номер и попадает именно к тому сотруднику, с которым он начал беседу.
Давайте реализуем “липкость” в 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 секунд). В связи с этим, при очень высокой частоте вызовов иногда возможны некорректные переводы входящих звонков от клиентов.



