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

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

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


doc:1cajam:thin

Различия

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

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

doc:1cajam:thin [2011/12/18 09:00]
a.portnov
doc:1cajam:thin [2014/11/14 22:32]
Строка 1: Строка 1:
-====== Работа с компонентом в тонком клиенте ====== 
- 
-Прежде всего рекомендую ознакомиться со способами подключения внешнего компонента:​ 
-  * [[doc:​1cajam:​init|см. также]] 
- 
-===== Установка ===== 
- 
-Для начала работы с компонентом необходимо произвести его установку. Пример процедуры может выглядеть следующим ​ 
-<code 1c> 
-        &​НаКлиенте 
- // Процедура должна вызываться лишь один раз при первичной установке компонента,​ 
-        // либо при обновлении его версии 
- Процедура УстановитьКомпонент() 
-    ​АдресАрхиваКомпонента = "​Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32";​ 
-    ​Попытка 
-       УстановитьВнешнююКомпоненту(АдресАрхиваКомпонента);​ 
-    ​Исключение 
-       Сообщить("​Не удалось устанвить внешнюю компоненту."​); ​   
-    ​КонецПопытки;​ 
- КонецПроцедуры 
-</​code>​ 
- 
-в этом случае компонент,​ упакованный в ZIP архив расположен в макете обработки. Далеев режиме 1С предприятия необходимо инициализировать вызов этой процедуры:​ 
-{{ :​doc:​1cajam:​uspeshnaja_ustanovka.jpg?​ |}} 
- 
-В случае успешной установки компонента,​ в каталоге **%APPDATA%\1C\1Cv82\ExtCompT** (для windows 7) будет распакован файл компонента. Рядом с распакованным файлом в файл **registry.xml** будут дописаны сведения об установленном компоненте. Пример registry.xml файла: 
- 
-<code 1c> 
-        <?xml version="​1.0"​ encoding="​UTF-8"?>​ 
-        <​registry xmlns="​http://​v8.1c.ru/​8.2/​addin/​registry">​ 
-        <​component path="​MIKO_phone_IP.dll"​ type="​native"/>​ 
-        <​component path="​MIKO_phone_IP_v_2_0.dll"​ type="​native"/>​ 
-        <​component path="​MIKO_ajamV009.dll"​ type="​native"/>​ 
-        </​registry>​ 
-</​code>​ 
- 
-Для дальнейшей работы с компонентом,​ имеет смысл определить переменную модуля:​ 
-<code 1c> 
-        &​НаКлиенте 
-        Перем Компонент;​ 
-        ​ 
-</​code>​ 
- 
-===== Инициализация ===== 
-  * [[doc:​1cajam:​init|см. также]] 
-  
-Пример процедуры инициализации компонента:​ 
-<code 1c> 
- &​НаКлиенте 
- Процедура Инициализаровать() 
-    ​АдресАрхиваКомпонента = "​Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32";​ 
-    ​Если ПодключитьВнешнююКомпоненту(ПутьКМакету,"​Comp",​ТипВнешнейКомпоненты.Native) Тогда 
- Компонент = Новый ("​AddIn.Comp.MikoAjam"​);​ 
-    ​Иначе 
- СообщитьОтладочнуюИнформацию("​Не удалось подключить внешнюю компоненту",""​);​ 
-   ​  ​  ​КонецЕсли;​ 
- КонецПроцедуры ​ 
-</​code>​ 
- 
-===== Авторизация на сервере Asterisk ===== 
-Далее пример авторизации:​ 
- * [[doc:​1cajam:​connect|см. также...]] 
- 
-<code 1c>  
-        &​НаКлиенте 
- Процедура Login() 
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен,​ сначала инициализируйте его!"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
- Компонент.Хост = "​test.ru";​ 
- Компонент.Порт = "​4443";​ 
- result="";​ // результат выполнения  
- Попытка 
- Компонент.Login("​МенеджерЛогин","​МенеджерПароль",​result);​  
- Исключение 
- Сообщить("​Ошибка при авторизации:​ " + result); 
- КонецПопытки; ​ 
- КонецПроцедуры 
-</​code>​ 
- 
-===== Отключение от cервера Asterisk ===== 
- 
-<code 1c>​ &​НаКлиенте 
- Процедура Logoff(Команда) 
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
-  
- Попытка 
- Результат = "";​ 
- Компонент.Logoff(Результат);​ 
- Исключение 
- Сообщить("​Исключение при отключении..."​);​ 
- КонецПопытки; ​ 
-  
- Сообщить("​Результат " + Результат);​ 
- КонецПроцедуры 
-</​code>​ 
- 
-===== Пинг ===== 
-[[doc:​1cajam:​api:​ping|Описание:​Ping]] 
-Пример процедуры для проверки соединения с Asterisk: 
- 
-<code 1c> 
- &​НаКлиенте  
- Процедура Ping(Команда) 
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен!"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
- Попытка 
- respose ="";​ 
- Результат=Компонент.Ping(respose);​ 
- // Результат - возвращается значение типа булево 
- Исключение 
- Сообщить("​Исключение при пинге"​);​ 
- КонецПопытки; ​ 
- КонецПроцедуры 
-</​code>​ 
- 
-===== Выполнение произвольной команды Asterisk (Command) ===== 
- 
-[[doc:​1cajam:​api:​Command|Описание Command]] 
- 
- 
-<code 1c> 
- &​НаКлиенте 
- Процедура CommandНажатие(Элемент) 
- Command = ПрозвольнаяКоманда;​ // Command: Asterisk команда CLI интерфейса. (Не команда шелла!) 
- ActionID = "​110"; ​     //​ ActionID:​ Необязательный ID команды,​ который будет возвращен в ответе. 
-  
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
-  
- Попытка 
- //​Результат=Компонент.command(Command,​ActionID);​ 
- Результат="";​ 
- Компонент.doc:​1cami:​api:​Command(Command,​ActionID,​Результат);​ 
- Исключение 
- Сообщить("​Исключение при отправке произвольной комманды "); 
- КонецПопытки; ​ 
-  
- Сообщить("​Результат комманды "​+Результат);​ 
-  
- КонецПроцедуры 
-</​code>​ 
- 
-===== Инициализация звонка (Originate) ===== 
-[[doc:​1cajam:​api:​Originate|Описание:​Originate]] 
-Пример процедуры инициализации исходящего вызова:​ 
- 
-<code 1c>​ &​НаКлиенте 
- // http://​wiki.miko.ru/​doc:​1cami:​api:​Originate 
- Процедура Originate(Команда) 
-  
- Channel = НашКаналФильтр;​ //​ Channel:​ Название канала,​ с которого совершается исходящий вызов ​ 
- Context = Контекст;​ //​ Context:​ Название контекста для совершения исходящего вызова ​ 
- Exten = КомуЗвонимНомер;//​ Exten:​ Extension to use on connect 
- Priority = "​1";​ //​ Priority:​ Priority to use on connect ​ 
- Timeout = "";​ //​ Timeout:​ Таймаут (в миллисекундах) для соединения с инициатором ​ 
- CallerID = "​MIKO_Abonent";​ //​ CallerID:​ Значение CallerID, используемое для совершения исходящего вызова. 
- Variable = "";​ //​ Variable:​ Установка переменных канала (максимум 32).  
- Account = "​miko";​ //​ Account:​ Значение для “Account code” исходящего вызова. 
- Application = "";​ //​ Application:​ Команда плана набора 
- Data = "";​ //​ Data : Параметры команды плана набора 
- Async = "​1";​ //​ Async:​ Если указано “true” исходящий вызов будет производиться асинхронно. 
- ActionID = "​114";​ //​ ActionID:​ Не обязательный идентификатор запроса. ​ 
-  
-  
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
-  
- Попытка 
- Компонент.Originate(Channel,​Context,​Exten,​Priority,​Timeout,​ 
- CallerID,​Variable,​Account,​Application,​ 
- Data,​Async,​ActionID,​Результат);​ 
- Исключение 
- Сообщить("​Исключение при, ошибка"​);​ 
- КонецПопытки; ​ 
-  
- Сообщить("​Результат оригинации "​+Результат);​ 
-  
- КонецПроцедуры 
-</​code>​ 
- 
- 
-===== Запись разговора (Monitor) ===== 
- 
-[[doc:​1cajam:​api:​Monitor|Описание:​Monitor]] 
- 
-<code 1c>​ &​НаКлиенте 
- Процедура Monitor(Команда) 
- Channel = АктивныйКанал1;​  
- File = "";​ //​ File:​ Не обязательный параметр. Имя файла, которое будет ​ 
- Format1C = "​wav";​ //​ Format:​ Не обязательный параметр. Формат,​ в котором будет сохранен звуковой файл. 
- Mix = "​1";​ //​ Mix:​ Не обязательный булевой параметр. Определяет,​ миксировать или нет поступающий ​ 
- //и исходящий из канала аудиопоток после окончания записи. 
-  
- ActionID = "​115";​ //​ ActionID:​ Необязательный ID команды,​ который будет возвращен в ответе. 
-  
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
-  
- Попытка 
- //​Результат=Компонент.Monitor(Channel,​File,​Format1C,​Mix,​ActionID);​ 
- Результат="";​ 
- Компонент.Monitor(Channel,​File,​Format1C,​Mix,​ActionID,​Результат);​ 
- Исключение 
- Сообщить("​Исключение при выполнении "​+Команда.Имя+"​ ошибка"​);​ 
- КонецПопытки; ​ 
-  
- Сообщить("​Результат команды "​+Команда.Имя+"​ "​+Результат);​ 
- 
- КонецПроцедуры 
-</​code>​ 
- 
-===== Остановка записи разговора (StopMonitor) ===== 
-[[doc:​1cajam:​api:​stopmonitor|Команда Asterisk Manager API: StopMonitor]] 
-<code 1c>​ &​НаКлиенте 
- // 
- Процедура StopMonitor(Команда) 
- Channel = АктивныйКанал1;​ //​ Channel:​ Канал, для которого нужно прекратить запись вызова 
- // например:​ SIP/​1310-089e1000 (обязательный параметр) 
-  
- ActionID= "​116";​ //​ ActionID:​ Не обязательный ID команды,​ который будет возвращен в ответе.  
-  
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
-  
- Попытка 
- Результат="";​ 
- Компонент.StopMonitor(Channel,​ActionID,​Результат);​ 
- Исключение 
- Сообщить("​Исключение при выполнении "​+Команда.Имя+"​ ошибка:​ "​+ИнформацияОбОшибке());​ 
- КонецПопытки; ​ 
-  
- Сообщить("​Результат команды "​+Команда.Имя+"​ "​+Результат);​ 
-  
- КонецПроцедуры 
-</​code>​ 
- 
- 
-===== Донабор номера (PlayDTMF) ===== 
- 
-<code 1c>​ &​НаКлиенте 
- Процедура PlayDTMF(Команда) 
- Channel = АктивныйКанал1;​ //​ Channel:​ Имя канала,​ в который нужно отправить ​ 
- // DTMF последовательность. (Обязательный параметр) 
-  
- Digit = Строка(СигналDTMF);​ //​ Digit:​ DTMF последовательность,​ 
- // которую нужно отправить. (Обязательный параметр) 
-  
- ActionID = "​117";​ //​ ActionID:​ Необязательный ID команды, ​ 
- // который будет возвращен в ответе. 
-  
- Если Компонент = Неопределено Тогда 
- Сообщить("​Компонент не подключен"​);​ 
- Возврат;​ 
- КонецЕсли; ​ 
-  
- Попытка 
- Результат="";​ 
- Компонент.PlayDTMF(Channel,​Digit,​ActionID,​Результат);  ​ 
- Исключение 
- Сообщить("​Исключение при выполнении "​+Элемент.Имя+"​ ошибка:​ "​+ИнформацияОбОшибке());​ 
- КонецПопытки; ​ 
-  
- Сообщить("​Результат команды "​+Элемент.Имя+"​ "​+Результат);​ 
-  
- КонецПроцедуры 
-</​code>​ 
- 
  
doc/1cajam/thin.txt · Последние изменения: 2014/11/14 22:32 (внешнее изменение)