И нформационно - коммуникационные технологии;pdf

ifClient 3CX Free
Оглавление
1
ifClient 3CX Free ......................................................................................................................... 3
2
Системные требования. ............................................................................................................. 3
3
Установка. ................................................................................................................................... 3
4
Использование. ........................................................................................................................... 3
4.1
Состав компонента.............................................................................................................. 3
4.2
Работа в терминальном режиме......................................................................................... 4
4.3
Система обмена сообщениями .......................................................................................... 4
5
Пример......................................................................................................................................... 6
6
Контактная информация. ........................................................................................................... 7
2
1 ifClient 3CX Free
Бесплатный компонент ifClient 3CX Free предназначен для интеграции IP-АТС 3CX Phone System с любым
программным обеспечением, поддерживающим создание COM объектов. Это могут быть: 1С:Предприятие;
продукты Microsoft; различные CRM системы; сценарии VBScript, JavaScript и т.п..
Компонент позволяет:
- осуществить исходящий вызов непосредственно из интегрируемого ПО;
- получить в интегрируемом ПО событие о входящем вызове с номером телефона и именем из телефонной
книги 3CX Phone System,
возможность ответа (поднятия трубки 3CXPhone) непосредственно из
интегрируемого ПО;
- вызвать из интегрируемого ПО всплывающее окно в трее и передать в него любую текстовую информацию;
- сбросить входящий или активный вызов;
- передавать в интегрируемое ПО информацию об изменении состояния текущего вызова;
- работать с 3СXPhone, находящимся в режиме CTI (управление аппаратным телефоном);
- работать с интегрируемым ПО, расположенным на сервере терминалов.
Текущая версия ifClient 3CX Free 1.1.0
2 Системные требования.
1. Операционная система: Windows XP SP2 (x86 или x64) или выше; Windows 7(x86 или x64). 1
2. IP-АТС 3CX Phone System следующих версий: Standart v.12 (SP5); PRO v.12 (SP6). 2
3. Софтфон 3CXPhone for 3CX Phone System, идущий в составе 3CX Phone System.
4. Свободный порт 8031/TCP (меняется в конфигурации).
3 Установка.
1. Убедитесь, что система, установленная на компьютере, соответствует системным требованиям.
2. Запустите файл установки ifClient_3CX_Free_setup.exe от имени администратора.
3. Примите лицензионное соглашение.
4. Установка выполняется в каталог установки 3CXPhone for 3CX Phone System.
5. Если 3CXPhone for 3CX Phone System отсутствует, установщик компонента выдаст сообщение о
невозможности установки.
6. Пример интеграции с 1С:Управление торговлей 10.3 (10.3.29.1). можно скачать с сайта http://if56.ru или с
форума сайта http://sip1c.ru . Добавленный в конфигурацию можно найти по строке «if56.ru».
7. Пример работы с браузерами копируется при инсталляции в каталог установки 3CXPhone for 3CX Phone
System (файлы test3cx.html и jquery-2.1.0.min.js).
4 Использование.
4.1 Состав компонента.
Компонент связи состоит из двух частей.
1.
«Клиентская» часть – библиотека ConnectorClient.dll – представляет собой универсальный COM
объект, реализующий TCP клиент. Эта библиотека может быть использована в любой среде
программирования, поддерживающей создание COM объектов. Работа библиотеки заключается в
подключении к TCP серверу и обменом сообщениями с ним.
1
2
По состоянию на 06.10.2014г. на операционных системах семейства Windows Vista и Windows 8 компонент не тестировалась.
По состоянию на 06.10.2014г.
3
2.
«Серверная» часть компонента представляет собой плагин для 3CXPhone (ifClient_3CX_Free.dll). В
плагине реализован TCP сервер, прослушивающий порт 8031, номер порта настраивается в файле
конфигурации …\3CXPhone for Windows \PhoneApp\Plugin3CX_FREE\3CXWin8Phone.exe.config .
«Сервер» отправляет текстовые сообщения подключенным «клиенту» при наступлении следующих событий:
- изменение состояния телефона;
- изменение состояния звонка.
«Сервер» обрабатывает следующие команды, полученные от «клиента»:
- набрать номер;
- ответить на звонок;
- сбросить вызов.
Подключение плагина производится при установке компонента.
ВНИМАНИЕ!!! ifClient 3CX Free работает только с софтфоном 3CXPhone, идущим в составе АТС и
находящимся как в режиме телефона, так и в режиме CTI (управление аппартным телефоном),. ifClient
3CX Free не работает с другими софтфонами, в том числе с предыдущими версиями софтфонов 3CX!
4.2 Работа в терминальном режиме.
Для работы с интегрируемым ПО, расположенным на терминальном сервере, помимо установки ifClient
3CX Free на клиентском ПК, необходимо зарегистрировать библиотеку ConnectorClient.dll на сервере
терминалов. И, например, при запуске 1С на сервере терминалов в ТФ.ServerAddress = "127.0.0.1" (см. пример в
п.6) вместо локального хоста необходимо указать IP адрес клиентского ПК, на котором установлен ifClient 3CX
Free;
4.3 Система обмена сообщениями
Для обмена сообщениями в данном компоненте принят формат Asterisk AMI, как наиболее
документированный. Некоторые параметры являются специфическими для системы 3CX, что не противоречит
общей концепции протокола. Подробное описание протокола на русском языке можно найти здесь:
http://asterisk.ru/knowledgebase/Asterisk+manager+API.
1.
Сообщения «сервера» «клиенту».
В версии 1.1.0 в начале каждого сообщения от «сервера» «клиенту» добавлены заголовки HTTP сообщения,
для возможности передачи сообщений о статусе софтфона и соединения в браузеры. Само событие об
изменении состояния телефона или звонка в сообщении дублируется для совместимости с версией 1.0.0
компонента.
1.1. Изменение состояния телефона.
Формат сообщения:
// Начало заголовка HTTP сообщения
HTTP/1.1 200 OK\r\n
Content-Length: <Количество байт>\r\n
Content-Type: text/plain;charset=UTF-8\r\n
Access-Control-Allow-Origin: *\r\n
Event:MyPhoneStatusChanged\r\n
Status:< Status >\r\n
\r\n
// Конец заголовка HTTP сообщения
Event:MyPhoneStatusChanged\r\n
Status:< Status >\r\n
\r\n
< Status > может принимать значения:
NoConnection - нет соединения;
LoggedIn - зарегистрирован;
4
LoggedOut - отмена регистрации.
1.2. Изменение состояния звонка.
Формат сообщения:
// Начало заголовка HTTP сообщения
HTTP/1.1 200 OK\r\n
Content-Length: <Количество байт>\r\n
Content-Type: text/plain;charset=UTF-8\r\n
Access-Control-Allow-Origin: *\r\n
Event:CallStatusChanged\r\n
CallId:<CallID>\r\n
Incoming:<True|False>\r\n
Originator:<Originator>\r\n
OriginatorName:<OriginatorName>\r\n
OtherPartyName:<OtherPartyName>\r\n
OtherPartyNumber:<OtherPartyNumber>\r\n
State:<State>\r\n
\r\n
// Конец заголовка HTTP сообщения
Event:CallStatusChanged\r\n
CallId:<CallID>\r\n
Incoming:<True|False>\r\n
Originator:<Originator>\r\n
OriginatorName:<OriginatorName>\r\n
OtherPartyName:<OtherPartyName>\r\n
OtherPartyNumber:<OtherPartyNumber>\r\n
State:<State>\r\n
\r\n
Значения параметров:
CallID - идентификатор звонка;
Incoming - входящий или исходящий звонок;
Originator - инициатор соединения (может быть абонент, очередь звонков, группа и т.п.);
OriginatorName - имя инициатора соединения, берется из внутренней телефонной книги сервера 3CX;
OtherPartyName - имя вызывающего (вызываемого) абонента;
OtherPartyNumber - номер вызывающего (вызываемого) абонента;
State - состояние звонка, может принимать следующие значения:
Undefined - неизвестно;
Ringing - входящий вызов, ожидание ответа;
Dialing - исходящий вызов, ожидание ответа;
Connected - соединение установлено;
WaitingForNewParty - ожидание ответа при переводе звонка;
TryingToTransfer - попытка перевода звонка;
Ended - звонок завершен.
Пример сообщения при поступлении входящего вызова (в настройках сервера 3CX указано, что входящие
звонки поступают на группу «Все»).
Event:CallStatusChanged
CallId:158:2
//Ид звонка.
Incoming:True
//это входящий звонок
Originator:59
//внутренний номер группы
OriginatorName:Все
//имя группы
OtherPartyName: //имя вызывающего абонента, если отсутствует в телефонной книге – пустое значение имени
OtherPartyNumber:89998982828 //номер вызывающего абонента
State:Ringing
// входящий вызов, ожидание ответа
5
2.
Сообщения «клиента» «серверу» - команды для телефона (3CXPhone).
2.1. Набор номера.
Формат команды:
Action:Originate
Exten:<Номер абонента>
2.2. Ответ на входящий звонок.
Формат команды:
Action:Answer
2.3. Сброс звонка.
Формат команды:
Action:Hangup
Channel:<CallID>
Параметр CallID может быть получен из сообщения сервера CallStatusChanged. Если в команде
установить CallId = 0 , то сбросятся все активные соединения.
5 Пример.
Работу с библиотекой продемонстрируем на примере 1C.
// Создание COM объекта
ТФ = Новый COMОбъект("ConnectorClient.ConnectorTCPClient");
// Зададим адрес и порт сервера для обмена данными
ТФ.ServerAddress = "127.0.0.1";
ТФ.ServerPort = 8031;
// Подключим обработчики событий COM объекта:
ДобавитьОбработчик ТФ.OnConnected, ПриПодключенииКТелефону;
ДобавитьОбработчик ТФ.OnDisconnected, ПриОтключенииОтТелефона;
ДобавитьОбработчик ТФ.OnReceive, ПриПолученииСообщения;
// Обратим внимание, что должны быть определены соответствующие процедуры
Процедура ПриПодключенииКТелефону()
Сообщить("Подключение к телефону 3CX выполнено.");
КонецПроцедуры;
Процедура ПриОтключенииОтТелефона()
Сообщить("Произошло отключение от телефона.");
КонецПроцедуры;
Процедура ПриПолученииСообщения(Стр)
Сообщить("Получено сообщение от телефона.");
Сообщить(Стр);
КонецПроцедуры;
// Подключимся к серверу
ТФ.Connect();
//Для передачи команд серверу служит метод COM объекта Send
ТФ.Send("Какая-то команда");
// В COM объекте реализована функция показа всплывающих сообщений в системном трее
ТФ.ShowNotify("Заголовок окна", "Текст в окне", 500);
// Последний параметр – таймаут показа
6
// По завершении работы программы необходимо отключиться от сервера
ТФ.Disconnect();
6 Контактная информация.
ООО «Интерфейс»
ул. Кутузова, д. 19
г. Орск Оренбургской области
462404
Российская Федерация
Тел.: +7 (3537) 25-08-35, 20-38-38
SIPNet: if56.ru (0041930299)
E-mail: [email protected]
Web: http://if56.ru ; http://sip1c.ru
Редакция от 06.10.2014г.
© ООО «Интерфейс»
7