На сервере
На сервере 3CX нужно установить setup.exe с типом установки "Сервер". По окончании установки появится окошко с возможностью изменить серверный порт и запустить сервис (по-умолчанию сервис не запущен, автоматически запускается при перезагрузке, можно не перезагружать, а запустить вручную). В этом же окне есть поля для ввода кода активации, после ввода кода необходимо также перезапустить сервис.
На клиенте
Нужно установить setup.exe с типом установки "Клиент". Затем настроить параметры подключения в файле NETConnector.dll.config который находится в папке установки. Можно копировать один и тот же config файл на несколько клиентов.
В NETConnector.dll.config есть параметр:
<client> <wellknown type="CallServer.CallServerObject, SharedLib" url="tcp://192.168.0.164:1000/callServer" /> </client> "url="tcp://192.168.0.164:1000/callServer" - это адрес и порт сервера.
параметр: <applicationSettings> <AddIn.Properties.Settings> <setting name="IncomingPort" serializeAs="String"> <value>1100</value> </setting> </AddIn.Properties.Settings> </applicationSettings>
"<value>1100</value>" - это порт для входящих соединений с сервера для посылки событий.
Использование компоненты
На сервере должен быть запущен сервис "Call Center NETConnector" (NETConnectorService). По-умолчанию он автоматически стартует при запуске Windows. Запустить/перезапустить сервис также можно из приложения "Управление NETConnector", которое доступно в меню Пуск на сервере. Пример использования в 1С "ПроверкаБиблиотеки-3.epf" скачать В клиентской программе сначала создается компонент код 1С: ПодключитьВнешнююКомпоненту("AddIn.NETConnector"); Компонент = Новый COMОбъект("AddIn.NETConnector"); затем для подключения к серверу и регистрации канала для получения событий вызывается метод Connect() код 1С: Компонент.Connect()
В примере для этого испольльзуется кнопка "Запустить" на форме. Не нажимайте её более одного раза для одного клиента. То что регистрация произошла можно увидеть в консоли на сервере: Client registred... Далее можно вызывать методы и получать события.
Демо-режим
В неактивированной версии возможно только одно подключение клиента к серверу. Для того чтобы снова подключиться, нужно перезапустить сервис.
Активация
Для активации нужно ввести код активации в окне "Управление NETConnector", после ввода кода необходимо перезапустить сервис.
Интерфейс компоненты NetConnector
Процедуры
- Вызвать (MakeCall) (string dn_from, string number_to) - инициировать вызов от внутреннего абонента dn_from на номер number_to.
- Отсоединить (DropCall) (int CallID, string dn) - отсоединить внутреннего абонента dn от разговора CallID.
- Перенаправить Вызов (DivertCall) (int CallID, string dn, string destination) - перенаправить вызов CallID от внутреннего абонента dn к номеру destination.
- Перехватить Вызов (PickupCall) (string dn, string dnFrom)
- Заменить (TransferCall) (int CallID, string dn, string number_to) - заменить в установившемся разговоре CallID внутреннего абонента dn на номер number_to.
- ЗаписатьРазговор (RecordCall) (int CallID, string dn, bool YesNo) - начать\прекратить (YesNo) запись разговора CallID. внутренний абонент dn выступает как “инициатор”.
- Телефоны (Phones) (out string phones) заполняет строку phones – список телефонов всех внутренних абонентов. Номера разделены “&”.
- СвойстваАбонента (GetParam) (string dn, string prop_name, out string prop_value) - возвращает свойство с названием prop_name для абонента с номером dn. Устанавливает значение prop_value.
Названия свойств - prop_name:
- AuthID - SIP ID абонента.
- AuthPassword - Пароль абонента.
- BusyDetection - Механизм определения статуса "занято", определяет, может телефон принимать вызовы или нет.
- DeliverAudio - Проксирование аудио через АТС (Голос через АТС).
- EmailAddress - E-mail абонента.
- Enabled - Включение абонента (enabled).
- FirstName - Имя абонента.
- HidePresence - Отключение настроек статуса абонента.
- Internal - Отключение возможности звонков в город.
- IsRegistered - совокупный статус регистрации. true - если хотя бы одно устройство зарегистрировано на этом номере (может быть несколько), false - в противном случае (наследование от DN)
- LastName - Фамилия абонента.
- NoAnswerTimeout - Время которое будет звонить телефон прежде чем звонок выбет признан не отвеченным.
- Number - Номер который идентифицирует этого абонента (наследование от DN)
- OutboundCallerID - Исходящий Caller ID для этого абонента.
- OverrideProfile - Правила из нового профиля будут применяться до правил текущего профиля и действовать для черного/белого списков.
- PhoneDevices - Отображет устройства которые подключены.
- QueueStatus - В каких очередях абонент является агентом.
- RecordCalls - Запись разговоров для абонента.
- SIPID - SIP ID внутреннего номера.
- SupportReinvite - Опция re-invites.
- SupportReplaces - Опция 'replaces'.
- UserStatus - Статус абонента, доступен или отсутствует.
- VMEmailOptions - E-mail для голосовой почты.
- VMEnabled - Включение голосовой почта для абонента.
- VMPIN - ПИН для доступа к голосовой почте.
- VMPlayCallerID - Определяет, будет ли озвучен Caller ID при прослушивании голосовой почты.
- VMPlayMsgDateTime - Определяет, будет ли озвучено время при прослушивании голосовой почты, если да, в каком формате.
- ОпроситьНомер (GetStatus) (string number, out string status) заполняет status значениями статуса для активных соединений номера number разделенные “&”.
Значения статуса:
- Held - Соединение на удержании у внешней стороны
- Hold - Соединение на удержании у инициатора вызова
- Connected - Соединение установлено
- Ringing - Вызов со внешней стороны
- Dialing - Звонок со стороны инициатора вызова
- Undefined - Неопределенный статус.
События
События обрабатываются в процедуре 1С ОбработкаВнешнегоСобытия (string Источник, string Событие, string Данные)
| Событие |
Данные |
Описание
|
| NEWCONNECTION |
CallID=значение&Status=значение &DN=значение& ExternalParty=значение CallID – ID соединения Status – статус соединения, может быть одним из значений: Held - Соединение на удержании у внешней стороны Hold - Соединение на удержании у инициатора вызова Connected - Соединение установлено Ringing - Вызов со внешней стороны Dialing - Звонок со стороны инициатора вызова Undefined - Неопределенный статус. DN - номер абонента ExternalParty - внешний номер
|
Создано новое соединение |
| ENDCONNECTION |
См. описание NEWCONNECTION |
Соединение завершено |
UPDATECONNECTION
|
См. описание NEWCONNECTION |
Изменился статус соединения |
|
Демонстрационную обработку для 1С можно скачать здесь.
Особенности работы в «демо-режиме»
Демо-режим подразумевает 1 допустимое подключение клиента. Повторная регистрация клиента возможна через 1 минуту после последнего обращения клиента к серверу. Т.е. если закрыть экземпляр 1С, в котором был создан объект компоненты, примерно через минуту можно будет регистрировать новый экземпляр. Другими словами, нужно соблюдать интервал в 1 минуту после закрытия 1С до запуска (регистрации) нового экземпляра 1С с компонентой. Причем, надо учитывать, что при закрытии формы 1C не закрывает саму конфигурацию и не удаляет объекты (компонент продолжает работать в памяти), нужно закрывать сам экземпляр приложения 1С.
Для отладки конфигурации можно быстро запустить отладочный экземпляр 1С из конфигуратора при помощи кнопки на панели инструментов конфигуратора. В конфигураторе не создаются никакие объекты, поэтому он может быть запущен и это не влияет на количество клиентов.
Поддержка
Мы с удовольствием ответим на Ваши вопросы в форуме.
|