Сайт FSA
19.01.2011

Настраиваем аудиоконференции в Asterisk на FreeBSD

С выходом версии Asterisk 1.8.2 решил разобраться в настройке конференций. Так же как и ранее решил использовать модуль app_meetme.

Конференции бывают двух типов - постоянные и динамически создаваемыми. Для создания постоянной конференции необходимо внести запись о ней в файл meetme.conf и добавить соответствующий экстеншн. Описываем конференции в секции [rooms]:

[rooms]
conf => 990,123,1234
conf => 991,321,4321

В данном примере создаются две постоянные конференции с номерами 990 и 991. После номера конференции указывается пароль для входа и администраторский пароль.

Дайплан Asterisk я обычно оформляю в extensions.ael, т.к. он обладает довольно привлекательным и удобочитаемым синтаксисом. Для конференций можно создать отдельный контекст, который затем включать с помощью includes в те контексты, где вам будут необходим доступ к конференциям. Итак. Создадим экстеншены в контексте rooms для 3 конференций, тех, которые создали ранее и динамических:

context rooms {
    990 => MeetMe(990,M);
    991 => MeetMe(991,M);
    992 => MeetMe(,MD);
}

В ранних версиях Asterisk разделителем параметров была вертикальная черта. В версии 1.8.2, как вы могли заметить, используется запятая. Первым параметром является номер конференции, указанный в файле meetme.conf. Как я писал выше, под номером 992 скрываются динамически создаваемые конференции и номер для них не указывается. Вторым параметром указаны дополнительные параметры. M - использовать музыкальное сопровождение в случае, если в конференции только один пользователь. D - динамически создаваемые конференции с использованием pin-кода для доступа. Подробнее о параметрах можно прочитать в документации.

Особенностью app_meetme является потребность в наличии таймеров. Если сейчас вы попытаетесь воспользоваться конференцией, то получите сигнал занято в постоянных конференциях и сообщение о невозможности создать динамическую конференцию. Чтобы решить данную проблему можно воспользоваться аппаратным таймером на платах интерфейсов. Но если вы не используете плат, то необходимо создать псевдоустройство. Относительно недавно dahdi была портирована на FreeBSD, Для установки этого модуля воспользуемся портом /usr/ports/misc/dahdi-kmod.

portmaster misc/dahdi-kmod

Не забываем включить загрузку модуля ядра через rc.conf:

dahdi_enable="YES"

Теперь можно запустить

service dahdi start

Обратите внимание, что заметки могут обновляться со временем. Это может быть как исправление найденных ошибок, так и доработка содержания с целью более полного раскрытия темы. Информация об изменениях доступна в репозитории на github. Там же вы можете оставить в Issue ваши замечания по данной заметке.


Если данная заметка оказалась вам полезной, можете поблагодарить автора финансово.