CDR

Продолжаем нашу передачу «По письмам интернет читателей». Сегодня ответим на письмо читателя из Херсона: создадим автоинформатор на обычной Oktell IP PBX (конечно, можно все намного проще сделать с помощью модуля Колл Центр, но мы будим делать это без последнего).

1. К нашей Excel-ке добавим еще одну колонку result (не знаете о каком файле идет речь? Вам сюда).

2. Создаем служебный сценарий, задача которого последовательно пройти файл выбирая каждую запись и дозваниваясь. Если не дозвонились — в колонку result вносим значение «Неудача» и берем следующее значение. Для идентификатора будем использовать колонку id:

3. Если мы дозвонились, тогда передаем управление на голосовой (IVR) сценарий, задача которого воспроизвести предварительно записанный файл с информацией и суммой долга и ответить в Excel, что абонент дослушал до конца:

Вот и все! Теперь этот служебный сценарий можно просто запустить или же запланировать запуск по расписанию.

Здравствуйте, уважаемые читатели! Продолжаю отвечать на Ваши письма. И вот еще одно письмо из Алтайского Края: «.. при входящем звонке от клиента нужно взять из файла Excel файла сумму его долга …» Что же, попробуем ответить и на этот вопрос.

1. Имеем файл в формате Microsoft Excel с определенными колонками:

В ответ на письмо уважаемого читателя, хочу рассказать как можно в обычной Oktell IP PBX запустить автодозвон (callback) на пропущенный звонок. Процесс перезвона клиента будет состоять из трех стадий:

  1. Понимаем, что звонок пропустили. Получаем номер абонента.
  2. Запускаем служебный сценарий с входящим параметром для дозвона абоненту
  3. Запускаем голосовой сценарий для соединения клиента с группой сотрудников

Теперь о каждом детально:

1. У нас уже есть сценарий обработки контента (у кого нет — читаем SVC: Фиксируем пропущенные звонки в Oktell IP PBX). Вносим в него правку: проверка на время (а если звонок был ночью — зачем перезванивать?) и запуск служебного сценария:

2. Непосредственно служебный сценарий:

3. Голосовой (IVR) сценарий с переключением на группу сотрудников:

Oktell logoЗачастую, приобретая Oktell IP PBX, наши клиенты сразу же берут и Oktell SIP-GSM gw. И вот когда количество модемов превышает количество других линий, а количество сотрудников — всех внешних линий 🙂 Начинаются ситуации: сотрудник набирает номер, абонент занят, абонент сам перезванивает и попадает на секретаря, секретарь не в курсе кто звонил…

У себя мы решили этот вопрос так: входящий звонок на Oktell SIP-GSM, смотрим в базу кто последний звонил на этот номер на этой недели и пытаемся сразу на него переключить звонок. Вот так оно выглядит в «Главном сценарии»:

Главный сценарий
Главный сценарий

В компоненте SQL вот такой запрос:

SELECT TOP 1 @AOutNumber = [AOutNumber]
  FROM [oktell].[dbo].[A_Stat_Connections_1x1]
  WHERE NOT ([BLineNum] = 'IVR')
  AND DATEPART ( WEEK , [TimeAnswer] ) = DATEPART ( WEEK , GETDATE() )
  AND @CallerID = '+38'+[BOutNumber]
  ORDER BY [TimeAnswer] DESC

Oktell logoОпишу, как можно на базе обычной IP PBX Oktell фиксировать пропущенные звонки. Создаю служебный сценарий, который будем использовать для постобработки (его нужно указать в «Общие настройки» -> «Служебный сценарий обработки контента»), который проверяет если это входящий звонок и коммутация не произошла, выводим гиперсылку для быстрого звонка и вносим комментарий в коммутацию:

Служебный сценарий обработки контента
Служебный сценарий обработки контента

Пропущенный звонок выводит нам на экран:

И можем легко теперь фильтровать по «Статистике АТС»:

Статистика АТС
Статистика АТС

Oktell logoКак я описывал раньше, есть у меня SIP-GSM шлюз на базе Asterisk, который подключен к офисному серверу с Oktell. На модемы приходят разные SMS и пока они ложатся в файл на Linux сервере. В них бывает информация о балансе на карточках :). Идея — перенести все эти SMS в Oktell.

Для начала решил все SMS записывать в базу MySQL на сервере, а потом служебным сценарием забирать в Oktell. Создаю в MySQL пользователя, базу, и таблицу:

CREATE TABLE  `asterisk`.`gsm` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`date` DATETIME NOT NULL ,
`modem` VARCHAR( 10 ) NOT NULL ,
`callerid` VARCHAR( 16 ) NOT NULL ,
`msg` VARCHAR( 160 ) NOT NULL ,
`oktell` ENUM(  '0',  '1' ) NOT NULL DEFAULT  '0'
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci COMMENT =  'Входящие SMS'

Asterisk LogoМы уже имеем настроенный сервер Asterisk через который Oktell осуществляет звонки на мобильные. Вся статистика храниться в /var/log/asterisk/cdr-csv/Master.csv Не очень удобно в плане работы… Вот и хочу перенести все в MySQL, а потом смогу эту информацию использовать в сценариях Oktell. Как и в предыдущей статье все будим собирать с исходников на Ubuntu Linux.
Приступим!