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

в 12:36, , рубрики: asterisk, ip-телефония, метки: ,

Предисловие

Здравствуйте, меня зовут Артём, и я расскажу в этом посте Вам о том, как установить и настроить 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.
Те же действия проделываем со всеми устройствами! Теперь можно осуществить первый вызов!

Автор: artem_tam

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js