среда, 23 ноября 2011 г.
вторник, 1 ноября 2011 г.
Call-центр\IP PBX Oktell: Закрепление абонентов за операторами при исходящей задаче.
IP PBX Oktell
Задача:
Нужна исходящая задача, в которой каждый абонент закреплен за конкретным оператором.
Создаем проект:
Создаем таблицу абонентов:
Добавляем столбцы и даем им ОБЯЗАТЕЛЬНЫЕ назначения:
В результате:
Теперь у нас есть таблица абонентов, в которой за номером закреплены определенные ID. Теперь эти ID нужно сопоставить со списком операторов.
Получаем список наших операторов:
Select id,name
from A_Users u
Inner join A_UserParams up on u.Id = up.Iduser
Where IsOperator = 1
Вставляем все в Excel. Даем название столбцам и каждому оператору даем определенный ID (Operator ID):
Создаем задачу и задаем ей необходимые свойства. Рассмотрим вкладки "Ресурсы" и "Абоненты"
Выбираем всех операторов, независимо от того, будут ли они участвовать задаче.
Выбираем вариант обхода операторов "Пользовательская процедура" ( о не чуть ниже)
Теперь запускаем SQL Server Management Studio Express. Выполняем запрос:
SELECT [Id]
,[Name]
В получившейся таблице находим нашу задачу и копируем ее ID.
Далее ищем хранимую процедуру A_TaskManager_OperatorsAll_Get_Custom в баз oktell и модифицируем ее.
-- Задача "С закреплением абонента за оператором"
if (@idtask = 'F6A349EA-F430-4FA7-9664-D17DF9870347')
begin
select GUID as Id
from Operators
inner join tab_clients on [ID оператора]=[Operator ID]
where tab_clients.id =@idabonent
return
end
--Дефолтные величины
Select Id
FROM A_Users u
Inner join A_UserParams up on u.Id = up.Iduser
Where IsOperator = 1
end
Задача:
Нужна исходящая задача, в которой каждый абонент закреплен за конкретным оператором.
Создаем проект:
Создаем таблицу абонентов:
Добавляем столбцы и даем им ОБЯЗАТЕЛЬНЫЕ назначения:
Импортируем данные из таблицы Excel:
Структура Excel имеет следующий вид:
Теперь у нас есть таблица абонентов, в которой за номером закреплены определенные ID. Теперь эти ID нужно сопоставить со списком операторов.
Получаем список наших операторов:
Select id,name
from A_Users u
Inner join A_UserParams up on u.Id = up.Iduser
Where IsOperator = 1
Вставляем все в Excel. Даем название столбцам и каждому оператору даем определенный ID (Operator ID):
Создаем таблицу в Oktell'е и импортируем данные об операторах.
Выбираем всех операторов, независимо от того, будут ли они участвовать задаче.
Выбираем вариант обхода операторов "Пользовательская процедура" ( о не чуть ниже)
В качестве таблицы абонентов выбираем нашу таблицу.
SELECT [Id]
,[Name]
FROM [oktell_settings].[dbo].[A_TaskManager_Tasks]
В получившейся таблице находим нашу задачу и копируем ее ID.
Далее ищем хранимую процедуру A_TaskManager_OperatorsAll_Get_Custom в баз oktell и модифицируем ее.
Текст запроса:
-- Задача "С закреплением абонента за оператором"
if (@idtask = 'F6A349EA-F430-4FA7-9664-D17DF9870347')
begin
select GUID as Id
from Operators
inner join tab_clients on [ID оператора]=[Operator ID]
where tab_clients.id =@idabonent
return
end
--Дефолтные величины
Select Id
FROM A_Users u
Inner join A_UserParams up on u.Id = up.Iduser
Where IsOperator = 1
end
Где вместо "F6A349EA-F430-4FA7-9664-D17DF9870347" пишем ID вашей задачи.
воскресенье, 9 октября 2011 г.
Call-центр\IP PBX Oktell: Настройка в связке с SIPGsm
IP PBX Oktell
Oktell SIP-GSM Gateway
Нужны линии GSM? Но нет под рукой аппаратного шлюза? Тогда на помощь придет Oktell SIP-GSM Gateway.
Рассмотрим его настройку.
1) Вставляем модем в USB-разъем.
Если модемов несколько, то рекомендуется использовать USB-хаб, который подключается напрямую в материнскую плату, а не в PCI-USB-плату.
После установки драйвера устройства, заходим в диспетчер устройств.
Устройство должно определиться так:
Если все так, то замечательно. Иначе нужно разблокировать поддержку голоса.
2) Устанавливаем Oktell SIP-GSM Gateway используя инструкцию
3) Проверили 5 модели модемов.
Oktell SIP-GSM Gateway
Нужны линии GSM? Но нет под рукой аппаратного шлюза? Тогда на помощь придет Oktell SIP-GSM Gateway.
Рассмотрим его настройку.
1) Вставляем модем в USB-разъем.
Если модемов несколько, то рекомендуется использовать USB-хаб, который подключается напрямую в материнскую плату, а не в PCI-USB-плату.
После установки драйвера устройства, заходим в диспетчер устройств.
Устройство должно определиться так:
Если все так, то замечательно. Иначе нужно разблокировать поддержку голоса.
2) Устанавливаем Oktell SIP-GSM Gateway используя инструкцию
3) Проверили 5 модели модемов.
- ZTE MF 18
- huawei e1550
- huawei e1550
- huawei e171
- huawei e173
3) Запускаем SIP-GSM Gateway
4) Настраиваем учетные данные
192.168.0.100 - ip адрес сервера Oktell
SIPGsm1 - логин и пароль ( можете придумать свой )
"Локальный порт" для каждой учетной записи прописываем свой. Например 5071, 5072, 5073
Обязательно заполняем "SIP-номер по умолчанию". В нашем случае должен совпадать с логином.
Жмем "Сохранить", а потом "Применить"
5) Переходим в Oktell, в карту сети. Создаем внешний шлюз.
Открываем свойства шлюза и заводим учетные записи.
Сохраняем и перезагружаем.
В мониторинге видим, что линия зарегистрировалась.
Теперь можете назначить направление и с успехом звонить!
четверг, 29 сентября 2011 г.
Call-центр\IP PBX Oktell: Опрос клиентов без использования Call-центра
IP PBX Oktell
Есть задача опросить клиентов, а модуля Call-центра у вас нет? Тогда на помощь придет Google Docs
Создаем в нем Форму:
Добавляем необходимые элементы:
Копируем адрес внизу страницы. Он нам понадобится.
Переходим в Oktell. В раздел Администрирование\Внешние модули\Разделы меню
Нажимаем "Добавить".
Вставляем ранее скопированную ссылку. Даем название пункту меню. И сохраняем.
Перезагружаем клиентское приложение. После перезапуска появится новый пункт меню "Карточка опроса"
Теперь можно при входящих\исходящих звонках проводить опрос.
Нажимаем "Готово"
Для возврата нажимаем "Вернуться к форме".
Статистику по опросу можно просмотреть в Google Docs
Надеюсь кому-нибудь помог =)
Есть задача опросить клиентов, а модуля Call-центра у вас нет? Тогда на помощь придет Google Docs
Создаем в нем Форму:
Добавляем необходимые элементы:
Копируем адрес внизу страницы. Он нам понадобится.
Переходим в Oktell. В раздел Администрирование\Внешние модули\Разделы меню
Нажимаем "Добавить".
Вставляем ранее скопированную ссылку. Даем название пункту меню. И сохраняем.
Перезагружаем клиентское приложение. После перезапуска появится новый пункт меню "Карточка опроса"
Теперь можно при входящих\исходящих звонках проводить опрос.
Нажимаем "Готово"
Для возврата нажимаем "Вернуться к форме".
Статистику по опросу можно просмотреть в Google Docs
Смотрим статистику и наслаждаемся.
среда, 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" . Только в том случае, когда нам это необходимо.
Сохраняем.
Создаем служебный сценарий "1_Сбор контента".
Он будет назначен как "Служебный сценарий обработки контента". Подробнее про назначение сценария тут
В нем в качестве стартового параметра передается XML-файл, содержащий информацию о коммутации.
Проверяем ее значение.
Анализируем XML-файл с помощью компонента "Парсер".
Поисковый запрос: commutation>property_simple[key=idconnection]
Сначала получаем количество коммутаций, в рамках цепочки коммутации. Берем последний ID коммутации. т.к. первый это ID коммутации с IVR сценарием.
Теперь получаем ID последней коммутации.
Т.к. имя файла не храниться в БД, то придется его "склеить"
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
четверг, 18 августа 2011 г.
Call-центр\IP PBX Oktell: Отобразить карточку диалога после ручного набора
IP PBX Oktell
Задача:
Оператор набирает номер в ручном режиме. Необходимо после разговора заполнить данные формы.
И так приступаем к реализации...
Нужно определять после какого конкретного звонка отображать карточку. Я решил ввести префикс, например *
Соответственно в сценарии маршрутизации внутренних звонков будем этот префикс анализировать.
Создаем таблицу абонентов в разделе Call-центр.
Назначаем ID как "Идентификатор", phone как "Телефон"
Выбираем всех операторов, независимо от того, будут ли они участвовать задаче.
Выбираем вариант обхода операторов "Пользовательская процедура" ( о не чуть ниже)
Теперь запускаем SQL Server Management Studio Express. Выполняем запрос:
SELECT [Id]
,[Name]
В получившейся таблице находим нашу задачу и копируем ее ID.
Задача:
Оператор набирает номер в ручном режиме. Необходимо после разговора заполнить данные формы.
И так приступаем к реализации...
Нужно определять после какого конкретного звонка отображать карточку. Я решил ввести префикс, например *
Соответственно в сценарии маршрутизации внутренних звонков будем этот префикс анализировать.
Если есть префикс *, то удаляем его. И переключаем на внешнюю линию. Если переключение произошло, то определяем ID оператора (человека который набирает номер) и делаем запись в таблицу (структура таблицы чуть ниже). Далее дезактивируем и активируем задачу ( для чего и что за задачу-чуть ниже).
Создаем таблицу абонентов в разделе Call-центр.
Сохраняем.
Создаем еще одну таблицу, которая будет заполняться выборкой из таблицы User_tab_clients.
Т.е. выбираем все записи у кого поле status не равен 1
"Прикрепленная таблица БД" нужна для того, что бы в сценарии диалога использовать переменные типа "Поле таблицы"
Назначаем ID как "Идентификатор", phone как "Телефон"
Сохраняем.
Создаем сценарий диалога. В нем получаем имя оператора. Делаем запись в нашу таблицу. И присваиваем служебной переменной "Результат звонка" значение 2. Подробнее тут
Форма диалога выглядит так:
Используемые переменные:
Сохраняем сценарий.
Создаем задачу.
Тип: С запросом у оператора
Выбираем всех операторов, независимо от того, будут ли они участвовать задаче.
Выбираем вариант обхода операторов "Пользовательская процедура" ( о не чуть ниже)
В качестве таблицы абонентов выбираем вторую нашу таблицу. И ставим галочку "Синхронизировать со списком при каждой активации". Как раз для этого делали дезактивацию и активацию в сценарии маршрутизации внутренних звонков.
Выбираем наш сценарий, как сценарий запроса на дозвон.
Сохраняем и активируем задачу.
Теперь запускаем SQL Server Management Studio Express. Выполняем запрос:
SELECT [Id]
,[Name]
FROM [oktell_settings].[dbo].[A_TaskManager_Tasks]
В получившейся таблице находим нашу задачу и копируем ее ID.
Далее ищем хранимую процедуру A_TaskManager_OperatorsAll_Get_Custom в баз oktell и модифицируем ее.
Текст запроса:
--Задача "Карточка после ручного звонка"
if (@idtask = '42479030-427C-4F7F-9262-87512F5567AD')
begin
select Operator_id as Id from User_tab_clients
where Id = @idabonent
return
end
--Дефолтные величины
Select Id
FROM A_Users u
Inner join A_UserParams up on u.Id = up.Iduser
Where IsOperator = 1
end
Где вместо "42479030-427C-4F7F-9262-87512F5567AD" пишем ID вашей задачи.
Нажимаем "Выполнить"
Теперь набираем номер, в нашем случае *89274365636 ( номер вымышлен)
Поговорили. Теперь нажимаем "Завершить" и у нас всплывает наша карточка.
Выбираем целевой или не целевой и нажимаем "Далее"
Вот и всё. Жду вопросов.
Подписаться на:
Сообщения (Atom)



























































