Установка asterisk без GUI интерфейса

Posted by

Самое важное и нужное — это уметь настраивать и использовать в повседневного установленный без каких-либо графических/Webориентированных оснасток, потому как так мы меньше всего знаем как что работает, многое от Вас скрыто за задействованными скриптами.

Базовая установка Asterisk состоит из четырёх частей:

  1. Библиотека LibPRI. Эта библиотека предназначена для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface).
  2. Модули поддержки телекоммуникационного оборудования DAHDI.
  3. Утилиты DAHDI.
  4. Собственно сам сервер Asterisk.

Ставить их необходимо именно в таком порядке.

ekzorchik@srv-host:~$ apt-cache show asterisk | grep Version

Version: 1:11.7.0~dfsg-1ubuntu1

  • The libpri library allows Asterisk to communicate with ISDN connections.You’ll only need this if you are going to use DAHDI with ISDN interface hardware (such as T1/E1/J1/BRI cards).
  • The DAHDI library allows Asterisk to communicate with analog and digital telephones and telephone lines, including connections to the Public Switched Telephone Network, or PSTN.

Пошаговый опыт преобщения к использованию Asterisk:

ekzorchik@srv-host:~$ sudo rm -Rf /var/lib/apt/lists/

[sudo] password for ekzorchik:

ekzorchik@srv-host:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-host:~$ uname -a && lsb_release -a

Linux srv-host 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: .4 LTS

Release: 14.04

Codename: trusty

Затем устанавливаем необходимые пакеты и библиотеки:

ekzorchik@srv-host:~$ sudo apt-get install libncurses5-dev openssl libssl-dev zlib1g zlib1g-dev mpg123 linux-headers-`uname -r` build-essential mysql-server libmysqlclient15-dev php5 php5-cli php5-mysql php5-gd php-pear apache2 curl sox bison flex cpp g++ gcc make libauthen-pam-perl libio-pty-perl libnet-ssleay-perl libxml2 libxml2-dev libtiff5 libtiff5-dev libaudiofile-dev subversion libsqlite3-dev libghc-uuid-dev uuid-dev libgtk2.0-dev -y

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user:712mbddr@

ekzorchik@srv-host:~$ sudo mysql_secure_installation

ekzorchik@srv-host:~$ wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz

ekzorchik@srv-host:~$ tar zxf dahdi-linux-complete-current.tar.gz

ekzorchik@srv-host:~$ cd dahdi-linux-complete-2.11.1+2.11.1/

ekzorchik@srv-host:~/dahdi-linux-complete-2.11.1+2.11.1$ sudo make all

ekzorchik@srv-host:~/dahdi-linux-complete-2.11.1+2.11.1$ sudo make install

ekzorchik@srv-host:~/dahdi-linux-complete-2.11.1+2.11.1$ sudo make config

ekzorchik@srv-host:~/dahdi-linux-complete-2.11.1+2.11.1$ cd ~/

ekzorchik@srv-host:~$ wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz

ekzorchik@srv-host:~$ tar zxf libpri-1.4-current.tar.gz

ekzorchik@srv-host:~$ cd libpri-1.4.15/

ekzorchik@srv-host:~/libpri-1.4.15$ sudo make

ekzorchik@srv-host:~/libpri-1.4.15$ sudo make install

ekzorchik@srv-host:~/libpri-1.4.15$ cd ~/

Если на Asterisk будет использовать возможность работы с факсами:

ekzorchik@srv-host:~$ wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre21.tgz

ekzorchik@srv-host:~$ tar zxf spandsp-0.0.6pre21.tgz

ekzorchik@srv-host:~$ cd spandsp-0.0.6/

ekzorchik@srv-host:~/spandsp-0.0.6$ ./configure

ekzorchik@srv-host:~/spandsp-0.0.6$ sudo make

ekzorchik@srv-host:~/spandsp-0.0.6$ sudo make install

ekzorchik@srv-host:~/spandsp-0.0.6$ cd ~/

Теперь скачиваем самый последний пакет Asterisk с официального сайта:

ekzorchik@srv-host:~$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

ekzorchik@srv-host:~$ tar zxf asterisk-13-current.tar.gz

устанавливаем дополнительные библиотеки для работы с WebRTC:

ekzorchik@srv-host:~$ sudo ./asterisk-13.7.2/contrib/scripts/install_prereq install

ITU-T telephone code: 7

#############################################

## install completed successfully

ekzorchik@srv-host:~$ cd asterisk-13.7.2/

ekzorchik@srv-host:~/asterisk-13.7.2$ ./configure

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo contrib/scripts/get_mp3_source.sh

Exported revision 202.

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo make menuselect

Add-ons (See README-addons.txt): отмечаем клавишей «Enter» format_mp3, а затем нажимаем клавишу F12 для сохранения внесенных изменений и выхода из меню добавление/удаления задействованных модулей.

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo make

+——— Asterisk Build Complete ———+

+ Asterisk has successfully been built, and +

+ can be installed by running: +

+ +

+ make install +

+——————————————-+

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo make install

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo make samples

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo make config

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo ldconfig

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo update-rc.d -f asterisk remove

ekzorchik@srv-host:~/asterisk-13.7.2$ sudo update-rc.d asterisk defaults

ekzorchik@srv-host:~/asterisk-13.7.2$ cd ~/

Теперь установим пакеты аудиофайлов:

ekzorchik@srv-host:~$ cd /var/lib/asterisk/sounds/

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-wav-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-g722-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo tar xf asterisk-core-sounds-en-g722-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo tar xf asterisk-core-sounds-en-wav-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo tar xf asterisk-core-sounds-ru-g722-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo tar xf asterisk-core-sounds-ru-wav-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo tar xf asterisk-extra-sounds-en-g722-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ sudo tar xf asterisk-extra-sounds-en-wav-current.tar.gz

ekzorchik@srv-host:/var/lib/asterisk/sounds$ cd ~/

Запускаем установленный Asterisk:

ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk status

* asterisk is not running

ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk start

* Starting Asterisk PBX: asterisk [ OK ]

ekzorchik@srv-host:~$ sudo asterisk -rvvvcd

Parsing /etc/asterisk/asterisk.conf

Seeding global EID ’08:00:27:09:b7:78′ from ‘eth0’ using ‘siocgifhwaddr’

Asterisk 13.7.2, Copyright (C) 1999 — 2014, Digium, Inc. and others.

Created by Mark Spencer <markster@digium.com>

Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.

This is free software, with components licensed under the GNU General Public

License version 2 and other licenses; you are welcome to redistribute it under

certain conditions. Type ‘core show license’ for details.

=========================================================================

Connected to Asterisk 13.7.2 currently running on srv-host (pid = 10975)

Core debug was OFF and is now 1.

srv-host*CLI>

Чтобы выйти из консоли Asterisk нужно нажать сочетание клавиш Ctrl + C или же набрать на клавиатуре quit и нажать Enter:

srv-host*CLI> quit

Asterisk cleanly ending (0).

Executing last minute cleanups

Asterisk ending (0).

Только что установленный Asterisk по умолчанию работает с правами суперпользователя (он же root):

ekzorchik@srv-host:~$ ps aux | grep asterisk

root 10975 3.2 1.3 1775344 53060 ? Ssl 08:02 0:04 /usr/sbin/asterisk

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

ekzorchik@srv-host:~$ sudo adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk

ekzorchik@srv-host:~$ sudo adduser asterisk dialout

ekzorchik@srv-host:~$ sudo adduser asterisk audio

ekzorchik@srv-host:~$ sudo adduser www-data asterisk

Создаю каталог запуска:

ekzorchik@srv-host:~$ sudo mkdir -p /var/run/asterisk/

Изменяю права на нужные каталоги:

ekzorchik@srv-host:~$ sudo mkdir -p /var/run/asterisk/

ekzorchik@srv-host:~$ sudo chown -R asterisk:asterisk /var/lib/asterisk/

ekzorchik@srv-host:~$ sudo chown -R asterisk:asterisk /var/log/asterisk/

ekzorchik@srv-host:~$ sudo chown -R asterisk:asterisk /var/run/asterisk/

ekzorchik@srv-host:~$ sudo chown -R asterisk:asterisk /var/spool/asterisk/

ekzorchik@srv-host:~$ sudo chown -R asterisk:asterisk /usr/lib/asterisk/

ekzorchik@srv-host:~$ sudo chown -R asterisk:asterisk /dev/dahdi

chown: cannot access ‘/dev/dahdi’: No such file or directory

ekzorchik@srv-host:~$ sudo chmod -R u=rwX,g=rX,o= /var/lib/asterisk/

ekzorchik@srv-host:~$ sudo chmod -R u=rwX,g=rX,o= /var/log/asterisk/

ekzorchik@srv-host:~$ sudo chmod -R u=rwX,g=rX,o= /var/run/asterisk/

ekzorchik@srv-host:~$ sudo chmod -R u=rwX,g=rX,o= /var/spool/asterisk/

ekzorchik@srv-host:~$ sudo chmod -R u=rwX,g=rX,o= /usr/lib/asterisk/

ekzorchik@srv-host:~$ sudo chmod -R u=rwX,g=rX,o= /dev/dahdi

chmod: cannot access ‘/dev/dahdi’: No such file or directory

ekzorchik@srv-host:~$ sudo chown -R root:asterisk /etc/asterisk/

ekzorchik@srv-host:~$ sudo chmod -R u=rwX,g=rX,o= /etc/asterisk

В файле /etc/default/asterisk раскомментируем две строчки:

ekzorchik@srv-host:~$ sudo nano /etc/default/asterisk

AST_USER="asterisk"

AST_GROUP="dialout"

Вот теперь можно запустить Asterisk.

ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk stop

* Stopping Asterisk PBX: asterisk [ OK ]

ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk start

* Starting Asterisk PBX: asterisk [ OK ]

ekzorchik@srv-host:~$ ps aux | grep aster

asterisk 11267 10.2 0.7 1071536 29848 ? Ssl 08:15 0:01 /usr/sbin/asterisk -U asterisk -G dialout

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

ekzorchik@srv-host:~$ sudo rm -Rf /var/lib/apt/lists/

[sudo] password for ekzorchik:

ekzorchik@srv-host:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-host:~$ apt-cache show asterisk | grep Version

Version: 1:11.7.0~dfsg-1ubuntu1

ekzorchik@srv-host:~$ sudo nano /etc/apt/sources.list

deb http://ppa.launchpad.net/jan-hoffmann/asterisk13/ubuntu trusty main

deb-src http://ppa.launchpad.net/jan-hoffmann/asterisk13/ubuntu trusty main

W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 66FF47349C245DE2

ekzorchik@srv-host:~$ gpg --keyserver keyserver.ubuntu.com --recv 66FF47349C245DE2

ekzorchik@srv-host:~$ gpg --export --armor 66FF47349C245DE2 | sudo apt-key add -

OK

ekzorchik@srv-host:~$ sudo apt-get update

ekzorchik@srv-host:~$ apt-cache show asterisk | grep Version

Version: 1:13.7.2~dfsg-0~ppa1

Version: 1:11.7.0~dfsg-1ubuntu1

ekzorchik@srv-host:~$ sudo apt-get install asterisk -y

ekzorchik@srv-host:~$ sudo service asterisk status

* Asterisk PBX is running

ekzorchik@srv-host:~$ sudo asterisk -rvvvv

Asterisk 13.7.2~dfsg-0~ppa1, Copyright (C) 1999 — 2014, Digium, Inc. and others.

Created by Mark Spencer <markster@digium.com>

Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.

This is free software, with components licensed under the GNU General Public

License version 2 and other licenses; you are welcome to redistribute it under

certain conditions. Type ‘core show license’ for details.

=========================================================================

Connected to Asterisk 13.7.2~dfsg-0~ppa1 currently running on srv-host (pid = 17554)

srv-host*CLI> sip show peers

Name/username Host Dyn Forcerport Comedia ACL Port Status Description

0 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 0 offline]

Так лучше ставить из репозитариев чем разгребать сотню другую проблем ручной компиляции и установки.

На этом всё, с уважением автор блога — ekzorchik.