Условия.
У нас есть 1С (версия 8.Х) и Linux-сервер (в моем случае ubuntu server 15.04 ) c Asterisk (1.8.28.2) на борту. Для интеграции использовал ВК от Simplit ROM-Asterisk.dll (полностью свободная, но снятая с техподдержки). Про интеграцию можно почитать здесь:
http://wiki.simplit.info/doku.php/community/rom-asterisk
Цель.
Управление Asterisk-конференциями из 1С. Минимальные задачи, которые я определил для себя:
- организация конференции,
-
добавление и исключение участников конференции,
-
Управление микрофоном участника конференции.
Конференции в Asterisk.
Система Asterisk поддерживает функцию конференц-связи (app_meetme.so) с неограниченным (искусственными лимитами) числом пользователей. Прочитать подробнее про MeetMe можно здесь:
http://asterisk.ru/knowledgebase/asterisk+cmd+meetme
Настройка Asterisk
Для начала создадим одну конференцию (2345), для этого добавляем следующую строку в meetme.conf:
conf => 2345,,321
И правим dialplan (extension.conf):
;meetme – собственно сама конференция
exten => 2345,1,MeetMe(2345,TMx)
;meetme kick all – выгнать всех из конференции
exten => _*0*XXXX*1,1,MeetMeAdmin(${EXTEN:3:4},K)
;meetme kick user (id in conference) – выгнать участника из конференции
exten => _*0*XXXX*1*!,1,MeetMeAdmin(${EXTEN:3:4},k,${EXTEN:10})
Сбор конференции осуществляется организацией звонков с внутреннего номера абонента на номер нашей конференции 2345.
Настройка со стороны 1С
Во обработке Asterisk_ПанельIPтелефонииКонференции в Модуде Формы в функции ПодключениеКСерверуAsterisk() изменяем переменные:
Адрес="...";
Порт="5038";
Логин="...";
Пароль="...";
ПутьКФайлуВК="c:\....\";
ПоказыватьСобытияAsterisk=Истина;
В справочнике Asterisk_Внутренние_телефоны записаны внутренние абоненты, и принадлежность их к той или иной конференции (н/р общая планерка , региональная планерка). Cравочник Asterisk_Конференции содержит информацию о самих конференциях (Название, id).
Принцип работы.
Запускаем обработку →выбираем конференцию (подгружается список участников) →кликаем на кнопу Собрать конференцию (происходит обзвон всех участников).
Отключить/подключить участника можно, кликнув по иконке статуса.
При обнаружении говорящего участника конференции, его ФИО подсвечивается синим цветом. Это удобно для отслеживания посторонних шумов в конференции (в этом случае можно просто выключить микрофон у участника).
Что планируется сделать:
-
Вести запись конференций (на стороне Asterisk), с возможностью прослушивания их на стороне 1С, с логированием участников и прочих данных.
-
Добавление пользователя в активную конференцию, которого нет в списке этой конференции.
-
Разделение конференций по комнатам