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

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

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


doc:1cajam:api:originate

Различия

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

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

doc:1cajam:api:originate [2012/02/02 09:20]
nb
doc:1cajam:api:originate [2014/11/14 22:32]
Строка 1: Строка 1:
-====== Команда Asterisk Manager API: Originate ====== 
  
-Совершение исходящего вызова или выполнение Shell скрипта. 
- 
-===== Параметры команды ===== 
- 
-<note important>​Все переменные передаваемые в функцию должны иметь тип Строка!</​note>​ 
- 
-  * **Channel**:​ Название канала,​ с которого совершается исходящий вызов (В том же формате,​ как если бы Вы совершали вызов этому абоненту командой Dial.) 
-  * **Context**:​ Название контекста для совершения исходящего вызова (используется только совместно с параметрами Exten и Priority) 
-  * **Exten**: Extension to use on connect (используется только совместно с параметрами Context и Priority) 
-  * **Priority**:​ Priority to use on connect (используется только совместно с параметрами Context и Exten) 
-  * **Timeout**:​ Таймаут (в миллисекундах) для соединения с инициатором исходящего вызова (значение по умолчанию:​ 30000 миллисекунд). 
-  * **CallerID**:​ Значение CallerID, используемое для совершения исходящего вызова. 
-  * **Variable**:​ Установка переменных канала (максимум 32). Переменные будут установлены для обоих каналов,​ участвующих в соединении (локального,​ для абонента от которого совершается вызов и для вызываемого канала). 
-  * **Account**:​ Значение для “Account code” исходящего вызова. 
-  * **Application**:​ Команда плана набора,​ используемая для совершения исходящего вызова (используется параметр “Data”, для указания ее параметров) 
-  * **Data** : Параметры команды плана набора,​ используемой для совершения исходящего вызова. 
-  * **Async**: Если указано “true” исходящий вызов будет производиться асинхронно. Результат ее выполнения будет возвращен позже, в пакете типа “Event” (позволяет осуществлять несколько вызовов без ожидания результата предыдущей команды,​ совершающей исходящий вызов) 
-  * **ActionID**:​ Не обязательный идентификатор запроса. Позволяет сопоставить результат выполнения конкретному запросу. В качестве значения можно использовать или номер или строку. Очень полезно использовать,​ когда выполняется несколько асинхронных запросов одновременно. 
- 
-<note warning>​Для переменной Variable не применяется URLENCODE, имейте это ввиду при передаче сложных переменных! Делайте замену символов на "​безопасные"​ в среде 1С. Например,​ символ пробела нужно заменить последовательностью "​%20"</​note>​ 
- 
-===== Последовательность событий при совершении исходящего вызова ===== 
- 
- 
-Первое,​ совершается вызов по каналу,​ указанному в параметре Channel. 
-Далее, после того как установлено соединение по этому каналу (на вызов ответили),​ будет запущена процедура исходящего вызова. 
-Это может быть или выполнение команд из указанной точки плана набора:​ номер екстеншена,​ указанного в параметре Exten, в контексте из параметра Context, с номером приоритета из “Priority”. 
-Или вызов совершается с помощью команды плана набора из параметра “Application” с ее параметрами из “Data”. 
-Обратите внимание,​ что таймаут,​ указанный в “Timeout”,​ имеет отношение только к первой стадии вызова (совершение вызова по каналу из “Channel”). Все остальные таймауты вызова второй стороны могут быть указаны,​ например,​ в параметрах команды Dial. 
- 
- 
-Использование параметра Async приводит к генерации manager API события (Event) - OriginateResponse,​ которое содержит код ошибки в поле reason, если оно есть. 
-Код ошибки может принимать следующие значения:​ 
- 
-0 = Номер или екстеншен не найден. 
-1 = Нет ответа (no answer) 
-4 = Успешное выполнение (answered) 
-8 = Перегрузка или абонент не доступен (congested or not available) 
- 
- 
----- 
- 
-**Пример** 
- 
- 
-Совершение вызова с канала SIP на указанный номер. 
-В данном случае исходящий вызов с номера 26 на номер внешнего абонента 74952293042 не будет совершаться до тех пор, пока наш SIP абонент 26 не ответит на вызов. 
-На телефоне во время вызова будет отображаться "​26->​74952293042",​ во время вызова будет использоваться контекст "​from-internal"​. 
- 
-<code 1c> 
- ​Процедура 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 = "​26->​74952293042";​ //​ CallerID:​ Значение CallerID, используемое для совершения исходящего вызова. 
- Variable = "";​  ​  //​ Variable:​ Установка переменных канала (максимум 32). Переменные будут установлены для обоих каналов,​ участвующих в соединении (локального,​ для абонента от которого совершается вызов и для вызываемого канала). 
- Account = "​miko";​  ​  //​ Account:​ Значение для “Account code” исходящего вызова. 
- Application = "";​  ​  //​ Application:​ Команда плана набора,​ используемая для совершения исходящего вызова (используется параметр “Data”, для указания ее параметров) 
- Data = "";​  ​  //​ Data : Параметры команды плана набора,​ используемой для совершения исходящего вызова. 
- Async = "​1";​  ​  //​ Async:​ Если указано “true” исходящий вызов будет производиться асинхронно. Результат ее выполнения будет возвращен позже, в пакете типа “Event” (позволяет осуществлять несколько вызовов без ожидания результата предыдущей команды,​ совершающей исходящий вызов) 
- ActionID = "​123123123";​  ​  //​ ActionID:​ Не обязательный идентификатор запроса. Позволяет сопоставить результат выполнения конкретному запросу. В качестве значения можно использовать или номер или строку. Очень полезно использовать,​ когда выполняется несколько асинхронных запросов одновременно. 
-  
- Попытка 
- Результат="";​ 
- Компонент.Originate(Channel,​Context,​Exten,​Priority,​Timeout,​CallerID,​Variable,​Account,​Application,​Data,​Async,​ActionID,​Результат);​ 
-   ​  ​       Сообщить("​Результат оригинации "​+Результат);​ 
- Исключение 
- Сообщить("​Исключение при "​+Элемент.Имя+"​ ошибка:"​+ИнформацияОбОшибке());​ 
- КонецПопытки; ​ 
-  
-КонецПроцедуры 
- 
-</​code>​ 
- 
-Следующий пример демонстрирует выполнение команды Playback для проигрывания сотруднику c с внутренним номером 26 записи разговора из файла. 
- 
-<code 1c> 
-Процедура ПрослушатьЗвонок(ИмяФайлаЗаписи) Экспорт ​ 
- Если НЕ ЗначениеЗаполнено(ИмяФайлаЗаписи) Тогда 
- Возврат;​  
- КонецЕсли; ​ 
-  
- Если Найти(ИмяФайлаЗаписи,​ПутьКЗаписямРазговоров)=0 Тогда // в имени файла не указан путь к записям разговоров 
- ИмяФайлаБезРасширения = УбратьРасширениеВФайлеЗаписи(ПутьКЗаписямРазговоров + ИмяФайлаЗаписи); ​ 
- Иначе 
- ИмяФайлаБезРасширения = УбратьРасширениеВФайлеЗаписи(ИмяФайлаЗаписи);​ // в файле не должно быть указано расширение 
- КонецЕсли; ​ 
-  
- Channel = "​SIP/​26";​ //​ Channel:​ Название канала,​ с которого совершается исходящий вызов (В том же формате,​ как если бы Вы совершали вызов этому абоненту командой Dial.) 
- Context = "";​ //​ Context:​ Название контекста для совершения исходящего вызова (используется только совместно с параметрами Exten и Priority) 
- Exten = "";​ //​ Exten:​ Extension to use on connect (используется только совместно с параметрами Context и Priority) 
- Priority = "";​ //​ Priority:​ Priority to use on connect (используется только совместно с параметрами Context и Exten) 
- Timeout = "";​ //​ Timeout:​ Таймаут (в миллисекундах) для соединения с инициатором исходящего вызова (значение по умолчанию:​ 30000 миллисекунд). 
- CallerID = "​CDR_RECORDS";​ //​ CallerID:​ Значение CallerID, используемое для совершения исходящего вызова. 
- Variable = "";​ //​ Variable:​ Установка переменных канала (максимум 32). Переменные будут установлены для обоих каналов,​ участвующих в соединении (локального,​ для абонента от которого совершается вызов и для вызываемого канала). 
- Account = "";​ //​ Account:​ Значение для “Account code” исходящего вызова. 
- Application = "​Playback";​ //​ Application:​ Команда плана набора,​ используемая для совершения исходящего вызова (используется параметр “Data”, для указания ее параметров) 
- Data = "​\"​+ИмяФайлаБезРасширения;​ //​ Data : Параметры команды плана набора,​ используемой для совершения исходящего вызова. 
- Async = "​0";​ //​ Async:​ Если указано “true” исходящий вызов будет производиться асинхронно. Результат ее выполнения будет возвращен позже, в пакете типа “Event” (позволяет осуществлять несколько вызовов без ожидания результата предыдущей команды,​ совершающей исходящий вызов) 
- ActionID = "​114";​ //​ ActionID:​ Не обязательный идентификатор запроса. Позволяет сопоставить результат выполнения конкретному запросу. В качестве значения можно использовать или номер или строку. Очень полезно использовать,​ когда выполняется несколько асинхронных запросов одновременно. 
-  
- Результат="";​ 
- Попытка 
- Компонент.Originate(Channel,​Context,​Exten,​Priority,​Timeout,​CallerID,​Variable,​Account,​Application,​Data,​Async,​ActionID,​Результат);​ 
- СообщитьОтладочнуюИнформацию("​Начало прослушивания разговора "​+ИмяФайлаБезРасширения,​Результат);​ 
- Исключение 
- СообщитьОтладочнуюИнформацию("​Ошибка при прослушивании разговора "​+ИмяФайлаБезРасширения,​Результат,​ОписаниеОшибки());​ 
- КонецПопытки;​  
-  
-КонецПроцедуры 
-</​code>​ 
-===== Полезные ссылки ===== 
-  * [[doc:​1cajam|Описание SDK: "​Компонента связи 1С и Asterisk"​]] 
-  * [[doc:​1cajam:​api|Все функции компоненты связи 1С и Asterisk]] 
-  * [[kb:​asterisk:​ami:​Originate|Прототип текущей функции,​ команда AMI Asterisk: Originate]] 
-  * [[kb:​asterisk:​ami|Интерфейс управления сервером Asterisk (Asterisk Manager API)]] 
-  * [[kb:​asterisk:​events|Список известных событий возвращаемых Asterisk Manager API]] 
- 
- 
-===== Комментарии ===== 
-~~DISQUS~~ 
doc/1cajam/api/originate.txt · Последние изменения: 2014/11/14 22:32 (внешнее изменение)