Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


doc:1cajam:serverwindows

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:1cajam:serverwindows [2012/02/29 09:37]
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>
  
-Теперь описание сервиса ​доступно по ссылке:​ **http://​172.16.32.217/​TestComponenta/​ws/​1C_MIKO_Asterisk.1cws?​wsdl**+=== Проверка работоспособности сервиса ​===
  
 +  * Добавим объект метаданных "​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='&​quot;​WORK Nikolay Beketov&​quot;​ &​lt;​263&​gt;'​ 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**
 +
 +==== Запуск компонента ====
 +Для работы с компонентом на сервере,​ все необходимые процедуры и функции следует описать в серверном модуле и вызывать к примеру по расписанию
 +
 +Пример работы на сервере может выглядеть следующим образом:​
 +<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~~
  
  
doc/1cajam/serverwindows.1330508221.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)