Самое важное и нужное — это уметь настраивать и использовать в повседневного установленный Asterisk без каких-либо графических/Web–ориентированных оснасток, потому как так мы меньше всего знаем как что работает, многое от Вас скрыто за задействованными скриптами.
Базовая установка Asterisk состоит из четырёх частей:
- Библиотека LibPRI. Эта библиотека предназначена для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface).
- Модули поддержки телекоммуникационного оборудования DAHDI.
- Утилиты DAHDI.
- Собственно сам сервер 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: Ubuntu 14.04.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.