Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Бизнес требования:

Необходимо выгружать из CRM Битрикс24 списки клиентов, у каждого из которых есть несколько телефонных номеров (эта логика уже реализована на стороне CRM) и передавать список телефонных номеров клиентов в Астериск для автодозвона по N каналам и при поднятии трубки клиентом, соединять с софтфоном одного из M свободных операторов. N=k*M, k должно быть настраиваемым. 

Астериск должен обзвонить все номера каждого клиента и если клиент по одному из номеров поднял трубки и поговорил 10 секунд с оператором, то Астериск должен прекратить звонить на остальные номера данного клиента. Поэтому не годится подход когда мы просто отправляем все номера одного клиента параллельно на несколько исходящих линий, которые будут раскиданы на несколько свободных операторов при поднятии трубки клиентом по каждому номеру (мы должны избежать случая когда мы дозваниваемся несколько раз одному и тому же клиенту даже на разные его номера).

Если Клиент не поговорил с оператором 10 секунд ни по одному из своих номеров, то нужно ему в этот же день совершить обзвон ещё два раза с интервалом 4 часа. 

Возможный подход (детали которого нужно ещё прорабатывать):

В Астериске можно например задать отдельные списки обзвонов для каждого клиента (у которого несколько номеров) и обзванивать эти несколько номеров каждого клиента последовательно, а при поднятии клиентом трубки, соединять звонок с софтфоном свободного оператора. Если звонок длился 10 и более секунд, то по завершению этого звонка надо остановить данный обзвон по остальным номерам клиента.

При этом нужно чтобы Астериск одновременно совершал N исходящих звонков, N различным (не на разные номера одного и того же) клиентам.  

Проблемы, с которыми мы уже столкнулись:

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

Также при задании трёх звонков в день с интервалом в четыре часа мы получали, что в результате Астериск по каким-то телефонам звонит большее количество раз с меньшим интервалом, а по каким-то не звонит совсем. 

Пожелания как планируем реализацию:

В БД mysql импортируется(импорт делать не нужно, вводные данные -уже заполненная таблица) список клиентов(client_id, phone, priority, status=new, продолжительность разговора)

Астериск при неудачном дозвоне должен изменить статус в соответствующей строке.(вызвать внешнюю программу на php)

При удачном дозвоне, соединить агента с клиентом и в этот момент вызвать внешнюю программу -System. Внешняя программа -это скрипт php.

В этом скрипте будет бизнес логика по обработке успешного звонка, потому из Астериска ждём вызов с параметрами для идентификации строки в БД

Фактически, нам необходимо из диалплана вызывать внешний скрипт и передавать параметры, чтобы мы могли реализовать бизнес логику на своё усмотрение.

6 лет назад
NYankovskiy
Никита 
46 летРоссия
6 лет в сервисе
Был
6 лет назад