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

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

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


doc:1cajam:sendcommand

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


Отправка команд серверу Asterisk из 1С с анализом результата выполнения

Компонент входящий в состав SDK: «Компонента связи 1С и Asterisk» передает управляющие команды серверу Asterisk. Команды могут выполняться синхронно и асинхронно. Чаще всего происходит асинхронная обработка ответов. Каждая команда реализованная в компоненте имеет параметр ActionID, который в случае асинхронного вызова позволяет однозначно отделить ответ на нашу команду от других ответов и событий Asterisk. Например, при вызове функции мы передали в параметр ActionID слово «Barsik», то в одном из событий, или в нескольких мы получим данные содержащие строку actionid=«Barsik».

Также каждая функция компоненты имеет реквизит Result в который возвращается синхронный ответ функции, если такой предусмотрен AMI интерфейсом Asterisk. Сама же функция возвращает ложь или истину в зависимости от того успешно она выполнена или нет.

Пример вызова функции оригинации звонка:

Процедура Originate(Команда)
	Результат="";
	Channel		=	"SIP/26"                        //	Channel: Название канала, с которого совершается исходящий вызов (В том же формате, как если бы Вы совершали вызов этому абоненту командой Dial.)
	Context		=	"from-internal";		//	Context: Название контекста для совершения исходящего вызова (используется только совместно с параметрами Exten и Priority)
	Exten		=	"74952293042";                  //	Exten: Extension to use on connect (используется только совместно с параметрами Context и Priority)
	Priority	=	"1";			        //	Priority: Priority to use on connect (используется только совместно с параметрами Context и Exten)
	Timeout		=	"";				//	Timeout: Таймаут (в миллисекундах) для соединения с инициатором исходящего вызова (значение по умолчанию: 30000 миллисекунд).
	CallerID	=	"MIKO_Abonent";	                //	CallerID: Значение CallerID, используемое для совершения исходящего вызова.
	Variable	=	"";				//	Variable: Установка переменных канала (максимум 32). Переменные будут установлены для обоих каналов, участвующих в соединении (локального, для абонента от которого совершается вызов и для вызываемого канала).
	Account		=	"miko";			        //	Account: Значение для “Account code” исходящего вызова.
	Application	=	"";				//	Application: Команда плана набора, используемая для совершения исходящего вызова (используется параметр “Data”, для указания ее параметров)
	Data		=	"";				//	Data : Параметры команды плана набора, используемой для совершения исходящего вызова.
	Async		=	"1";			        //	Async: Если указано “true” исходящий вызов будет производиться асинхронно. Результат ее выполнения будет возвращен позже, в пакете типа “Event” (позволяет осуществлять несколько вызовов без ожидания результата предыдущей команды, совершающей исходящий вызов)
	ActionID	=	"114";			        //	ActionID: Не обязательный идентификатор запроса. Позволяет сопоставить результат выполнения конкретному запросу. В качестве значения можно использовать или номер или строку. Очень полезно использовать, когда выполняется несколько асинхронных запросов одновременно.
 
 
	Если Компонент = Неопределено Тогда
		Сообщить("Компонент не подключен");
		Возврат;
	КонецЕсли; 
 
	Попытка
		Если Компонент.Originate(Channel,Context,Exten,Priority,Timeout,CallerID,Variable,Account,Application,Data,Async,ActionID,Результат)=Истина Тогда
                     Сообщить("Результат оригинации "+Результат);
                КонецЕсли;     
	Исключение
		Сообщить("Исключение при, ошибка:"+ИнформацияОбОшибке());
	КонецПопытки; 
 
КонецПроцедуры

Полезные ссылки

doc/1cajam/sendcommand.1327924087.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)