Asterisk: установка, создание простейшего диалплана, первый звонок

от автора

Предисловие

Здравствуйте, меня зовут Артём, и я расскажу в этом посте Вам о том, как установить и настроить Asterisk.
Задача заключается в создании связи между несколькими android-устройствами через сервер Asterisk. Asterisk должен быть установлен и настроен на серверном компьютере с операционной системой Linux Ubuntu 12.04 LTS. Итак, начнём.

Установка

  1. Первым делом скачиваем Asterisk с официального сайта.
    Я использовал Asterisk 1.8.10.1(11.4.0).
  2. Распаковываем архив в текущую директорию:
    tar -zxvf asterisk-11-current.tar.gz 
  3. Дальше необходимо установить утилиту make, компилятор gcc, и несколько библиотек. Всё это выполняем командой:
    sudo apt-get install make gcc libncurses5-dev openssl libxml2-dev build-essential 
  4. Переходим в директорию исходников:
    cd ./asterisk-11.4.0 
  5. Запускаем:
    ./configure 
  6. Компилируем (это может занять продолжительное время):
    sudo make install 

    И:

    sudo make config 

Asterisk установлен!
Его можно запустить командой:

sudo /etc/init.d/asterisk start 

Настройка

Консоль Asterisk вызывается командой:

 sudo /usr/sbin/asterisk -r 

Я советую запустить 2 терминала: один для действий в консоли Asterisk, а другой для прочих действий.

Конфигурация SIP.

Конфигурация протокола SIP записывается в файл /etc/asterisk/sip.conf. Изначально этого файла нет, поэтому мы должны его создать:

sudo cd /etc/asterisk sudo touch ./sip.conf 

Открываем файл для редактирования:

sudo gedit -b ./sip.conf 

Устройств у нас будет много, поэтому создадим стандартный шаблон:

[standart](!)#(!) - указывает на то, что это шаблон. type=friend#Тип SIP-клиента. context=phones#Контекст, нужен для отделения одних груп пользователей от других. host=dynamic#Разрешаем регистрироваться с разных ip-адресов. 

Дальше пишем:

[101](standart)#Здесь указаны отдельные добавочные номера, присваеваемые устройству. (standart) указывает на то, что параметры этого номера берутся из созданного нами шаблона.  [102](standart)  

В итоге sip.conf должен выглядеть так:

[general]#Про general и более подробно про структуру sip.conf  опишу в следующем посте.  [standart](!) type=friend context=phones host=dynamic  [101](standart)  [102](standart) 

В консоли Asterisk выполняем:

sip reload#Обновление конфигурации SIP протокола. Наши настройки сохранены и вступили в силу! 

Диалплан

Конфигурация диалплана находится в файле /etc/asterisk/extensions.conf
В директории /etc/asterisk создаём файл extensions.conf:

sudo cd /etc/asterisk sudo touch ./extensions.conf 

Открываем файл для редактирования:

sudo gedit -b ./extensions.conf  

Структура extensions.conf:

exten => ИМЯ,ПРИОРИТЕТ,Приложение() 

Имя — имя отдельного добавочного номера.
Приоритет — порядковый номер приложения для имени, т.е. Asterisk выполняет приложения для какого-то добавочного номера по порядку(значению приоритета).
Приложение() — какое-то действие.
extensions.conf должен выглядеть так:

[globals]  [general] autofallthrough=yes  [default]  [incoming_calls]  [internal] exten => 101, 1, Verbose(1|Extension 101)#Соединение exten => 101, n, Dial(SIP/101, 30)#Разговор exten => 101, n, Hangup()#Отсоединение  exten => 102, 1, Verbose(1|Extension 102) exten => 102, n, Dial(SIP/102, 30) exten => 102, n, Hangup() 

Про струтуру extensions.conf подробнее также в следующем посте.
Выполняем в консоли Asterisk:

dialplan reload 

Настройки диалплана всупили в силу!

Первый звонок

Как я говорил, вызовы будут осуществлятся между андроид-устройствами. Следовательно нужен SIP клиент, например 3CXPhone, доступный по ссылке.
Скачиваем и устанавливаем. Открываем приложение:
Заходим в меню => Profiles => Add New.
В полях Name, Display name, User и ID пишем добавочный номер(один из указанных в sip.conf).
Если доступ осуществляется не из локальной сети сервера ставим галочку I Am Out Of Office.
External PBX IP — внешний ip-адрес сервера. Local PBX IP — ip-адрес сервера внутри локальной сети.
Остальные поля не трогаем. Сохраняем профиль, устройство регистрируется и слева над клавиатурой должно быть написано On Hook.
Те же действия проделываем со всеми устройствами! Теперь можно осуществить первый вызов!

ссылка на оригинал статьи http://habrahabr.ru/post/187308/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *