Знакомство с Yate

Yate (акроним Yet Another Telephony Engine, "очередной движок телефонии") - движок телефонии следующего поколения, свободное и открытое программное обеспечение для коммуникаций с поддержкой передачи видео, голоса и мгновенных сообщений.
Работающий на основе протокола интернет телефонии (VoIP) и телефонной сети общего пользования (PSTN), Yate легко расширяем. Приложение поддерживает протоколы SIP, H.323, IAX, MGCP, Jingle, Jabber, E1, T1, протокол аналоговой телефонии, ISDN PRI, BRI, и SS7.
Оно написано на C++ с применением модульной архитектуры, что позволяет использовать такие исполняемые языки, как Perl, Python или PHP для расширения функционала.

Помните, что нижеприведенные инструкции подходят только для Linux платформ.
Чтобы получить информацию об использовании с другими платформами, пройдите в раздел "Загрузка" и следуйте соответствующим указанным инструкциям.
После установки Yate вы можете пропустить раздел "Загрузка исходного кода Yate из SVN" и сразу перейти к разделу "Файлы настроек"

Загрузка исходного кода Yate из SVN

Для получения полной сборки Yate вам понадобится:

  • Базовые инструменты разработчика:

  1. GNU make (осуществить сборку, используя BSD make не получится);
  2. Компилятор C++ из набора программ GNU (gcc/g++) и его библиотеки;
  3. Сборщик сценариев конфигурации autoconf;

  • SVN-клиент.

Перейдите в /usr/src или любую другую удобную вам папку для размешения исходного кода. После установки SVN-клиента, вы можете получить исходный код, просто воспользовавшись командой:

svn checkout http://voip.null.ro/svn/yate/trunk yate-SVN
cd yate-SVN

Первая команда сменит рабочую директорию, вторая скачает из SVN на ваш компьютер дерево каталогов (в которую вносятся изменения в код проекта) в новую папку yate-SVN. Третья сменит рабочую директорию на папку с исходным кодом Yate.

Для получения более подробной информации перейдите в раздел "Установка".

Сборка

Чтобы создать файл настройки, выполните следующую команду, после чего сконфигурируйте исходный код:

./autogen.sh
./configure

Соберите исходный код:

make

Запуск

  • Для запуска в режиме отладки используйте ./run -vvvvvv
  • Для запуска в режиме службы выполните ./run -d

Для получения более подробной информации о ключах, которые можно использовать при запуске Yate, выполните: ./run --help

Для использования в режиме отладки попробуйте следующие ключи:

-v Подробная отладка (можно использовать несколько раз)
-d Запустить в качестве службы, подавлять вывод, если сохранение отладочных сообщений файла отключено
-l filename  Выводить отладочную информацию в файл 
-Dt Временные отметки в отладочных сообщениях относительно времени запуска программы

 Файлы настройки

Файлы, с помощью которых вы можете производить настройку, располагаются в /usr/src/yate-SVN/conf.d.
Обратите внимание, что названия всех файлов оканчиваются расширением .sample (пример). Вам необходимо создать новые файлы с теми же самыми именами, но расширением .conf.
Каждый параметр в файле настроек заключён в квадратные скобки. Комментарии в этих файлах помечены символом.

Добавление пользователей

Перейдите в /usr/src/yate-SVN/conf.d, куда установлен Yate и переименуйте файл regfile.conf.sample в regfile.conf. Чтобы добавить пользователей отредактируйте regfile.conf. Добавим двух пользователей: пользователя под именем 100 с паролем 001 и пользователя 200 с паролем 002:

[100] password = 001
[200] password = 002

Если вы хотите использовать базу данных, существует другой способ добавления пользователей. В этом случае используйте файл register.conf.

Настройка SIP

Для настройки SIP используется файл ysipchan.conf. В редактировании этого файла нет необходимости, так как по умолчанию Yate подсоединится ко всем сетевым интерфейсам порта 5060 вашего сервера. Если этот порт используется другими программами, вам необходимо указать другой, введя его в секции [general].

Маршрутизация

Нет необходимости настраивать маршрутизацию для зарегистрированных пользователей SIP на сервере. Yate будет маршрутизировать звонки между пользователями, указанными в regfile.conf.
Чтобы добавить запрос аутентификации для всех входящих вызовов, включите следующие строки в файл regexroute.conf:


[default]
${username}^$=-;error=noauth

Чтобы указать маршрутизацию других зарегистрированных пользователей, PSTN, шлюзов, отредактируйте regexroute.conf.

Чтобы зарегистрировать пользователей в базе данных, используйте register.conf. Затем укажите правила маршрутизации в regexroute.conf.

Настройка телефонов

Вам необходимо настроить пользователей из файла regfile на двух SIP-телефонах (можно использовать программные SIP-телефоны) чтобы совершать звонки с помощью Yate Server.

Проверка установки

Если Yate был запущен в то время, как вы редактировали файл настроек, перезапустите Yate, чтобы изменения вступили в силу.

Наберите один из следующих номеров с телефона-клиента:

99991001 вы услышите звук набора
99991002 вы услышите звук, соответствующий сигналу "Занято"
99991003 вы услышите звук звонка

Эти номера выделены в тестовых целях и всех их можно найти в файле "regexroute.conf". Позвонив на любой из них вы услышите стандартный телефонный звук.

Позвоните с одного номера на другой, чтобы проверить звук. Если другой конец линии слышно, возможно у вас проблемы с NAT.

Если вы хотите увидеть поток сообщений, можно использовать telnet-клиент. Подключитесь следующим образом:

telnet localhost 5038

Введите следующие команды, чтобы включить вывод сообщений отладки и подсветку вывода:

  • debug on
  • color on
Затем совершите вызов и смотрите на поток сообщений SIP.


ПОДПИСАТЬСЯ