Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:1cajam:sendcommand [2012/01/30 11:48] nb |
doc:1cajam:sendcommand [2014/11/14 22:32] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Отправка команд серверу Asterisk из 1С с анализом результата выполнения ====== | ====== Отправка команд серверу Asterisk из 1С с анализом результата выполнения ====== | ||
- | Компонент входящий в состав SDK: "Компонента связи 1С и Asterisk" передает управляющие команды серверу Asterisk. Команды могут выполняться синхронно и асинхронно. Чаще всего происходит асинхронная обработка ответов. | + | Компонент, входящий в состав SDK: "Компонента связи 1С и Asterisk", передает управляющие команды серверу Asterisk. Команды могут выполняться синхронно и асинхронно. Чаще всего происходит асинхронная обработка ответов. |
- | Каждая команда реализованная в компоненте имеет параметр ActionID, который в случае асинхронного вызова позволяет однозначно отделить ответ на нашу команду от других ответов и событий Asterisk. Например, при вызове функции мы передали в параметр ActionID слово "Barsik", то в одном из событий, или в нескольких мы получим данные содержащие строку //actionid="Barsik"//. | + | Каждая команда, реализованная в компоненте, имеет параметр ActionID, который в случае асинхронного вызова позволяет однозначно отделить ответ на нашу команду от других ответов и событий Asterisk. Например, при вызове функции мы передали в параметр ActionID слово "Barsik", то в одном из событий или в нескольких мы получим данные, содержащие строку //actionid="Barsik"//. |
- | Также каждая функция компоненты имеет реквизит Result в который возвращается синхронный ответ функции, если такой предусмотрен AMI интерфейсом Asterisk. Сама же функция возвращает ложь или истину в зависимости от того успешно она выполнена или нет. | + | Также, каждая функция компоненты имеет реквизит Result, в который возвращается синхронный ответ функции, если такой предусмотрен AMI интерфейсом Asterisk. Сама же функция возвращает ложь или истину в зависимости от того - успешно она выполнена или нет. |
Пример вызова функции оригинации звонка: | Пример вызова функции оригинации звонка: | ||
<code 1c> | <code 1c> | ||
- | Процедура Originate(Команда) | + | Процедура ПозвонитьС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: Не обязательный идентификатор запроса. Позволяет сопоставить результат выполнения конкретному запросу. В качестве значения можно использовать или номер или строку. Очень полезно использовать, когда выполняется несколько асинхронных запросов одновременно. | + | |
+ | 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: Не обязательный идентификатор запроса. Позволяет сопоставить результат выполнения конкретному запросу. В качестве значения можно использовать или номер или строку. Очень полезно использовать, когда выполняется несколько асинхронных запросов одновременно. | ||
Если Компонент = Неопределено Тогда | Если Компонент = Неопределено Тогда | ||
Строка 30: | Строка 29: | ||
Попытка | Попытка | ||
+ | Результат=""; | ||
Если Компонент.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,Результат)=Истина Тогда | ||
Сообщить("Результат оригинации "+Результат); | Сообщить("Результат оригинации "+Результат); | ||
Строка 44: | Строка 44: | ||
* [[doc:1cajam:api|Описание функций реализованных в SDK: Компонента связи 1С и Asterisk]] | * [[doc:1cajam:api|Описание функций реализованных в SDK: Компонента связи 1С и Asterisk]] | ||
* [[kb:asterisk:events|Asterisk Manager: Events]] | * [[kb:asterisk:events|Asterisk Manager: Events]] | ||
+ | |||
+ | |||
+ | ===== Комментарии ===== | ||
+ | ~~DISQUS~~ | ||