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

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

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


doc:1cajam:thin

Это старая версия документа!


Работа с компонентом в тонком клиенте

Прежде всего рекомендую ознакомиться со способами подключения внешнего компонента:

Установка

Для начала работы с компонентом необходимо произвести его установку. Пример процедуры может выглядеть следующим

        &НаКлиенте
	// Процедура должна вызываться лишь один раз при первичной установке компонента,
        // либо при обновлении его версии
	Процедура УстановитьКомпонент()
	   АдресАрхиваКомпонента = "Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32";
	   Попытка
	      УстановитьВнешнююКомпоненту(АдресАрхиваКомпонента);
	   Исключение
	      Сообщить("Не удалось устанвить внешнюю компоненту.");   
	   КонецПопытки;
	КонецПроцедуры

в этом случае компонент, упакованный в ZIP архив расположен в макете обработки. Далеев режиме 1С предприятия необходимо инициализировать вызов этой процедуры:

В случае успешной установки компонента, в каталоге %APPDATA%\1C\1Cv82\ExtCompT (для windows 7) будет распакован файл компонента. Рядом с распакованным файлом в файл registry.xml будут дописаны сведения об установленном компоненте. Пример registry.xml файла:

        <?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>

Для дальнейшей работы с компонентом, имеет смысл определить переменную модуля:

        &НаКлиенте
        Перем Компонент;
 

Инициализация

Пример процедуры инициализации компонента:

	&НаКлиенте
	Процедура Инициализаровать()
	   АдресАрхиваКомпонента = "Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32";
	   Если ПодключитьВнешнююКомпоненту(ПутьКМакету,"Comp",ТипВнешнейКомпоненты.Native) Тогда
		Компонент = Новый ("AddIn.Comp.MikoAjam");
	   Иначе
		СообщитьОтладочнуюИнформацию("Не удалось подключить внешнюю компоненту","");
   	   КонецЕсли;
	КонецПроцедуры 

Авторизация на сервере Asterisk

Далее пример авторизации: * см. также...

        &НаКлиенте
	Процедура Login()
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен, сначала инициализируйте его!");
			Возврат;
		КонецЕсли; 
		Компонент.Хост = "test.ru";
		Компонент.Порт = "4443";
		result=""; // результат выполнения		
		Попытка
			Компонент.Login("МенеджерЛогин","МенеджерПароль",result);	
		Исключение
			Сообщить("Ошибка при авторизации: " + result);
		КонецПопытки; 
	КонецПроцедуры

Отключение от cервера Asterisk

	&НаКлиенте
	Процедура Logoff(Команда)
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен");
			Возврат;
		КонецЕсли; 
 
		Попытка
			Результат = "";
			Компонент.Logoff(Результат);
		Исключение
			Сообщить("Исключение при отключении...");
		КонецПопытки; 
 
		Сообщить("Результат " + Результат);
	КонецПроцедуры

Пинг

Пример процедуры для проверки соединения с Asterisk:

	&НаКлиенте	
	Процедура Ping(Команда)
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен!");
			Возврат;
		КонецЕсли; 
		Попытка
			respose ="";
			Результат=Компонент.Ping(respose);
			// Результат - возвращается значение типа булево
		Исключение
			Сообщить("Исключение при пинге");
		КонецПопытки; 
	КонецПроцедуры

Выполнение произвольной команды Asterisk (Command)

Описание Command

	&НаКлиенте
	Процедура CommandНажатие(Элемент)
		Command	 =	ПрозвольнаяКоманда; //	Command: Asterisk команда CLI интерфейса. (Не команда шелла!)
		ActionID =	"110";  	    //	ActionID: Необязательный ID команды, который будет возвращен в ответе.
 
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен");
			Возврат;
		КонецЕсли; 
 
		Попытка
			//Результат=Компонент.command(Command,ActionID);
			Результат="";
			Компонент.doc:1cami:api:Command(Command,ActionID,Результат);
		Исключение
			Сообщить("Исключение при отправке произвольной комманды ");
		КонецПопытки; 
 
		Сообщить("Результат комманды "+Результат);
 
	КонецПроцедуры

Заголовок

	&НаКлиенте
	// 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);
			Результат="";
			Компонент.Originate(Channel,Context,Exten,Priority,Timeout,CallerID,Variable,Account,Application,Data,Async,ActionID,Результат);
		Исключение
			Сообщить("Исключение при, ошибка");
		КонецПопытки; 
 
		Сообщить("Результат оригинации "+Результат);
 
	КонецПроцедуры
doc/1cajam/thin.1324197304.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)