Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:1cajam:serverwindows [2012/02/29 09:42] a.portnov |
doc:1cajam:serverwindows [2014/11/14 22:32] (текущий) |
||
---|---|---|---|
Строка 18: | Строка 18: | ||
- Сконфигурировать web - сервис, который мог бы обрабатывать данные cdr записей, передаваемых копонентом | - Сконфигурировать web - сервис, который мог бы обрабатывать данные cdr записей, передаваемых копонентом | ||
- | ===== Запуск копонента на сервере ===== | + | ===== Запуск компонента на сервере ===== |
==== Подготовка конфигурации ==== | ==== Подготовка конфигурации ==== | ||
Строка 25: | Строка 25: | ||
==== Описание нового XDTO пакета ==== | ==== Описание нового XDTO пакета ==== | ||
- | * Элемент ненумерованного спискаДобавляем новый XDTO пакет (в дереве метаданных **"Общие" -- "XDTO пакеты"**, **Щелчок правой кнопкой мыши -- Добавить**) | + | * Добавляем новый XDTO пакет (в дереве метаданных **"Общие" -- "XDTO пакеты"**, **Щелчок правой кнопкой мыши -- Добавить**) |
- | * Элемент ненумерованного списка Укажем имя пакета **XDTO_MIKO** | + | * Укажем имя пакета **XDTO_MIKO** |
- | * Элемент ненумерованного списка URI пространство имен **http://1C_MIKO_Asterisk.ru** | + | * URI пространство имен **http://1C_MIKO_Asterisk.ru** |
{{ :doc:1cajam:dobavlenie_novogo_xdto_paketa.jpg? |}} | {{ :doc:1cajam:dobavlenie_novogo_xdto_paketa.jpg? |}} | ||
- | * Элемент ненумерованного спискаДобавим новый тип объекта для пакета, отредактируем его свойства как на картинке: | + | * Добавим новый тип объекта для пакета, отредактируем его свойства как на картинке: |
{{ :doc:1cajam:redaktirovanie_svojstv_xdto_paketa_1.jpg? |}} | {{ :doc:1cajam:redaktirovanie_svojstv_xdto_paketa_1.jpg? |}} | ||
Строка 190: | Строка 190: | ||
* Задаем имя сервиса, а также его адрес | * Задаем имя сервиса, а также его адрес | ||
* После публикации сервиса в каталоге публикации будет сформирован файл default.vrd со следующим содержимым: | * После публикации сервиса в каталоге публикации будет сформирован файл default.vrd со следующим содержимым: | ||
- | <note> | + | <code> |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" | <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" | ||
Строка 202: | Строка 202: | ||
</ws> | </ws> | ||
</point> | </point> | ||
- | </note> | + | </code> |
+ | === Проверка работоспособности сервиса === | ||
+ | |||
+ | * Добавим объект метаданных "WSСсылка" (**"Общие" - "WS - ссылки"** - добавить) | ||
+ | * Задать имя "WSСсылка", указать URL источника "http://...ip_server.../TestComponenta/ws/1C_MIKO_Asterisk.1cws?wsdl" | ||
+ | * Элемент ненумерованного спискаСоздать тестовую внешнюю обработку, обработчик кнопки **выполнить**: | ||
+ | <code 1с> | ||
+ | |||
+ | Прокси =WSСсылки.WSСсылка.СоздатьWSПрокси("http://1C_MIKO_Asterisk.ru","MIKO_Alam","MIKO_AlamSoap"); | ||
+ | Ответ = Прокси.EventListner("MikoAjamEvent","Cdr","<generic event='Cdr' privilege='cdr,all' sequencenumber='53045' file='cdr_manager.c' line='189' func='manager_log' accountcode='' source='263' destination='263' destinationcontext='from-internal' callerid='"WORK Nikolay Beketov" <263>' channel='SIP/263-0000013b' destinationchannel='SIP/263-0000013c' lastapplication='Dial' lastdata='SIP/263,,tr' starttime='2011-11-25 16:51:41' answertime='' endtime='2011-11-25 16:51:43' duration='2' billableseconds='0' disposition='NO ANSWER' amaflags='DOCUMENTATION' uniqueid='1322225501.545' userfield='' />"); | ||
+ | |||
+ | </code> | ||
+ | * Если все было корректно выполнено, то будет возвращен составной тип | ||
Теперь описание сервиса доступно по ссылке: **http://...ip_server.../TestComponenta/ws/1C_MIKO_Asterisk.1cws?wsdl** | Теперь описание сервиса доступно по ссылке: **http://...ip_server.../TestComponenta/ws/1C_MIKO_Asterisk.1cws?wsdl** | ||
+ | ==== Запуск компонента ==== | ||
+ | Для работы с компонентом на сервере, все необходимые процедуры и функции следует описать в серверном модуле и вызывать к примеру по расписанию | ||
+ | |||
+ | Пример работы на сервере может выглядеть следующим образом: | ||
+ | <code 1С> | ||
+ | // основная | ||
+ | Процедура ТестКомпонентаНаСервере() Экспорт | ||
+ | |||
+ | Компонент = Неопределено; | ||
+ | Инициализировать(Компонент); | ||
+ | |||
+ | Если НЕ Компонент = Неопределено Тогда | ||
+ | LoginНажатие(Компонент); | ||
+ | PingНажатие(Компонент); | ||
+ | |||
+ | ЗаписьЖурналаРегистрации("Все успешно отработало!"); | ||
+ | Иначе | ||
+ | ЗаписьЖурналаРегистрации("Компонент = Неопределено!"); | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура Инициализировать(Компонент) | ||
+ | СсылкаНаАрхив = ПоместитьВоВременноеХранилище(Обработки.SDK_test_tools_v1_0_15_2.ПолучитьМакет("AddInWindows32"), Новый УникальныйИдентификатор); | ||
+ | Попытка | ||
+ | ПодключитьВнешнююКомпоненту(СсылкаНаАрхив,"Comp" ,ТипВнешнейКомпоненты.Native); | ||
+ | Компонент = Новый ("AddIn.Comp.MikoAjam"); | ||
+ | ЗаписьЖурналаРегистрации("Компонент успешно инициализирован!"); | ||
+ | // Предупреждение("Компонент телефонии успешно инициализирован"); | ||
+ | Исключение | ||
+ | ЗаписьЖурналаРегистрации("Исключение при инициализации!"); | ||
+ | // Сообщить("Исключение при инициализации"); | ||
+ | КонецПопытки; | ||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура LoginНажатие(Компонент) | ||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен, сначала инициализируйте его"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | Компонент.Хост = "asterisk.adress.ru"; | ||
+ | Компонент.Порт = "8088"; | ||
+ | Компонент.Таймаут = 5; | ||
+ | Компонент.DigestАвторизация = Ложь;; | ||
+ | Компонент.РежимSSL = Ложь; | ||
+ | Компонент.РежимSOAPОповещений = Истина; | ||
+ | | ||
+ | // далее укажем адрес сервиса (обратите внимание на формат адреса, тут нет постфикса **"?wsdl"**) | ||
+ | Компонент.АдресSOAPсервера = "http://....ip_adres..../TestComponenta/ws/1C_MIKO_Asterisk.1cws"; | ||
+ | |||
+ | Результат=""; | ||
+ | Если Компонент.Login("cdruser","cdrpassword",Результат) Тогда | ||
+ | ЗаписьЖурналаРегистрации( "Результат соединения: "+Результат + "" + Компонент.ВерсияКомпонента); | ||
+ | // Сообщить("Результат соединения: "+Результат); | ||
+ | Иначе | ||
+ | ЗаписьЖурналаРегистрации("Авторизация не удалась."+ "" + Компонент.ВерсияКомпонента); | ||
+ | // Предупреждение("Авторизация не удалась."); | ||
+ | КонецЕсли; | ||
+ | |||
+ | |||
+ | Исключение | ||
+ | ЗаписьЖурналаРегистрации("Исключение при логине на сервере Asterisk"); | ||
+ | // Сообщить("Исключение при логине на сервере Asterisk"); | ||
+ | КонецПопытки; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура PingНажатие(Компонент) | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | respose =""; | ||
+ | |||
+ | Если Компонент.Ping(respose) Тогда | ||
+ | ЗаписьЖурналаРегистрации("Результат пинга: "+respose); | ||
+ | //Сообщить("Результат пинга: "+respose+Символы.ПС); | ||
+ | Иначе | ||
+ | ЗаписьЖурналаРегистрации("Ошибка команды Ping. "+respose); | ||
+ | //Сообщить("Ошибка команды Ping. "); | ||
+ | КонецЕсли; | ||
+ | |||
+ | Исключение | ||
+ | ЗаписьЖурналаРегистрации("Исключение при пинге!"); | ||
+ | //Сообщить("Исключение при пинге"); | ||
+ | КонецПопытки; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура LogoffНажатие(Компонент) | ||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | Результат=""; | ||
+ | Компонент.Logoff(Результат); | ||
+ | ЗаписьЖурналаРегистрации("Результат команды "+Результат); | ||
+ | // Сообщить("Результат команды "+Элемент.Имя+" "+Результат); | ||
+ | Исключение | ||
+ | ЗаписьЖурналаРегистрации("Исключение при разлогинивании"); | ||
+ | // Сообщить("Исключение при разлогинивании"); | ||
+ | КонецПопытки; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | ===== Коментарии ===== | ||
+ | ~~DISQUS~~ | ||