вторник, 5 июня 2012 г.

Call-центр\IP PBX Oktell: Oktell и NAT


IP PBX Oktell


В течении долгого времени оставался открытым вопрос работы сервера Oktell'а за NAT.






Наши программисты работали над решением этой проблемы. Была значительно переписана сетевая подсистема Oktell'а.
И вот мы объявляем beta-тестирование. Необходима версия Oktell от 120426. Дополнительные HAL-сборки можно взять здесь.
Обновить Oktell нужно в ручном режиме:
a) остановить сервер Oktell
b) содержимое папок Server скопировать в папку C:\Program Files\Oktell\Server
c) содержимое папок Client скопировать в папку C:Program Files\Oktell\Server\LiveUpdate
d) запустить сервер Oktell.

В параметрах аппаратуры для необходимого локального интерфейса прописываем внешний IP-адрес и порт SIP сервера. Вместо X пропишите свои данные.


Также у SIP шлюза есть свойство "Подставлять внешний ip адрес в пакеты". Нужно выставить значение "Да" и перезапустите службу.



В настройках NAT пробрасываем этот порт, а так же голосовые UDP порты с 9000 по 19000 (возможно изменены в конфигурационном файле сервера). 

После всех настроек наслаждаемся работой Oktell за NAT'ом

воскресенье, 22 апреля 2012 г.

Call-центр\IP PBX Oktell: Урок для начинающих №3


IP PBX Oktell


Создаем групповой номер отдела продаж и ловим уведомление о пропущенном звонке


  1. Администрирование. Внутренние номера. Создаем номер и добавляем в правило звонка несколько элементов: пользователей, линий, других номеров. Ознакомьтесь с режимами вызова абонентов, входящих в состав группового номера
  2. Модернизируем наш сценарий, созданный в уроке № 2. Добавим в меню переход по варианту «4», который будет приводить нас к компоненту «Переключение» на созданный групповой номер
  3. Создадим компонент «Уведомление» и направим на него сценарий в случае, если ни один из участников группового номера не ответил на звонок. Компонент уведомление будет показываться у получателя в момент прохождения через него сценария
  4. Компонент «Уведомление» рекомендуется использовать для отладки сценариев, чтобы убедиться в прохождении сценария по контролируемой ветке и контроля значений переменных сценария
  5. Проверяем созданный сценарий

Call-центр\IP PBX Oktell: Урок для начинающих №2


IP PBX Oktell


Регистрируем IP-телефоны, усложняем сценарий входящеий маршрутизации

  1. Входящий звонок поступает в главный сценарий IVR. В компоненте «Воспроизведение с преднабором» указывается, какой файл необходимо воспроизводить в приветствии и cколько символов DTMF ожидает компонент для того чтобы передать управление по ветке «Переход». Введенный символ записывается в созданную для этого переменную «Донабор»
  2. Вызов поступает в компонент «Меню». Анализируется содержимое переменной «Донабор» и каждому возможному варианту присваивается свой маршрут звонка
  3. Вызов поступает в компонент "Переключение". Начинает звонить телефон. Номер телефона и продолжительность звонка определяются в инспекторе объектов. Если номер занят, то вызов будет удерживаться в очереди ожидания
  4. Если никто не ответил на вызов, он переключается на мобильный телефон дежурного. В компоненте «Переключение на номер с указанием линии» задается номер телефона и направления для совершения звонка

Call-центр\IP PBX Oktell: Урок для начинающих №1


IP PBX Oktell


От установки до первых звонков

  1. Установка серверной службы и клиентского приложения на сервере
  2. Активация программы
  3. Установка клиентского приложения на компьютере пользователя
  4. Создание пользователя с правами администратора
  5. Создание в карте сети сервера состояний
  6. Вход под учетной записью пользователя с правами администратора
  7. Создание в карте сети шлюза подключения к оператору связи и его настройка
  8. Создание сценария входящей маршрутизации
  9. Проверка приема входящего звонка
  10. Создание сценария исходящей маршрутизации
  11. Проверка совершения исходящего звонка

суббота, 24 марта 2012 г.

Call-центр\IP PBX Oktell: Вывод пользователя из группового номера


IP PBX Oktell


Задача:
В случае, когда пользователь участвует в групповом номере и приходит много звонков, нет возможности совершить исходящий звонок, так как сразу после завершения текущего разговора приходит следующий звонок. Для решения такой задачи нужно вывести пользователя из группового номера.
Решение:
1) Попросить администратора убрать пользователя из группового номер
Не самый лучший вариант.

2) Воспользоваться возможностью web интерфейсом Oktell'a.
Для этого перейдем в раздел Администрирование\ Внешние модули\Разделы меню
Нажимаем "Добавить" и в качестве "Адреса страницы веб-сервиса" укажем следующий адрес:
http://192.168.0.20:4055/execsvcscriptplain?name=phone_buttons&startparam1=[user_guid]&async=0&timeout=10
,где
phone_buttons - название служебного сценария.
[user_guid] - id оператора, открывшего создаваемый пункт меню


Создаем служебный сценарий "phone_buttons".
На старт данного сценария передается [user_guid]. Сохраняем его в переменную текстовую  Userid.


Далее в компоненте "Присвоение" служебной переменной "(сл) Возвращаемое значение 1(строка)" присваиваем выражение:


'<html>
<body topmargin="300">
<H1 align="center" height="500">
<a target="Ready" href="http://192.168.0.20:4055/execsvcscriptplain?name=Управление 
групповым номером 8888&startparam1='+[Userid]+'&startparam2=0&async=0&timeout=10">
Выйти из группового номера 8888</a>
</H1>
<p align="center" height="500">
======================================================================================
</p>
<H1 align="center" height="500">
<a target="Busy" href="http://192.168.0.20:4055/execsvcscriptplain?name=Управление 
групповым номером 8888&startparam1='+[Userid]+'&startparam2=1&async=0&timeout=10">
Войти в групповой номер 8888</a>
</H1>
 <iframe hidden name="Ready" frameborder="0" height="0"  >   
 </iframe>
<iframe hidden name="Busy" frameborder="0" height="0">  
 </iframe>
</body>
</html>'

,где по ссылкам будет запускаться служебный сценарий "Управление групповым номером 8888" и в качестве параметра будет передаваться "1" или "0", в зависимости выбранной ссылки.

В после перезапуска клиентского приложения, в разделе "Внешние модули", появиться созданный пункт меню "Управление номером"


Теперь рассмотрим сценарий "Управление групповым номером 8888", в котором происходит добавление или удаления пользователя из группового номера


Если переданный параметр был  "1", то прежде чем добавлять пользователя в групповой номер, проверяем нет ли уже его там. Если нет, то добавляем пользователя в групповой номер с помощью SQL запроса:

declare @id uniqueidentifier
select @id=ExtraId from A_NumberPlanAction npa
inner join A_NumberPlan np on np.Id=npa.NumID and np.Prefix='8888'
insert into A_RuleRecords(ID, InnerAddressType, StartTime, FinishTime, RuleId, ReactId, Account)
values(NewId(), @objtype, 0, 90, @id, @idobject, '')

Если переданный параметр был  "0", то удаляем пользователя из группового номера  с помощью SQL запроса:


declare @id uniqueidentifier
select @id=ExtraId from A_NumberPlanAction npa
inner join A_NumberPlan np on np.Id=npa.NumID and np.Prefix='8888'
delete from A_RuleRecords
where InnerAddressType=@objtype and ReactId=@idobject and RuleId=@id


 И что бы сбросить с него очередь, меняем его статус на "Отсутствует" с помощью запроса:

'http://192.168.0.20:4055/wp_setuserstate?user='+[Userid]+'&userstateid=3'
а потом на "На месте" с помощью запроса:

'http://192.168.0.20:4055/wp_setuserstate?user='+[Userid]+'&userstateid=1'

В конце сценария перезапускаем сервер состояния с помощью компонента "Статус объекта", для того чтобы все изменения вступили в силу.

Вот и все! Вопросы в комментарии.



понедельник, 20 февраля 2012 г.

Call-центр\IP PBX Oktell: Парсим "Желтые страницы"

IP PBX Oktell


Задача:
Нужна база клиентов. Заходим на сайт Желтые страницы. Номеров потенциальных клиентов полным полно. Но звонить им вручную или в полуавтоматическом режиме накладно по времени. Для этого используем Oktell и сценарий "Парсинг Желтых страниц" (сделан на версии Oktell от 26 августа 2013)


Запускаем его и через пару минут у вас готовая база абонентов. Предварительно нужно создать таблицу абонентов структурой как в компоненте "SQL запрос 1"


Не все номера подходят для звонка, но 90% вполне пригодны.

Удачи всем!

четверг, 16 февраля 2012 г.

Call-центр\IP PBX Oktell: Интерком

IP PBX Oktell

Отличная новость! В Oktell'e появилась функция "Интерком". Пока только в тестовой версии, которую можете взять сдесь.

Но прежде чем обновлять, ознакомьтесь с информацией:
1) Прежде чем обновлять
2) Резервная копия
3) Как обновлять



среда, 23 ноября 2011 г.

FREE Oktell GSM to SIP

Новость месяца!

Внимание. С 21 ноября 2011 года продукт Oktell SIP-GSM Gateway распространяется бесплатно.
Для взаимодействия программы с GSM-сетями необходима установка в USB-порт компьютера GSM-модема с поддержкой голосовых функций.



Подробнее об Oktell SIP-GSM Gateway тут

Скачать можно тут

вторник, 1 ноября 2011 г.

Call-центр\IP PBX Oktell: Закрепление абонентов за операторами при исходящей задаче.

IP PBX Oktell

Задача:
Нужна исходящая задача, в которой каждый абонент закреплен за конкретным оператором.

Создаем проект:



Создаем таблицу абонентов:




Добавляем столбцы и даем им ОБЯЗАТЕЛЬНЫЕ назначения:


Импортируем данные из таблицы 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'е и импортируем данные об операторах.





Создаем задачу и  задаем ей необходимые свойства. Рассмотрим вкладки "Ресурсы" и "Абоненты"


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



В качестве таблицы абонентов выбираем нашу таблицу.



Теперь запускаем SQL Server Management Studio Express. Выполняем запрос:

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 вашей задачи.

Нажимаем "Выполнить"

Теперь запускаем задачу:

И видим, что звонок абоненту 87777777777 распределяется на оператора "Медведев Виктор Сергеевич"


воскресенье, 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 модели модемов.

    - 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


Смотрим статистику и наслаждаемся.


Надеюсь кому-нибудь помог =)