Получить путь к записи разговора по завершению коммутации — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
 
(не показано 12 промежуточных версии 2 участников)
Строка 1: Строка 1:
Задача:
+
[[Практики|Наверх]]
Приходит внешний звонок. Коммутируется с внутренней линией. После разговора необходимо отправить файл записи разговора  на почтовый ящик.
+
Для этого нам понадобиться определить адрес этого файла.
+
  
Разберем  пример нахождения пути, к данному файлу. Потом уже его можно без проблем отправить, воспроизвести и т.д.
+
'''Задача:''' определить путь к записи разговора для совершения дальнейших действий (например, отправки на почту).
 +
 
 +
В статье описывается пример нахождения пути к данному файлу. Дальнейшие действия зависят полностью от вас - найденный файл можно без проблем отправить, воспроизвести, удалить, перенести и т.д.
 +
 
 +
 
 +
В "'''Главном сценарии'''"  создадим сессионную переменную "'''Флаг'''". Присвоим ей значение "'''1'''" только в том случае, когда нам это необходимо.
  
В "Главном сценарии"  создадим глобальную переменную "Флаг".
 
Присвоим ей значение "1" . Только в том случае, когда нам это необходимо.
 
  
 
[[Файл:Главный.png|center|]]
 
[[Файл:Главный.png|center|]]
 +
  
 
Сохраняем.
 
Сохраняем.
  
Создаем служебный сценарий "1_Сбор контента".
+
Создаем служебный сценарий "'''1_Сбор контента'''". Он будет назначен как "'''Служебный сценарий обработки контента'''". Подробнее про назначение сценария тут. В нем в качестве стартового параметра передается XML-файл, содержащий информацию о коммутации.
Он будет назначен как "Служебный сценарий обработки контента". Подробнее про назначение сценария тут
+
 
 
+
В нем в качестве стартового параметра передается XML-файл, содержащий информацию о коммутации.
+
  
 
[[Файл:Настройка3.png|center|]]
 
[[Файл:Настройка3.png|center|]]
  
Создаем  глобальную переменную "Флаг" ( в нее передается значение из Главного сценария).
 
Проверяем ее значение.
 
  
[[Файл:Настройка3.png|center|]]
+
Создаем  глобальную переменную "'''Флаг'''" ( в нее передается значение из Главного сценария). Проверяем ее значение.
 +
 
 +
 
 +
[[Файл:Сбор_контента.png|center|]]
 +
 
 +
 
 +
Анализируем XML-файл с помощью компонента "'''Парсер'''". Поисковый запрос:
 +
 
 +
commutation>property_simple[key=idconnection]  
  
Анализируем XML-файл с помощью компонента "Парсер".
 
Поисковый запрос: commutation>property_simple[key=idconnection]
 
 
Сначала получаем количество коммутаций, в рамках цепочки коммутации. Берем последний ID коммутации. т.к. первый  это ID коммутации с IVR сценарием.
 
Сначала получаем количество коммутаций, в рамках цепочки коммутации. Берем последний ID коммутации. т.к. первый  это ID коммутации с IVR сценарием.
  
[[Файл:Настройка3.png|center|]]
+
 
 +
[[Файл:Сбор_контента1.png|center|]]
 +
 
  
 
Теперь получаем ID последней коммутации.
 
Теперь получаем ID последней коммутации.
  
[[Файл:Настройка3.png|center|]]
+
[[Файл:Сбор_контента2.png|center|]]
 
   
 
   
 
    
 
    
Выполняем SQL запрос в базу, для получения пути к файлу.
+
Выполняем SQL запрос в базу, для получения пути к файлу. Т.к. имя файла не храниться в БД, то придется его "склеить"
Т.к. имя файла не храниться в БД, то придется его "склеить"
+
  
SQL запрос :
+
'''SQL запрос :'''
declare @aln nvarchar(10)
+
<pre>declare @aln nvarchar(10)
 
declare @bln nvarchar(10)
 
declare @bln nvarchar(10)
 
declare @idrecdir int
 
declare @idrecdir int
 
declare @ts nvarchar(50)
 
declare @ts nvarchar(50)
 
declare @path nvarchar(1000)
 
declare @path nvarchar(1000)
 
 
 
select top 1 @aln=case when alinenum<blinenum then alinenum else blinenum end,
 
select top 1 @aln=case when alinenum<blinenum then alinenum else blinenum end,
 
@bln=case when blinenum>alinenum then blinenum else alinenum end,
 
@bln=case when blinenum>alinenum then blinenum else alinenum end,
Строка 51: Строка 54:
 
@ts=replace(convert(nvarchar(10), TimeStart, 121),'-','_')+'__'+replace(convert(nvarchar(20), TimeStart, 114),':','_') from A_Stat_Connections_1x1
 
@ts=replace(convert(nvarchar(10), TimeStart, 121),'-','_')+'__'+replace(convert(nvarchar(20), TimeStart, 114),':','_') from A_Stat_Connections_1x1
 
where Id=@id and isrecorded=1
 
where Id=@id and isrecorded=1
 
 
 
set @path='C:\Program Files\oktell\Server\RecordedFiles\'
 
set @path='C:\Program Files\oktell\Server\RecordedFiles\'
 
if (@idrecdir>0)
 
if (@idrecdir>0)
 
select @path=path from A_Stat_RecordDirectories where id=@idrecdir
 
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+'.mp3'  </pre>
  
 +
Назначаем параметры.
  
set @filename=@path+replace(substring(@ts, 1, 10),'_','')+'\'+substring(@ts, 13, 2)+substring(@ts, 16, 2)+'\mix_'+@aln+'_'+@bln+'__'+@ts+'.wav' 
 
  
Назначаем параметры.  
+
[[Файл:Сбор_контента4.png|center|]]
  
[[Файл:Настройка3.png|center|]]
 
  
 
Сохраняем
 
Сохраняем
  
SQL запрос вернет нам путь к файлу. Теперь его можно указать в качестве пути для отправку на почту, для воспроизведения и т.д. В примере для наглядности я просто вывел его в качестве уведомления.
+
SQL-запрос вернет нам путь к файлу. Теперь его можно указать в качестве пути для отправку на почту, для воспроизведения и т.д. В примере для наглядности я просто вывел его в качестве уведомления.
 +
 
 +
Переходим в раздел "'''Общие настройки'''".
 +
 
 +
1) Тут назначаем "'''Служебный сценарий обработки контента'''"
  
Переходим в раздел "Общие настройки".
 
1) Тут назначаем "Служебный сценарий обработки контента"
 
 
2) Выставляем настройки записи разговоров.  
 
2) Выставляем настройки записи разговоров.  
  
[[Файл:Настройка3.png|center|]]
 
  
[[Файл:Настройка3.png|center|]]
+
[[Файл:Настройка1.png|center|]]
 +
 
 +
 
 +
[[Файл:Настройка.png|center|]]
 +
 
  
 
Сохраняем
 
Сохраняем
 
Осуществляем входящий звонок. Разговариваем. Кладем трубочку и видим уведомление:
 
Осуществляем входящий звонок. Разговариваем. Кладем трубочку и видим уведомление:
 +
 +
D:\RecFile\201108241712\mix_13001_16003__2011_08_24__17_12_30_327.mp3
  
 
[[Файл:Уведомление.png|center|]]
 
[[Файл:Уведомление.png|center|]]
D:\RecFile\201108241712\mix_13001_16003__2011_08_24__17_12_30_327.wav
 

Текущая версия на 07:08, 20 февраля 2014

Наверх

Задача: определить путь к записи разговора для совершения дальнейших действий (например, отправки на почту).

В статье описывается пример нахождения пути к данному файлу. Дальнейшие действия зависят полностью от вас - найденный файл можно без проблем отправить, воспроизвести, удалить, перенести и т.д.


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


Главный.png


Сохраняем.

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


Настройка3.png


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


Сбор контента.png


Анализируем XML-файл с помощью компонента "Парсер". Поисковый запрос:

commutation>property_simple[key=idconnection] 

Сначала получаем количество коммутаций, в рамках цепочки коммутации. Берем последний ID коммутации. т.к. первый это ID коммутации с IVR сценарием.


Сбор контента1.png


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

Сбор контента2.png


Выполняем 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+'.mp3'  

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


Сбор контента4.png


Сохраняем

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

Переходим в раздел "Общие настройки".

1) Тут назначаем "Служебный сценарий обработки контента"

2) Выставляем настройки записи разговоров.


Настройка1.png


Настройка.png


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

D:\RecFile\201108241712\mix_13001_16003__2011_08_24__17_12_30_327.mp3
Уведомление.png