====== Запуск компоненты mikoajam в режиме толстого клиента ====== ===== Процедуры инициализации, логина и логофа ===== Перем Компонент Экспорт; // объявляем глобальную переменную для компонента Процедура Инициализация() // подключаем компонент Попытка ИмяФайла="C:\mikoAjam.dll"; ПодключитьВнешнююКомпоненту(ИмяФайла,"Comp" ,ТипВнешнейКомпоненты.Native); Компонент = Новый ("AddIn.Comp.MikoAjam"); Исключение Сообщить("Исключение при инициализации"); КонецПопытки; КонецПроцедуры Процедура Логин() //авторизуемся на сервере Asterisk Попытка Компонент.Хост = "nash.asterisk.ru"; // адрес сервера астериск с опубликованным ajam интерфейсом Компонент.Порт = "8088"; // порт опубликованного ajam интерфейса Компонент.Таймаут = 5; // время в секундах на ожидание ответа Asterisk, по умолчанию 5 секунд. Компонент.РежимSSL = Ложь; // режим SSL шифрования пакетов result=""; Компонент.Login(МенеджерЛогин,МенеджерПароль,result); Сообщить("Результат авторизации "+result); Исключение Сообщить("Исключение при установке параметров логина "+ИнформацияОбОшибке()); КонецПопытки; КонецПроцедуры Процедура Логофф() //разрываем соединение Попытка Результат=""; Компонент.Logoff(Результат); Исключение Сообщить("Исключение при разлогинивании"); КонецПопытки; КонецПроцедуры ===== Простейшая команда Ping ===== Процедура Ping() Попытка respose =""; Результат=Компонент.Ping(respose); Сообщить("Результат пинга "+Результат+". Ответ asterisk "+respose ); Исключение Сообщить("Исключение при пинге"); КонецПопытки; КонецПроцедуры ===== Звонок абонента A, абоненту Б.===== Процедура Originate() Channel = КаналАбонентаA; // Channel: Название канала, с которого совершается исходящий вызов (В том же формате, как если бы Вы совершали вызов этому абоненту командой Dial.) Context = Контекст; // Context: Название контекста для совершения исходящего вызова (используется только совместно с параметрами Exten и Priority) Exten = НомерАбонентаБ ;// 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 = "123123123"; // ActionID: Не обязательный идентификатор запроса. Позволяет сопоставить результат выполнения конкретному запросу. В качестве значения можно использовать или номер или строку. Очень полезно использовать, когда выполняется несколько асинхронных запросов одновременно. Попытка Результат=""; Компонент.Originate(Channel,Context,Exten,Priority,Timeout,CallerID,Variable,Account,Application,Data,Async,ActionID,Результат); Сообщить("Результат оригинации "+Результат); Исключение Сообщить("Исключение при "+Элемент.Имя+" ошибка:"+ИнформацияОбОшибке()); КонецПопытки; КонецПроцедуры ===== Пример обработчика внешних событий ===== //Срабатывает на каждое внешнее событие тут будем мониторить входящие звонки Процедура ВнешнееСобытие(Источник, Событие, Данные) Если Источник="MikoAjamEvent" Тогда Если Событие="Hangup" Тогда //Положили трубку //ПРИМЕР ОТВЕТА XML строка в переменной "Данные" // ИначеЕсли Событие="Bridge" Тогда //2 абонента соеденились и разговаривают //ПРИМЕР ОТВЕТА исходящий звонок с 263 на 04 XML строка в переменной "Данные" // //Пример ответа Входящий звонок с 79265244742 на мультифонтранк XML строка в переменной "Данные" // ИначеЕсли Событие="Unlink" Тогда //ПРИМЕР ОТВЕТА XML строка в переменной "Данные" // ИначеЕсли Событие="Dial" Тогда //Входящий звонок до поднятия трубочки //ПРИМЕР ОТВЕТА при внешнем входящем звонке с номера 79265244745 на мультифон транк XML строка в переменной "Данные" // ИначеЕсли Событие="Newchannel" Тогда //ПРИМЕР ОТВЕТА Звоню с номера 263 на номер 17 XML строка в переменной "Данные" // // /> //ПРИМЕР ОТВЕТА Звоню с номера 74997623634 на номер 229-30-42 оператора МАНГО XML строка в переменной "Данные" // ИначеЕсли Событие="Cdr" Тогда ИначеЕсли Событие="ReceiveFAX" Тогда //ПРИМЕР ОТВЕТА получаем факс XML строка в переменной "Данные" // ИначеЕсли Событие="SendFAX" Тогда //ПРИМЕР ОТВЕТА отправляем факс XML строка в переменной "Данные" // КонецЕсли; //Виду события КонецЕсли; // Если ЭтоМИКО КОМПОНЕНТА КонецПроцедуры ~~DISQUS~~