Установка и настройка Asterisk. Частный опыт с нуля

Это статья заметка, на случай если мне нужно будет вспомнить, как настроить Asterisk для приема и отправки вызовов. Этой заметки должно хватить для настройки офисной станции на ip pbx Asterisk . До сих пор у меня не было сильного понятия и опыта, как настроить Asterisk для работы не используя FreePbx , то есть, используя только конфигурационные файлы и консоль. Да и сейчас я только учусь этому. В интернете все настройки сводятся к решению той или иной задачи, но я не увидел статьи способной дать хотя бы базу для минимальной настройки IP станции. Может плохо искал.

Итак, я собрал и установил asterisk в папке /etc/asterisk уйма конфигурационных файлов. Что же дальше?

1. Возможность внутренним абонентам совершать вызовы друг другу

2. Настройка внешних линий с целью получения станцией услуги выхода на городские, междугородние номера и приема входящих звонков

3. Настройка возможности совершать вызовы абонентам на городские и междугородние номера. И принимать вызовы из города.

Вот три основные задачи, которые нужно решить, естественно схема может быть разной. То есть абоненты могут объединяться в группы, внешних операторов связи может быть несколько, входящий вызов может быть отправлен на автоинформатор, очередь, а может быть на то и другое. Схема сервисов и услуг может различаться и усложняться, но три первых условия будут выполняться в любом случае.

Поэтому первое, что мы делаем - создаем внутренних абонентов (peer) в файле sip.conf

Абонент А будет иметь следующие настройки :

Disallow=all
allow=ulaw
allow=alaw
type=friend
username=101
secret=password
qualify=yes
context=101
callerid=101
host=dynamic
call-limit=1
canreinvite=yes
accountcode=101
amaflags=billing
deny=0.0.0.0/0
permit=192.168.0.66

Где:
disallow=all , запрещаем использовать все кодеки кроме G.711
allow=ulaw
allow=alaw

type=friend, этот параметр может принимать три значения:

- peer , этот тип используется для совершения входящих и исходящих вызовов. Для входящих вызовов, никогда не будет проверяться соответствие имени пользователя и пароля, а только соответствие с IP адресом и номером порта источника вызова.

- user запись, которая может только совершать входящие вызовы

- friend запись, которая одновременно и peer и user
username=101
secret=password
Логин и пароль соответственно

Периодически отправлять SIP сообщение типа Options, для проверки мониторинга доступности устройства для регистрации, полезно использовать при работе через NAT для сохранения значений в таблице трансляций

Имя контекста, с правилами маршрутизации

АОН нашего номера

host=dynamic
host ip с которого будет происходить регистрация

call-limit=1
(callcounter)
Ограничение одновременных вызов, здесь можно установить количество каналов

canreinvite=yes
(directmedia)

Этот параметр отвечает за процедуру RE- Invite , если no, то все вызовы будут проходить через Asterisk , если yes RTP поток будет отправляться между двумя устройствами минуя Asterisk

accountcode=101
amaflags=billing

CDR запись для поля accountcode будет иметь значение 101
Значение поля AMA flag для исходящих вызовов от этого SIP пользователя

deny=0.0.0.0/0
permit=192.168.0.66
ACL ip, кому разрешим регистрацию

Аналогично для абонента Б :

Disallow=all
allow=ulaw
allow=alaw
type=friend
username=102
secret=password
qualify=yes
context=102
callerid=102
host=dynamic
call-limit=1
canreinvite=yes
accountcode=102
amaflags=billing
deny=0.0.0.0/0
permit=192.168.0.67

Еще часть опций в пире которая может быть полезна:

transport=tcp,udp
Могу работать не только используя udp, требует установки tcpenable=yes в general
rtptimeout=180
rtpholdtimeout=420

Полезно для SIP клиентов, которые не выполняют Hangup при закрытии или отключении. В данном случае RTP сессия сможет сброситься самостоятельно по таймауту, rtpholdtimeout – если вызов на удержании

nat=force_rport,comedia

Если устройство находится за NAT, то фиксируем работу через rport, отправляем RTP пакеты обратно на IP адрес и порт, с которого они были получены, игнорируя информацию из SDP

defaultexpiry=60
Срок действия регистрации в секундах для входящих и исходящих регистраций

dtmfmode=rfc2833

Как будем работать с DTMF сигналами

1. Итак, задача один, настроить маршрутизацию между sip клиентами 101 и 102, в простейшем варианте решается одной строчкой в файле sip.conf и конфигах по include


exten => _XXX,1,Dial(SIP/${EXTEN},20,T)

sip.conf удобно эксплуатировать вот так:

Include => in_out_peer_local

Теперь абонент 101 сможет общаться с абонентом 102 и наоборот 102 сможет позвонить 101

2. Для создания условий, при которых внутренние абоненты смогут выходить на внешние линии, подключим станцию к оператору связи, используя все тот же sip

То есть создадим транк
type=peer
host=XX.XXX.XXX.XX
port=5060
fromdomain=ip нашей станции
nat=no
disallow=all
allow=ulaw
allow=alaw
allow=gsm
canreinvite=no
;allow=g722
trustrpid=yes
sendrpid=yes
dtmfmode=rfc2833
qualify=yes
insecure=invite,port
deny=0.0.0.0/0.0.0.0
permit=XX.XXX.XXX.XX/255.255.255.255
context=provide

Настройки транка очень похожи на настройки пира, в принципе это и есть пир, важные опции
fromdomain – устанавливаем fromdomain в sip пакете, чтобы можно было понять, куда вернуть sip пакеты нашей станции
trustrpid=yes
sendrpid=yes

Доверять или нет полученному Remote- Party- ID

insecure=invite,port

Не требуем аутентификацию входящих сообщений INVITE, не проверяем номер порта только соответствие ip адреса

3. Дело за малым, как только транк активирован, нужно прописать исходящую маршрутизацию для совершения вызовов абонентам А и Б
Стандарт де факто как бы гласит всегда сначала настраивать исходящую связь

Создаем контекст для совершения исходящих вызовов

Для исходящих вызовов на город


exten => _XXXXXX,1,Dial(SIP/ provider /${EXTEN})
exten => _XXXXXX,n,Hangup

Для исходящих вызовов на междугородние направления


exten => _8.,1,Dial(SIP/ provider /${EXTEN})
exten => _8.,n,Hangup

После того как исходящая связь заработала, настраиваем входящую

В простом случае без автоинформатора, групп и очередей это будут выглядеть так


exten => 2466754,1,Dial(SIP/${EXTEN})
exten => 2466754,n,Hangup

Аналогичным образом настраивается любая станция по принципу рассмотренных пунктов

Что нужно сделать перед установкой Обратитесь к разделу , если Вам необходимо инсталлировать АТС, которая должна справляться с большой нагрузкой, и Вы не уверены потянет ли ее Ваше программное и аппаратное обеспечение.Операционные системы: сервер Asterisk прекрасно работает на Linux системах, также была проделана большая работа участниками проекта по портированию сервера Asterisk на BSD платформу, включая FreeBSD, OpenBSD и Mac OS X. Однако, драйвер zaptel и драйверы ISDN каналов могут не поддерживаться на этих платформах. Обратитесь к разделу Операционные системы для сервера Asterisk, чтобы получить, специфичной для каждой операционной системы, информацию.В качестве альтернативы, Вы можете использовать методы, описанные на нижеприведенных страницах: Asterisk Install CDROM Asterisk Bootable CDROMИнструкция по быстрой установкеПрочтите раздел 10-минутный обзор сервера Asterisk, если Вы хотите узнать, что же может делать сервер Asterisk. В противном случае, этот раздел можно пропустить.Прочтите раздел Пошаговая инструкция по инсталляции Asterisk, где найдете информацию, начиная с настройки линукса, до первого телефонного вызова червез Ваш Asterisk. http://www.automated.it/guidetoasterisk.htm http://asterisk.net.au/ Руководство по инсталляции сервера Asterisk от гуру этого дела Требования к системе Вам не нужно ни какое специфичное оборудование для инсталляции и запуска сервера Asterisk. Необходимости в звуковой карте нет.Вам необходимо установить следующие программные пакеты перед компиляцией Asterisk: Исходники ядра (kernel sources)Заголовочные.h файлы для Вашего ядра (kernel headers)bison (необходим для обработки выражений в файле )Пакеты: openssl и openssl-dev или libssl-devlibnewt: необходим для работы интерфейса управления astman. Для сервера Asterisk он не требуется, но без этого пакета у Вас не будет приложения astman, которая является отдельной программой.Вам более не нужно устанавливать пакеты "readline" и "readline-devel" для Asterisk. Сервер поставляется со своей реализацией пакета "readline", который называется "editline".Если Вы планируете использовать дополнения для работы с базой mysql, установите пакеты для mysql, mysql_devel & mysql serverЕсли Вы планируете использовать интерфейсные карты от Digium, то Вам необходимо будет установить модуль ядра для поддержки драйвера устройства Zaptel, перед тем, как Вы сможете использовать их в Asterisk. Однако, может вы хочется сначала скачать и установить Asterisk - протестировать работу SIP и IAX телефонов - и уже после этого добавить поддержку для ваших карт Digium. Инсталляция Посмотрите раздел "Операционные системы на которых работает сервер Asterisk", чтобы получить дополнительные инструкции, которые зависят от используемой операционной системы.Как получить сервер Asterisk Asterisk таймер : нужен для конференции MeetMe и для IAX2 транков.Подготовка утилит сторонних разработчиков Обратите внимание на секцию утилиты сторонних разработчиков на основной странице посвященной , на предмет получения информации о следующих приложениях:
Музыка ожидания (music-on-hold): использование mpg123voicemail: для него требуется sendmail, для отправки уведомлений по Email.call detail recording: Сервер Asterisk может записывать эту информацию в CSV файлы, в базу данных PostgreSQL или в SQLite. Обратите внимание на пакет дополнений asterisk_addons из SVN .odbc: для хранения и получения данных из других баз данных (отличных от MySQL).кодек speex: требуется установка дополнительных библиотек.Синтезатор речи: FestivalРаспознавание речи: интеграция с приложением Sphinx.

Настройке Asterisk посвящены сайты, форумы и целые порталы типа voip-info.org. Но всегда есть люди, для которых эта тема – дремучий лес, а запустить продукт надо «вчера». Ещё полтора месяца назад я про Asterisk знал только то что он есть. Данный труд призван лишь несколько облегчить жизнь тем, кто окажется в такой же ситуации после меня. В нём могут быть ошибки любой степени «чайниковости». Если вы гуру настройки Asterisk – укажите на ошибку, я поправлю, потомки будут вам благодарны.

Сначала было слово

В некоторый момент времени моими усилиями стратегия развития инфраструктуры компании была перевёрнута буквально с ног на голову. Были очерчены цели и задачи и стало понятно, что нам нужна динамичная, мобильная серверная инфраструктура, чтобы экономить деньги, чтобы можно было в случае каких-то проблем быстро восстанавливаться и/или подниматься в другом месте, чтобы проще было ухаживать за железом и т.п.

Затем было дело

В общем, на бумаге всё было красиво и легко. Дело встало только за развёртыванием и настройкой Asterisk.
Сначала были закуплены два простеньких сервера. Core i7-930, 12GB памяти и по 12ТБ на SATA-дисках. На эти серверы был установлен бесплатный Xen Server и развёрнуты виртуальные серверы и рабочие станции для удалённых сотрудников.
В качестве внешнего хранилища используется QNAP-овский NAS, который достался в наследство.
Терабайтные локальные хранилища нужны только для хранения медиа-банка, который довольно велик. Сами серверы все вместе весят меньше 3-х терабайт.
Одним из серверов стал Asterisk на замену старичку Panasonic TDE-200. Т.к. компании необходима дешёвая связь, прямые номера в разных странах, и бесплатные переговоры между сотрудниками, то альтернативы ему за 12 шекелей в общем-то нет.

День первый: Make World

Настраивать Asterisk было решено на родной для Citrix Xen операционной системе CentOS. Тот же , только сбоку. Оговорюсь сразу: я всю жизнь админил Windows, а *nix-ами только “игрался” в виртуалках, не считая пары веб-серверов на железе. Поэтому, данное развёртывание Asterisk в Citrix Xen отдаёт некоторой наивностью с точки зрения умудрённых опытом людей.
В общем, я пошел по проверенному пути: открывается на ноуте подробная how-to инструкция для чайников из официальных мануалов и выполняется на сервере буквально и безинициативно. Играть в героев-наладчиков можно будет позже, когда всё будет настроено и работать в состоянии “по умолчанию” и будет сделан первый full backup.

День второй: yum install asterisk -y

Не то чтобы я был очень удивлён, но, тем не менее, я пошёл к знакомому связисту за советом по настройке Asterisk, когда обнаружил, что живых астерисков аж три практически самостоятельных форка: 1.4, 1,6 и 1.8. У каждого из них свои тараканы и примочки. Т.к. я не обольщался надеждой одолеть астериск с наскоку, то решил поставить версию 1.4, как у друга, дабы иметь максимально возможную совместимость конфигов. Хотя, впоследствии, пришлось подниматься до 1.6 из-за отсутствия поддержки TCP в 1.4, когда возникла такая потребность.
Для этого к CentOS был прилажен digium-овский репозиторий и Asterisk ставился из него.
Установка прошла вполне ожидаемо, без сучка и задоринки. В основном, использовался толковый пошаговый roadmap с voip-info .
Сразу же были поправлены iptables, чтобы разрешить трафик по SIP-портам.
Не сразу же, но будущим поколениям рекомендую установить и настроить немедленно пакет по имени fail2ban . Совершенно не лишняя программа на сервере, выставленном в интернет. У меня через день после установки весь Тайвань в drop ушел, судя по iptables.

День третий: ТЗ на функционал АТС

Начинаем самое интересное – планирование. Перед любым процессом настройки надо записать и структурировать все пожелания заказчика и обязательно подписать соглашение, чтобы избежать в дальнейшем конфликтов вида “нет, я говорил совсем другое”. В моём случае заказчик - это компания, в которой я работаю, но это ничего не меняет. Пишем техническое задание на функционал, обсуждаем его с ответственными людьми, утрясаем разногласия и подписываем финальный вариант и приступаем к настройке Asterisk.
ТЗ на конфигурацию получилось такое:

  • Нумерация телефонов четырёхзначная.
  • Первая цифра номера - признак страны расположения офиса.
  • Нумерация в каждом отделе начинается с первой цифры очередной сотни.
  • Каждый отдел является отдельной звонковой группой.
  • Если вызываемый абонент любым образом недоступен для вызова, то звонок перекидывается на всю группу.
  • Логика обслуживания входящих вызовов:
  • Поднять трубку.
  • Проиграть приветствие.
  • Проиграть рекламу про текущие акции.
  • Проиграть варианты вызова различных отделов или предложить набрать номер абонента.
  • Начиная с пункта 2 ожидать ввода каких-либо команд.
  • После окончания п.4 ждать ввода команд ещё 10 секунд.
  • В случае отсутствия команд снова проиграть варианты вызова.
  • Если абонент всё-равно тупит, то перекинуть звонок на секретаря.
  • Пользователям, которым необходим такой сервис, прикрутить голосовую почту. В этом случае, если пользователь любым образом недоступен для вызова, перекинуть звонок на голосовую почту.
  • По умолчанию, разрешены вызовы только на Россию и Италию - страны, где в основном работает наша компания. Остальные направления открываются по мере надобности самыми узкими масками, т.к. все мы помним страшные истории про “кубинских телефонистов” и не хотим, чтобы в один прекрасный день у нас АТС внезапно во все свои 50 каналов начала звонить в Сьерра-Леоне по 14 долларов в минуту для каждого канала.

На первый взгляд задание простое и настройка Asterisk не займет много времени, а на практике на его согласование ушло довольно много крови. Особенно, на согласование запрета всех направлений, кроме явно разрешенных. С этим клиенту пришлось согласиться только перед лицом неизбежной, в противном случае, необходимости конфигурации VPN на каждом подключающемся к АТС устройстве. Просто я стараюсь придерживаться максимально простых и понятных конфигураций, а клиенту всегда кажется, что добавить какой-то функционал к системе - это “всего-лишь пару кнопок нажать”.

День четвёртый: nano sip.conf

Начинается самое интересное: процесс настройки Asterisk.
Чтобы не затягивать и без того длинную статью, отягощая её подробным описанием мук начальной конфигурации и последующего тюнинга, я просто покажу текущие мои конфиги с комментариями что к чему.


context=default ;контекст по умолчанию
allowguest=no ;никаких гостей, мы никого не ждём
allowoverlap=no ;Этот параметр определяет разрешаем мы или нет передачу вызова с дополнительными цифрами. Мы – не разрешаем.
alwaysauthreject=yes ;Этот параметр означает, что все ошибки для внешнего клиента выглядят одинаково – ошибка авторизации. Призван осложнять взлом АТС.
useragent=Orgue de Barbaris ;Это – как мы представляемся у других. Я назвался по имени первого патефона, чтобы облегчить техподдержке провайдеров поиск диалогов с моей АТС, т.к. периодически приходится с ними общаться.
defaultexpiry=360 ;Интервал обязательной перерегистрации клиентов.
callevents=yes ;Это на будущее, чтобы клиент мог поиграть в управление music on hold
limitonpeer=yes ;Считаем исходящие и входящие вызовы пиров вместе.
tcpenable=yes ;Разрешаем TCP протокол для SIP.
rtptimeout=60 ;Сколько времени клиент может не откликаться, прежде чем будет кикнут из системы.
language=ru ;Язык системы. Используется для голосового меню.
bindport=5060 ;Порт по умолчанию. Можно изменить для усложнения вычисления и взлома АТС, но решение спорное.
bindaddr=0.0.0.0 ;у меня стоят нули, т.к. АТС имеет два интерфейса и на обоих висят клиенты.
srvlookup=yes
tos_sip=cs3 ; http://www.voip-info.org/wiki/view/Asterisk+sip+tos
tos_audio=efdisallow=all ;сначала запрещаем все кодеки
allow=alaw ;затем, разрешаем только те, что хотим использовать. Порядок значения не имеет.
allow=g729
allow=g723
allow=ulaw

canreinvite=no ;Этот параметр запрещает клиентам общаться напрямую. Общение происходит только через сервер. У меня это сделано так потому что мобильные клиенты используют платные клиенты с протоколом g.729а, а стационарные сидят на бесплатных клиентах без оного. Поэтому, я предпочёл напрячь сервер транскодингом alawg.729a на лету в пользу качества связи для мобильных клиентов. Тем более что Core i7-930 вообще не замечает этой нагрузки.

Добрый день, в этой статье я расскажу как установить самый популярный сервер VoIP телефонии Asterisk. С помощью данного сервера Вы сможете организовать телефонию в офисе, дома, или реализовать автоматическое оповещение, но об этом я расскажу в других статьях. И так приступим к установки asterisk на ubuntu server.

Установить Asterisk на Ubuntu Server крайне просто, понадобится всего одна команда:


sudo apt-get install asterisk

Первым делом после установки Asterisk, необходимо отключить возможность принимать звонки анонимно. Для этого открываем файл sip.conf и снимаем комментарий со строки allowguest=no, так как по умолчанию там стоит Yes. Кстати для поиска данной строки в nano можно нажать Ctrl+W и ввести искомую часть строки и нажать на Enter, если таких слов несколько в тексте то, для продолжения поиска нажать Ctrl+W и Enter.


sudo nano /etc/asterisk/sip.conf

В этом же файле можем указать провайдеров VoIP и своих внутренних абонентов. Я использую оператора it-sekret, так как у него дешевые звонки it-sekret.ru . Для этого в конце файла добавляем

Для оператора:

Type=peer context=it-sekret host=xxx.it-sekret.ru username=USERNAME secret=PASSWORD fromuser=USERNAME nat=force_rport insecure=port,invite

Если у оператора нужна постоянная регистрация, например для входящих вызовов, то надо написать вот такую строку

Register => userID:[email protected]/userID

Где userID это имя пользователя выданное оператором и PASSWORD это пароль, xxx.it-sekret.ru адрес сервера выданный оператором.

Создаем внутреннего абонента:

Type=friend context=internal host=dynamic username=1001 secret=1234

После добавления этих записей сохраняем файл и выходим. Для того, чтоб применить настройки необходимо либо перезапустить сервер, либо сказать ему, чтоб он перечитал настройки. Этот способ лучше, так как если сервер у Вас действующий, то звонки которые сейчас идут не оборвутся.


sudo asterisk -r
reload
Настройка телефона или софтфона

Теперь настроим телефон или софтфон. Я использую X-lite, программных телефонов достаточно много, можете использовать на Ваш вкус. Настройки X-lite выполните как на скриншоте.

Для проверки правильности выполненных настроек в CLI Asterisk (далее просто CLI) выполните команду sip show peers

Настройка правил набора Asterisk.(Диал план)

Первым делом сделаем копию оригинального файла extension.conf


sudo mv /etc/asterisk/extensions.conf
/etc/asterisk/extensions.conf.bak

Теперь в extension.conf пропишем правило для исходящего звонка.


sudo nano /etc/asterisk/extensions.conf exten => _X.,1,Dial(SIP/it-sekret/${EXTEN})

В CLI выполним команду reload, для применения настроек. И теперь попробуем совершить звонок.

Звонок прошел, теперь надо настроить входящий звонок. Для этого нужно прописать правило набора.


sudo nano /etc/asterisk/extensions.conf exten => s,1,Dial(SIP/1001)

На этом простая настройка заканчивается, в следующих статьях я расскажу как сделать запись разговоров, настроить IVR, сделать CallBack(обратный звонок) с сайта и многое другое.

Asterisk - это решение для компьютерной телефонии с открытым исходным кодом, которое поддерживает протоколы VoIP, SIP и PJSIP для операционной системы Linux. Если подключить к компьютеру соответствующее оборудование, то с помощью Asterisk можно создать полноценную станцию ATC. Среди основных возможностей программы можно отметить голосовую почту, конференции, интерактивное голосовое меню и распределение звонков.

В этой статье мы рассмотрим как выполняется установка Asterisk 13 на Ubuntu 16.04. Самой новой версии программы нет в официальных репозиториях, так как используется она рядовыми пользователями на так часто, поэтому нам придется собрать ее из исходников.

Установка Asterisk на Ubuntu 16.04

Для сборки из исходников нам нужно будет выполнять большинство действий от имени суперпользователя, поэтому сразу же получим полные права в системе:

Обратите внимание, что если вы заходите зайти на свой сервер по ssh от имени root, то вам все равно придется подключаться от имени обычного пользователя, а уже потом переключаться в консоль root. Дальше вам нужно установить зависимости для работы программы:

apt-get install build-essential wget libssl-dev libncurses5-dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev uuid-dev git subversion

cd /usr/src
$ wget downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Для распаковки исходников наберите:

tar zxvf asterisk-13-current.tar.gz

Перед тем как компилировать программу нам нужно собрать и установить pjproject. Сначала скачаем исходники:

git clone git://github.com/asterisk/pjproject pjproject
$ cd pjproject
$ ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS="-O2 -DNDEBUG"
$ make dep make && make install
$ ldconfig
$ ldconfig -p|grep pj

Наконец теперь мы готовы выполнить сборку и установку Asterisk на Ubuntu 16.04:

cd .. contrib/scripts/get_mp3_source.sh
$ contrib/scripts/install_prereq install

Эти команды позволят вам установить некоторые зависимости для проигрывания mp3. Выполнение может занять некоторое время, а также вам нужно будет ввести код страны. Дальше начинаем сборку:

./configure && make menuselect && make && make install

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

Чтобы установить скрипты инициализации, которые позволят запускать asterisk автоматически, при каждой загрузке выполните:

make config ldconfig

Теперь вы можете запустить сервер asterisk и убедится, что все действительно работает:

service asterisk start

И смотрим информацию про утилиту через терминал:

Если все было сделано правильно и установка Asterisk на Ubuntu 16.04 прошла успешно, то все будет работать.

Настройка Asterisk в Ubuntu 16.04

Программа запускается от суперпользователя. Но нам нужно, чтобы ее можно было запустить ее от пользователя asterisk, а поэтому нужно выполнить еще несколько настроек. Так ваша система будет в большей безопасности. Для начала нужно остановить запущенный сервис:

groupadd asterisk
$ useradd -d /var/lib/asterisk -g asterisk asterisk

Дальше нам нужно изменить скрипт инициализации так, чтобы программа запускалась от имени нужного пользователя. Мы можем отредактировать файл /etc/default/asterisk вручную, но проще использовать такие команды:

sed -i "s/#AST_USER="asterisk"/AST_USER="asterisk"/g" /etc/default/asterisk
$ sed -i "s/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/g" /etc/default/asterisk

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

chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib/asterisk

Также укажем правильные настройки пользователя для полей runuser и rungroup в файле asterisk.conf:

sed -i "s/;runuser = asterisk/runuser = asterisk/g" /etc/asterisk/asterisk.conf

$ sed -i "s/;rungroup = asterisk/rungroup = asterisk/g" /etc/asterisk/asterisk.conf

Когда все будет готово запустите ранее остановленную службу или перезагрузите, если не останавливали:

sudo service asterisk start

Затем проверяем:

Если пользователь и группа - asterisk, а значит мы сделали все правильно.

Выводы

Вот и все. Установка Asterisk 13 на Ubuntu 16.04 завершена. Теперь вы можете перейти к дальнейшей настройке сети для совершения звонков между вашими абонентами прямо через интернет. В качестве клиентского программного обеспечения можно использовать любую программу, поддерживающую нужные протоколы, например Jitsi или Linphone.

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.