Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:1cajam:thin [2011/12/18 06:38] a.portnov |
doc:1cajam:thin [2014/11/14 22:32] (текущий) |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
<code 1c> | <code 1c> | ||
&НаКлиенте | &НаКлиенте | ||
- | // Процедура должна вызываться лишь один раз при первичной установке компонента, либо при обновлении его версии | + | // Процедура должна вызываться лишь один раз при первичной установке компонента, |
+ | // либо при обновлении его версии | ||
Процедура УстановитьКомпонент() | Процедура УстановитьКомпонент() | ||
АдресАрхиваКомпонента = "Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32"; | АдресАрхиваКомпонента = "Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32"; | ||
Строка 21: | Строка 22: | ||
в этом случае компонент, упакованный в ZIP архив расположен в макете обработки. Далеев режиме 1С предприятия необходимо инициализировать вызов этой процедуры: | в этом случае компонент, упакованный в ZIP архив расположен в макете обработки. Далеев режиме 1С предприятия необходимо инициализировать вызов этой процедуры: | ||
- | {{ :doc:1cajam:uspeshnaja_ustanovka.jpg? |}} | + | |
+ | {{ :doc:1cajam:ustanovit_komponent.png |}} | ||
В случае успешной установки компонента, в каталоге **%APPDATA%\1C\1Cv82\ExtCompT** (для windows 7) будет распакован файл компонента. Рядом с распакованным файлом в файл **registry.xml** будут дописаны сведения об установленном компоненте. Пример registry.xml файла: | В случае успешной установки компонента, в каталоге **%APPDATA%\1C\1Cv82\ExtCompT** (для windows 7) будет распакован файл компонента. Рядом с распакованным файлом в файл **registry.xml** будут дописаны сведения об установленном компоненте. Пример registry.xml файла: | ||
Строка 100: | Строка 102: | ||
===== Пинг ===== | ===== Пинг ===== | ||
+ | [[doc:1cajam:api:ping|Описание:Ping]] | ||
+ | Пример процедуры для проверки соединения с Asterisk: | ||
+ | |||
<code 1c> | <code 1c> | ||
&НаКлиенте | &НаКлиенте | ||
Строка 117: | Строка 122: | ||
</code> | </code> | ||
+ | ===== Выполнение произвольной команды Asterisk (Command) ===== | ||
+ | [[doc:1cajam:api:Command|Описание Command]] | ||
+ | |||
+ | <code 1c> | ||
+ | &НаКлиенте | ||
+ | Процедура CommandНажатие(Элемент) | ||
+ | Command = ПрозвольнаяКоманда; // Command: Asterisk команда CLI интерфейса. (Не команда шелла!) | ||
+ | ActionID = "110"; // ActionID: Необязательный ID команды, который будет возвращен в ответе. | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | //Результат=Компонент.command(Command,ActionID); | ||
+ | Результат=""; | ||
+ | Компонент.doc:1cami:api:Command(Command,ActionID,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при отправке произвольной комманды "); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат комманды "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | |||
+ | ===== Инициализация звонка (Originate) ===== | ||
+ | [[doc:1cajam:api:Originate|Описание:Originate]] | ||
+ | Пример процедуры инициализации исходящего вызова: | ||
+ | |||
+ | <code 1c> &НаКлиенте | ||
+ | // 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,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при, ошибка"); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат оригинации "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Запись разговора (Monitor) ===== | ||
+ | |||
+ | [[doc:1cajam:api:Monitor|Описание:Monitor]] | ||
+ | |||
+ | <code 1c> &НаКлиенте | ||
+ | Процедура Monitor(Команда) | ||
+ | Channel = АктивныйКанал1; | ||
+ | File = ""; // File: Не обязательный параметр. Имя файла, которое будет | ||
+ | Format1C = "wav"; // Format: Не обязательный параметр. Формат, в котором будет сохранен звуковой файл. | ||
+ | Mix = "1"; // Mix: Не обязательный булевой параметр. Определяет, миксировать или нет поступающий | ||
+ | //и исходящий из канала аудиопоток после окончания записи. | ||
+ | |||
+ | ActionID = "115"; // ActionID: Необязательный ID команды, который будет возвращен в ответе. | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | //Результат=Компонент.Monitor(Channel,File,Format1C,Mix,ActionID); | ||
+ | Результат=""; | ||
+ | Компонент.Monitor(Channel,File,Format1C,Mix,ActionID,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при выполнении "+Команда.Имя+" ошибка"); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат команды "+Команда.Имя+" "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | |||
+ | ===== Остановка записи разговора (StopMonitor) ===== | ||
+ | [[doc:1cajam:api:stopmonitor|Команда Asterisk Manager API: StopMonitor]] | ||
+ | <code 1c> &НаКлиенте | ||
+ | // | ||
+ | Процедура StopMonitor(Команда) | ||
+ | Channel = АктивныйКанал1; // Channel: Канал, для которого нужно прекратить запись вызова | ||
+ | // например: SIP/1310-089e1000 (обязательный параметр) | ||
+ | |||
+ | ActionID= "116"; // ActionID: Не обязательный ID команды, который будет возвращен в ответе. | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | Результат=""; | ||
+ | Компонент.StopMonitor(Channel,ActionID,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при выполнении "+Команда.Имя+" ошибка: "+ИнформацияОбОшибке()); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат команды "+Команда.Имя+" "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Донабор номера (PlayDTMF) ===== | ||
+ | |||
+ | <code 1c> &НаКлиенте | ||
+ | Процедура PlayDTMF(Команда) | ||
+ | Channel = АктивныйКанал1; // Channel: Имя канала, в который нужно отправить | ||
+ | // DTMF последовательность. (Обязательный параметр) | ||
+ | |||
+ | Digit = Строка(СигналDTMF); // Digit: DTMF последовательность, | ||
+ | // которую нужно отправить. (Обязательный параметр) | ||
+ | |||
+ | ActionID = "117"; // ActionID: Необязательный ID команды, | ||
+ | // который будет возвращен в ответе. | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | Результат=""; | ||
+ | Компонент.PlayDTMF(Channel,Digit,ActionID,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при выполнении "+Элемент.Имя+" ошибка: "+ИнформацияОбОшибке()); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат команды "+Элемент.Имя+" "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | |||
+ | ===== Положить трубку (Hangup) ===== | ||
+ | [[doc:1cajam:api:hangup|Описание: Hangup]] | ||
+ | |||
+ | |||
+ | <code 1c> &НаКлиенте | ||
+ | Процедура Hangup(Команда) | ||
+ | Результат=""; | ||
+ | Channel = АктивныйКанал1; // Channel: Канал, на котором необходимо закончить вызов. | ||
+ | ActionID = "120"; // ActionID: Необязательный ID команды, который будет возвращен в ответе. | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | Компонент.Hangup(Channel,ActionID,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при выполнении "+Команда.Имя+" ошибка: "+ИнформацияОбОшибке()); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат команды "+Команда.Имя+" "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | |||
+ | ===== Без консультативный перевод звонка===== | ||
+ | [[doc:1cajam:api:redirect|Описание: Redirect]] | ||
+ | |||
+ | <code 1c> &НаКлиенте | ||
+ | // Инициирование перевода звонка | ||
+ | Процедура Redirect(Команда) | ||
+ | |||
+ | Channel = АктивныйКанал1; // Channel: Название канала, для которого производиться перевод вызова (обязательный параметр). | ||
+ | ExtraChannel= АктивныйКанал2; // ExtraChannel: Название канала второго плеча вызова (второй абонент), | ||
+ | // который тоже участвует при переводе вызова (не обязательный параметр). | ||
+ | |||
+ | Exten = НомерКудаПереводимЗвонокRedirect;// Exten: Название екстеншена в плане набора, куда переводиться вызов | ||
+ | Context = Контекст; // Context: Название контекста в плане набора, куда переводиться вызов | ||
+ | Priority= "1"; // Priority: Номер приоритета в плане набора, куда переводиться вызов | ||
+ | ActionID= "119"; // ActionID: Не обязательный ID команды, который будет возвращен в ответе. | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | Результат=""; | ||
+ | Компонент.Redirect(Channel,ExtraChannel,Exten,Context,Priority,ActionID,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при выполнении "+Команда.Имя+" ошибка: "+ИнформацияОбОшибке()); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат команды "+Команда.Имя+" "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | </code> | ||
+ | |||
+ | ===== Перевод консультационный ===== | ||
+ | [[doc:1cajam:api:atxfer|Описание: Atxfer]] | ||
+ | <code 1c> &НаКлиенте | ||
+ | Процедура Atxfer(Команда) | ||
+ | |||
+ | Channel = АктивныйКанал1; // Channel - Название канала, для которого производиться перевод вызова | ||
+ | Context = Контекст;// Context - Название контекста в плане набора, куда переводиться вызов | ||
+ | Exten = КудаПереводимЗвонокAtxfer;// Exten -Название екстеншена в плане набора, куда переводиться вызов | ||
+ | Priority="1"; // Priority - Номер приоритета в плане набора, куда переводиться вызов (обязательный параметр) | ||
+ | ActionID="118"; // ActionID -Не обязательный ID команды, который будет возвращен в ответе. | ||
+ | |||
+ | Если Компонент = Неопределено Тогда | ||
+ | Сообщить("Компонент не подключен"); | ||
+ | Возврат; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Попытка | ||
+ | Результат=""; | ||
+ | Компонент.Atxfer(Channel,Context,Exten,Priority,ActionID,Результат); | ||
+ | Исключение | ||
+ | Сообщить("Исключение при выполнении "+Элемент.Имя+" ошибка: "+ИнформацияОбОшибке()); | ||
+ | КонецПопытки; | ||
+ | |||
+ | Сообщить("Результат команды "+Элемент.Имя+" "+Результат); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | </code> | ||