среда, 24 августа 2011 г.

Call-центр\IP PBX Oktell: Получить путь к записи разговора, по завершению коммутации

IP PBX Oktell


Задача:
Приходит внешний звонок. Коммутируется с внутренней линией. После разговора необходимо отправить файл записи разговора  на почтовый ящик.
Для этого нам понадобиться определить адрес этого файла.

Разберем  пример нахождения пути, к данному файлу. Потом уже его можно без проблем отправить, воспроизвести и т.д.

В "Главном сценарии"  создадим глобальную переменную "Флаг".
Присвоим ей значение "1" . Только в том случае, когда нам это необходимо.


Сохраняем.

Создаем служебный сценарий "1_Сбор контента".
Он будет назначен как "Служебный сценарий обработки контента". Подробнее про назначение сценария тут
 
В нем в качестве стартового параметра передается XML-файл, содержащий информацию о коммутации.


Создаем   глобальную переменную "Флаг" ( в нее передается значение из Главного сценария).
Проверяем ее значение.



Анализируем XML-файл с помощью компонента "Парсер".
 Поисковый запрос: commutation>property_simple[key=idconnection]
Сначала получаем количество коммутаций, в рамках цепочки коммутации. Берем последний ID коммутации. т.к. первый  это ID коммутации с IVR сценарием.





Теперь получаем ID последней коммутации.


  
Выполняем SQL запрос в базу, для получения пути к файлу.
Т.к. имя файла не храниться в БД, то придется его "склеить"

SQL запрос :
declare @aln nvarchar(10)
declare @bln nvarchar(10)
declare @idrecdir int
declare @ts nvarchar(50)
declare @path nvarchar(1000)

select top 1 @aln=case when alinenum<blinenum then alinenum else blinenum end,
@bln=case when blinenum>alinenum then blinenum else alinenum end,
@idrecdir=idrecdir, 
@ts=replace(convert(nvarchar(10), TimeStart, 121),'-','_')+'__'+replace(convert(nvarchar(20), TimeStart, 114),':','_') from A_Stat_Connections_1x1
where Id=@id and isrecorded=1

set @path='C:\Program Files\oktell\Server\RecordedFiles\'
if (@idrecdir>0)
select @path=path from A_Stat_RecordDirectories where id=@idrecdir

set @filename=@path+replace(substring(@ts, 1, 10),'_','')+'\'+substring(@ts, 13, 2)+substring(@ts, 16, 2)+'\mix_'+@aln+'_'+@bln+'__'+@ts+'.wav'  

Назначаем параметры. 


Сохраняем


SQL запрос вернет нам путь к файлу. Теперь его можно указать в качестве пути для отправку на почту, для воспроизведения и т.д. В примере для наглядности я просто вывел его в качестве уведомления.



Переходим в раздел "Общие настройки".
1) Тут назначаем "Служебный сценарий обработки контента"
2)  Выставляем настройки записи разговоров.





Сохраняем

Осуществляем входящий звонок. Разговариваем. Кладем трубочку и видим уведомление:



D:\RecFile\201108241712\mix_13001_16003__2011_08_24__17_12_30_327.wav




1 комментарий:

Виктор комментирует...

Поправил SQL запрос. А то с предыдущим, сценарий не работал.