ROM-Asterisk: Внешняя компонента для интеграции 1С и Asterisk Ключевые слова: 1с asterisk, asterisk 1с, панель телефонии, ROM-Asterisk, внешняя компонента asterisk, 1с астериск, астериск 1с, внешняя компонента для астериск
Community Edition версияМы просто сняли всю защиту с полнофункциональной версии и сделали бесплатную Community Edition версию с полным сохранением функционала.
Внешняя компонентаКомпонента названа ROM-Asterisk, по аналогии с другими нашими ВК (ROM-Mail, ROM-Chart и т.д.). Внешнюю компоненту можно использовать в коммерческих целях. Если вы хотите зарабатывать на внешней компоненте, то мы будем только рады. В этом случае, нужно просто получить согласие компании Simplit.
Компонента распространяется по принципу "как есть". Ссылка на компанию Simplit (simplit.com.ua), как на разработчика внешней компоненты, обязательна. Ключевые особенности внешней компоненты
Асинхронный неблокируемый сокет, основанный на событияхВнешняя компонента реализует асинхронный неблокируемый сокет, основанный на событиях. Т.е, она способна "промолотить" сколько угодно событий. Внешняя компонента прошла проверку многочисленными внедрениями и успешно трудится в производственной среде многих компаний.
Мощная система фильтрацииВ Asterisk, только в последней версии 10.х начала появляться возможность фильтрации событий AMI. Поэтому, в ROM-Asterisk реализована собственная мощная система фильтрации событий. Можно накладывать как обычный фильтр, так и фильтр с помощью механизма регулярных выражений. Мы не стали изобретать велосипед и использовали библиотеку PCRE для реализации регулярных выражений.
COM-технологияROM-Asterisk реализована по технологии COM, в полном соответствии с руководством "Технология создания внешних компонент", поэтому будет работать во всех версиях 1С. Исключением является использование в режиме веб-клиента.
ОписаниеСвойства:
- Подключено / Connected - Только чтение - Число - Флаг установленного соединения, 1-соединение установлено, 0-нет
- Фильтр / Filter - Только чтение - Строка - Обычный строковый фильтр, для поиска вхождения подстроки
<li><strong>РегулярноеВыражение / RegEx</strong> - Только чтение - Строка - Фильтр на основе регулярного выражения</li>
<li><strong>РежимПрослушивания / Listen</strong> - Только чтение - Число - Режим прослушивания событий Asterisk AMI, 1-включен, 0-нет</li>
<li><strong>Версия / Version</strong> - Только чтение - Версия внешней компоненты</li>
</ul>
<blockquote>
<h3 style="padding-left: 30px;">Методы:</h3>
</blockquote>
<ul>
<li><strong>Подключиться / Connect (IP,Port)</strong> - установить соединение с сервером Asterisk</li>
<li><strong>Отключиться / Disconnect ()</strong> - разорвать соединение с сервером Asterisk</li>
<li><strong>ВыполнитьКоманду / SendCommand (СтрокаКоманды)</strong> - выполнить произвольную команду Asterisk AMI</li>
<li><strong>РежимПрослушивания / ListenMode (Флаг)</strong> - включить/выключить режим прослушивания событий Asterisk AMI, 1-включить, 0-выключить</li>
<li><strong>УстановитьФильтр / SetFilter (СтрокаФильтра)</strong> - установить обычный фильтр вхождения подстроки</li>
<li><strong>УстановитьРегулярноеВыражение(СтрокаФильтра)</strong> - установить фильтр, накладываемый с помощью регулярного выражения PCRE</li>
</ul>
<h2>Использование</h2>
<blockquote>
<h3 style="padding-left: 30px;">Загрузка внешней компоненты</h3>
<p style="padding-left: 30px;">Загрузка выполняется стандартно - с помощью методов ЗагрузитьВнешнююКомпоненту и ПодключитьВнешнююКомпоненту.</p>
<h3 style="padding-left: 30px;">Получение событий</h3>
<p style="padding-left: 30px;">События, полученные внешней компонентой, передаются в 1С через стандартный интерфейс IAsyncEvent и доступны в предопределенной процедуре <strong>ОбработкаВнешнегоСобытия(Источник,Событие,Данные)</strong></p>
<p style="padding-left: 30px;">Можно отключить получение событий, для этого достаточно воспользоваться методом <strong>РежимПрослушивания(0)</strong>. Это может пригодиться при реализации исходящего Call-центра, где нужно отдавать команды на оригинацию, а события в этом случае не важны.</p>
<p style="padding-left: 30px;">При разрыве соединения ОбработкаВнешнегоСобытия получит событие "Disconnect". В демо-примере показано как сделать автоподключение.</p>
<h3 style="padding-left: 30px;">Фильтрация на стороне внешней компоненты</h3>
<p style="padding-left: 30px;">По большому счету, события можно фильтровать и внутри 1С в процедуре ОбработкаВнешнегоСобытия, но это дороже по ресурсам. Дешевле "отбивать" события на стороне ВК, тем самым снимая нагрузку с клиентского сеанса 1С. При правильно настроенных фильтрах в пользовательский сеанс 1С будут попадать только события, которые относятся к этому пользователю.</p>
<h4 style="padding-left: 30px;">Пример фильтра</h4>
<blockquote>
<p style="padding-left: 30px;">Например, стоит задача получать только события Dial, Bridge и Hangup, причем только для внутреннего номера 902.</p>
<p style="padding-left: 30px;">Фильтр будет таким:</p>
<p style="padding-left: 30px;"><strong>Dial.{1,}?902|Bridge.{1,}?902|Hangup.{1,}?902</strong></p>
<p style="padding-left: 30px;">Можно использовать обычный фильтр вхождения подстроки, тогда просто: "<strong>902</strong>".</p>
<p style="padding-left: 30px;">Если фильтр не указан, то вы получите все события.</p>
</blockquote>
</blockquote>
<h2>Демо-пример</h2>
<blockquote>
<p style="padding-left: 30px;">В демо-примере реализовано самое необходимое и оформлено в виде внешней обработки "ПанельТелефонии" в режиме обычного приложения. Был частично использован наш предыдущий пример <a title="Бесплатная панель телефонии для 1С и Asterisk" href="http://infostart.ru/public/121803/">"Бесплатная панель телефонии для 1С и Asterisk"</a> только сейчас использована ВК с максимальной функциональностью.</p>
<p style="padding-left: 30px;">Обработка содержит множество готовых функций. Например, функция преобразования текстовых пакетов в объект Соответствие.</p>
<p style="padding-left: 30px;">Есть пример обработчиков для событий Dial, Bridge, Hungup. Написать свой обработчик не составит особого труда - просто смотрите пример.</p>
<p style="padding-left: 30px;">На примере функции <strong>Звонить()</strong> показано каким образом можно отдавать команды Asterisk-у. Команда <strong>Originate</strong>, используемая в примере - это всего лишь одна из множества команд, которые вы сможете использовать для управления Asterisk.</p>
<p style="padding-left: 30px;">Настройка доступа со стороны Asterisk описана в статье <a title="1С+Asterisk. Пример интеграции" href="http://infostart.ru/public/95691/">"1С+Asterisk. Пример интеграции"</a></p>
</blockquote>
<h2>Поддержка</h2>
<blockquote>
<p style="padding-left: 30px;">Бесплатная поддержка осуществляется в этой ветке комментариев и в рамках <a href="http://simplit.com.ua/forum">форума</a> компании Simplit.</p>
</blockquote>
<h2>Развитие</h2>
<blockquote>
<p style="padding-left: 30px;">Ближайший пункт из запланированного Roadmap-а:</p>
</blockquote>
<blockquote>
<p style="padding-left: 30px;">NativeAPI версия - 4 квартал 2012 года</p>
</blockquote>
|