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

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


doc:1cajam:sendcommand

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

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

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

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

Процедура ПозвонитьС26На74952293042()
 
	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.txt · Последние изменения: 2014/11/14 22:32 (внешнее изменение)