Сервер телефонии Asterisk Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:asterisk [2014/02/21 22:49]
[Звонки с/на Skype]
wiki:asterisk [2017/02/04 14:54] (текущий)
[Установка из исходников]
Строка 5: Строка 5:
 Голосовое меню, автоответчики,​ голосовая почта с доставкой аудиофайлов на email ящики, поддержка всех существующих протоколов обмена голосом и кодеков для них, видеозвонки и передача текстовой информации,​ возможность коммутации различных каналов,​ например,​ SIP и обычного телефона - это далеко не полный список возможностей Asterisk. Голосовое меню, автоответчики,​ голосовая почта с доставкой аудиофайлов на email ящики, поддержка всех существующих протоколов обмена голосом и кодеков для них, видеозвонки и передача текстовой информации,​ возможность коммутации различных каналов,​ например,​ SIP и обычного телефона - это далеко не полный список возможностей Asterisk.
  
-===== Установка ​из репозитория ​=====+===== Общие вопросы =====
  
 Asterisk доступен в репозиториях Ubuntu, однако настоятельно рекомендуется всегда ставить самую последнюю версию с [[http://​www.asterisk.org/​|официального сайта]],​ вручную компилируя её и все необходимые дополнительные модули. Asterisk доступен в репозиториях Ubuntu, однако настоятельно рекомендуется всегда ставить самую последнюю версию с [[http://​www.asterisk.org/​|официального сайта]],​ вручную компилируя её и все необходимые дополнительные модули.
Строка 22: Строка 22:
 Имейте ввиду, модули и утилиты DAHDI можно загрузить по отдельности,​ а можно в виде одного пакета DAHDI Complete. При этом в названии пакета DAHDI Complete всегда содержится два номера версии - первый для включённого в него пакета модулей DAHDI Linux, а второй - для DAHDI Tools. Вообще говоря эти номера могут и не совпадать. Имейте ввиду, модули и утилиты DAHDI можно загрузить по отдельности,​ а можно в виде одного пакета DAHDI Complete. При этом в названии пакета DAHDI Complete всегда содержится два номера версии - первый для включённого в него пакета модулей DAHDI Linux, а второй - для DAHDI Tools. Вообще говоря эти номера могут и не совпадать.
  
-Для сборки Asterisk вам потребуется компилятор GCC и некоторые сопутствующие библиотеки. ​Чтобы поставить всё ​необходимое достаточно просто запустить ​скрипт ''​install_prereq''​ из каталога ''​contrib/​scripts/''​ в исходных текстах Asterisk с параметром ''​install''​. Например,​ вот так:+Для сборки Asterisk вам потребуется компилятор GCC и некоторые сопутствующие библиотеки.Минимальный же набор ​необходимого можно поставить командой:
  
 <code bash> <code bash>
-sudo ./​contrib/​scripts/​install_prereq ​install+sudo apt-get ​install ​build-essential libncurses5-dev openssl libxml2-dev
 </​code>​ </​code>​
  
-Однако этот ​скрипт ставит очень много ​по сути бесполезного мусора. ​Минимальный же набор необходимого можно поставить командой:+Если вы собираете DAHDI кроме самого ​Asterisk, то так же понадобятся исходники ядра. 
 + 
 +===== Установка из репозитория ===== 
 + ​Чтобы поставить всё ​необходимое достаточно просто запустить ​скрипт ''​install_prereq''​ из каталога ''​contrib/​scripts/''​ в исходных текстах Asterisk с параметром ''​install''​. Например,​ вот так:
  
 <code bash> <code bash>
-sudo apt-get ​install ​build-essential libncurses5-dev openssl libxml2-dev+sudo ./​contrib/​scripts/​install_prereq ​install
 </​code>​ </​code>​
  
-Если вы собираете DAHDI кроме самого ​Asterisk, то так же понадобятся исходники ядра+Однако этот ​скрипт ставит очень много ​по сути бесполезного мусора
 FIXME FIXME
  
Строка 42: Строка 44:
 В статье будет описан процесс установки для сервера 12.04. Начнем с установки необходимых библиотек и дополнительных пакетов. В статье будет описан процесс установки для сервера 12.04. Начнем с установки необходимых библиотек и дополнительных пакетов.
 <code bash> <code bash>
-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 ​libtiff4 libtiff4-dev libaudiofile-dev subversion libsqlite3-dev</​code>​+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</​code>​
  
 [[http://​www.asterisk.org/​downloads/​dahdi|Качаем исходники DAHDI с утилитами.]] [[http://​www.asterisk.org/​downloads/​dahdi|Качаем исходники DAHDI с утилитами.]]
Строка 70: Строка 72:
  
  
-<​note>​Установка описана для Asterisk ​1.8.19.0 ​LTS, т.к. версия ​11 отличается от данной линейки.</​note>​ +<​note ​tip>Статья модифицирована ​под Asterisk ​13 LTS, т.к. ​старыми ​версиями врядли кто уже будет пользоваться.</​note>​ 
-Как было указано выше, берем последнюю LTS версию с [[http://​www.asterisk.org/​|официального сайта]],​ распаковываем и заходим в каталог исходников. +Как было указано выше, берем последнюю LTS версию с [[http://​www.asterisk.org/​|официального сайта]], а именно,​ со [[http://​www.asterisk.org/​downloads/​asterisk/​all-asterisk-versions|страницы загрузки]] всех версий, распаковываем и заходим в каталог исходников. В новых версиях Asterisk необходима установка дополнительных библиотек для работы [[wpru>​WebRTC]]. Для этого выполняем скрипт,​ входящий в комплект исходников Asterisk
-Выполняем+<code bash> 
 +contrib/​scripts/​install_prereq install 
 +</​code>​ 
 +После установки библиотек необходимо установить дополнительные пакеты libsrtp и pjproject, т.к. они необходимы для работы [[wpru>​WebRTC]]. 
 +<code bash> 
 +.contrib/​scripts/​install_prereq install-unpackaged 
 +</​code>​ 
 + 
 +Если вдруг возникнут ошибки,​ собираем всё ручками. 
 +<code bash> 
 +sudo su 
 +cd /usr/src/ 
 +git clone https://​github.com/​cisco/​libsrtp.git 
 +cd libsrtp 
 +./configure CFLAGS=-fPIC 
 +make libsrtp.a 
 +make uninstall 
 +make install 
 +cd .. 
 +echo "/​usr/​local/​lib"​ > /​etc/​ld.so.conf.d/​usr_local.conf 
 +ldconfig 
 + 
 +git clone https://​github.com/​asterisk/​pjproject.git 
 +cd pjproject 
 +./configure --enable-shared --with-external-speex --with-external-gsm --with-external-srtp --disable-sound --disable-resample 
 +make dep 
 +make 
 +make install 
 +ldconfig 
 +</​code>​ 
 +Жмем <​key>​Ctrl+D</​key>​ для выхода из рутовой консоли. 
 + 
 +Вот теперь можно продолжить установку Asterisk. ​Выполняем
 <code bash> <code bash>
 ./configure ./configure
Строка 84: Строка 118:
 Если вы делаете установку по ssh, то предварительно должны убедиться,​ что размер терминала больше,​ чем 80x25. Здесь необходимо включить нужные модули для компиляции. К примеру,​ в разделе Add-ons я включил модули format_mp3, app_mysql, cdr_mysql, т.к. дальше планируется установка панели управления [[http://​freepbx.org|FreePBX]]. В разделе Core Sound Packages включаем CORE-SOUNDS-EN-ALAW,​ CORE-SOUNDS-EN-GSM,​ CORE-SOUNDS-EN-G729,​ CORE-SOUNDS-RU-ALAW,​ CORE-SOUNDS-RU-GSM,​ CORE-SOUNDS-RU-G729 (куда же без великого и могучего :-D). Если вы делаете установку по ssh, то предварительно должны убедиться,​ что размер терминала больше,​ чем 80x25. Здесь необходимо включить нужные модули для компиляции. К примеру,​ в разделе Add-ons я включил модули format_mp3, app_mysql, cdr_mysql, т.к. дальше планируется установка панели управления [[http://​freepbx.org|FreePBX]]. В разделе Core Sound Packages включаем CORE-SOUNDS-EN-ALAW,​ CORE-SOUNDS-EN-GSM,​ CORE-SOUNDS-EN-G729,​ CORE-SOUNDS-RU-ALAW,​ CORE-SOUNDS-RU-GSM,​ CORE-SOUNDS-RU-G729 (куда же без великого и могучего :-D).
 <note tip>​Кратко поясню,​ для чего в трех кодеках. Для разных транков и внутренних номеров могут использоваться различные кодеки. Устанавливаемая АТС будет использовать основным кодеком alaw, потому что, к примеру,​ в Казахстане провайдер Казахтелеком использует для SIP телефонии как раз его и g729. В этом случае,​ будет использоваться меньше ресурсов сервера для транскодирования аудиопотоков. Внутренние номера так же будут использовать alaw, номера,​ подключаемые снаружи,​ через внешний интернет,​ будут работать на g729a, для уменьшения нагрузки на канал. В качестве терминала могут использоваться смартфоны с установленным SIP клиентом. Устойчивая связь была проверена при использовании этого кодека даже на EDGE, не говоря уже про 3G. Кодек GSM будет использоваться в GSM шлюзах.</​note>​ <note tip>​Кратко поясню,​ для чего в трех кодеках. Для разных транков и внутренних номеров могут использоваться различные кодеки. Устанавливаемая АТС будет использовать основным кодеком alaw, потому что, к примеру,​ в Казахстане провайдер Казахтелеком использует для SIP телефонии как раз его и g729. В этом случае,​ будет использоваться меньше ресурсов сервера для транскодирования аудиопотоков. Внутренние номера так же будут использовать alaw, номера,​ подключаемые снаружи,​ через внешний интернет,​ будут работать на g729a, для уменьшения нагрузки на канал. В качестве терминала могут использоваться смартфоны с установленным SIP клиентом. Устойчивая связь была проверена при использовании этого кодека даже на EDGE, не говоря уже про 3G. Кодек GSM будет использоваться в GSM шлюзах.</​note>​
 +<​note>​Если планируется установка FreePBX, необходимо убедиться что для сборки отмечен модуль cdr_odbc.</​note>​
 Далее в разделе Music On Hold File Packages включаем модуль MOH-OPSOUND-WAV просто для того, чтоб он установился. После установки эти мелодии можно будет заменить на свои. Последний раздел Extras Sound Packages. Тут опять же включаем модули для выбранных кодеков ALAW, GSM и G729. Из корневого раздела нажимаем <​key>​Esc</​key>​ и видим, что нам предложили три варианта выхода. Смело жмем <​key>'​S'</​key>​ для сохранения сделанных изменений. Далее в разделе Music On Hold File Packages включаем модуль MOH-OPSOUND-WAV просто для того, чтоб он установился. После установки эти мелодии можно будет заменить на свои. Последний раздел Extras Sound Packages. Тут опять же включаем модули для выбранных кодеков ALAW, GSM и G729. Из корневого раздела нажимаем <​key>​Esc</​key>​ и видим, что нам предложили три варианта выхода. Смело жмем <​key>'​S'</​key>​ для сохранения сделанных изменений.
  
Строка 147: Строка 182:
 sudo chmod -R u=rwX,​g=rX,​o= /​etc/​asterisk sudo chmod -R u=rwX,​g=rX,​o= /​etc/​asterisk
 </​code>​ </​code>​
-В файле /​etc/​asterisk/​asterisk.conf заменяем 
-**astrundir => /var/run** 
-на 
-**astrundir => /​var/​run/​asterisk**. 
 В файле /​etc/​default/​asterisk раскомментируем две строчки. В файле /​etc/​default/​asterisk раскомментируем две строчки.
 **AST_USER="​asterisk"​ **AST_USER="​asterisk"​
Строка 172: Строка 203:
  ​Вот,​ собственно,​ и весь процесс установки этого замечательного продукта.  ​Вот,​ собственно,​ и весь процесс установки этого замечательного продукта.
 ===== Постскриптум ===== ===== Постскриптум =====
- ​Для ознакомления с языком программирования Asterisk, можете почитать книгу [[http://​asterisk.ru/​store/​files/​Asterisk_RU_OReilly_DRAFT.pdf|Asterisk™ - будущее телефонии]]. А, изучив язык программирования и структуру конфигурационных файлов Asterisk, вы будете обладать поистине безграничными возможностями "​взрослой"​ АТС в вашем офисе. Хотя, вопреки различным оппозиционно настроенным к этому продукту людям, ​я бы не стал ​называть этот продукт "​детской АТС"​ или "​недостанцией"​. Есть поклонники АТС Panasonis, есть Nortel. У каждой есть свои преимущества. Но нет основного,​ бесплатности. Тот же Panasonic берет деньги за лицензии на внешние подключения,​ лицензии на системный телефон,​ берет еще за множество вещей, которые в Asterisk уже есть. Если у вас в офисе 4-6 телефона и одна внешняя линия, тут, бесспорно,​ лучше взять недорогую железку,​ прокинуть провода и настроить АТСку как надо. При количестве телефонов больше 8, по моему мнению, лучше уже перейти на цифру. В таких офисах уже есть, как правило,​ сетевая инфраструктура. Встроить в нее несколько SIP телефонов и станцию будет не сложно. О преимуществах перед аналоговой станцией говорить не приходится. Никаких подвижных контактов,​ коммутирующих элементов. Никаких плинтов,​ кроссов,​ если не используется аналоговая часть. Безпроблемное подключение различных VoIP и GSM шлюзов,​ интеграция с провайдерами IP телефонии. Объединение офисов в других городах в общее адресное пространство. Автообзвон клиентов,​ получение и передача данных в различные бухгалтерские и CRM системы. При всем при этом, система достаточно безопасна в пользовании при правильной настройке. Хотелось бы надеяться,​ что данная статья кому-то поможет установить Asterisk.+ ​Для ознакомления с языком программирования Asterisk, можете почитать книгу [[http://​asterisk.ru/​store/​files/​Asterisk_RU_OReilly_DRAFT.pdf|Asterisk™ - будущее телефонии]]. А, изучив язык программирования и структуру конфигурационных файлов Asterisk, вы будете обладать поистине безграничными возможностями "​взрослой"​ АТС в вашем офисе. Хотя, вопреки различным оппозиционно настроенным к этому продукту людям, называть этот продукт "​детской АТС"​ или "​недостанцией"​, по меньшей мере, неправильно. Есть поклонники АТС Panasonis, есть Nortel. У каждой есть свои преимущества. Но нет основного,​ бесплатности. Тот же Panasonic берет деньги за лицензии на внешние подключения,​ лицензии на системный телефон,​ берет еще за множество вещей, которые в Asterisk уже есть. Если у вас в офисе 4-6 телефона и одна внешняя линия, тут, бесспорно,​ лучше взять недорогую железку,​ прокинуть провода и настроить АТСку как надо. При количестве телефонов больше 8, лучше уже перейти на цифру. В таких офисах уже есть, как правило,​ сетевая инфраструктура. Встроить в нее несколько SIP телефонов и станцию будет не сложно. О преимуществах перед аналоговой станцией говорить не приходится. Никаких подвижных контактов,​ коммутирующих элементов. Никаких плинтов,​ кроссов,​ если не используется аналоговая часть. Беспроблемное подключение различных VoIP и GSM шлюзов,​ интеграция с провайдерами IP телефонии. Объединение офисов в других городах в общее адресное пространство. Автообзвон клиентов,​ получение и передача данных в различные бухгалтерские и CRM системы. При всем при этом, система достаточно безопасна в пользовании при правильной настройке. Хотелось бы надеяться,​ что данная статья кому-то поможет установить Asterisk.
  
 <note important>​Удачи в освоении продукта!</​note>​ <note important>​Удачи в освоении продукта!</​note>​
Строка 187: Строка 218:
 <​code>​dpkg -i skype.deb</​code>​ <​code>​dpkg -i skype.deb</​code>​
  
-Для работы SipToSis необходима Java версии не ниже 1.5. Установим:​ +Для работы SipToSis необходима Java версии не ниже 1.5.  
-<​code>​sudo apt-get install ​sun-java6-jre</​code>​+ 
 +Добавляем репозитарий webupd8team. Более подробную информацию можете прочитать на [[https://​launchpad.net/​~webupd8team/​+archive/​java]] 
 +<​code>​sudo add-apt-repository ppa:​webupd8team/​java  
 +sudo apt-get update</​code>​ 
 +Установим ​java
 +<​code>​sudo apt-get install ​oracle-java7-installer</​code>​
  
 [[http://​www.mhspot.com/​sts/​siptosis_download.php|Cкачаем SipToSis]]. [[http://​www.mhspot.com/​sts/​siptosis_download.php|Cкачаем SipToSis]].
Строка 197: Строка 233:
  
 Теперь настроим asterisk. ​ Теперь настроим asterisk. ​
 +
 В ''​users.conf''​ добавим:​ В ''​users.conf''​ добавим:​
 <​file>​[Skype] <​file>​[Skype]
Строка 212: Строка 249:
 busylevel=1 busylevel=1
 </​file>​ </​file>​
 +
 В ''​extensions.conf''​ добавим В ''​extensions.conf''​ добавим
 <​file>​exten => 1001,​1,​Dial(SIP/​Skype/​echo123)</​file>​ <​file>​exten => 1001,​1,​Dial(SIP/​Skype/​echo123)</​file>​
  
 И перезагрузим asterisk. И перезагрузим asterisk.
 +<​file>​sudo /​etc/​init.d/​asterisk restart</​file>​
  
 Теперь правим конфиг SipToSis: Теперь правим конфиг SipToSis:
Строка 248: Строка 287:
  
 Чтобы принимать входящие звонки,​ в ''/​etc/​siptosis/​SkypeToSipAuth.props''​ прописываем соответствующее правило. Например:​ Чтобы принимать входящие звонки,​ в ''/​etc/​siptosis/​SkypeToSipAuth.props''​ прописываем соответствующее правило. Например:​
-<​file>​*,​sip:​user1@127.0.0.1:​5060</​file> ​— перенаправлять все входящие звонки Skype SIP-юзеру ​"//user1//". Естественно,​ нужно создать в ''​extensions.conf''​ контекст "''​Skype''",​ в котором разрешить звонки на этот extension+<​file>​*,​sip:​user1@127.0.0.1:​5060</​file> ​-перенаправлять все входящие звонки Skype SIP-юзеру //"user1"//.
  
 +Естественно,​ нужно создать в ''​extensions.conf''​ контекст "''​Skype''",​ в котором разрешить звонки на этот extension. ​
 ===== Ссылки ===== ===== Ссылки =====
   * [[http://​asterisk.ru/​store/​files/​Asterisk_RU_OReilly_DRAFT.pdf|Asterisk:​ будущее телефонии]] — книга, с которой следует начинать серьёзное знакомство с Asterisk  ​   * [[http://​asterisk.ru/​store/​files/​Asterisk_RU_OReilly_DRAFT.pdf|Asterisk:​ будущее телефонии]] — книга, с которой следует начинать серьёзное знакомство с Asterisk  ​
   * [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Installing+Asterisk+From+Source|Статья про установку из исходников на официальном ресурсе документации Asterisk (англ.)]]   * [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Installing+Asterisk+From+Source|Статья про установку из исходников на официальном ресурсе документации Asterisk (англ.)]]
   * [[http://​www.mhspot.com/​sts/​siptosis.html|SIP to Skype Gateway]]   * [[http://​www.mhspot.com/​sts/​siptosis.html|SIP to Skype Gateway]]
 +  * [[http://​habrahabr.ru/​post/​236291/​|Подготовка Asterisk для работы с WebRTC]]
  
 {{tag>​FIXME Администрирование Asterisk Телефония}} {{tag>​FIXME Администрирование Asterisk Телефония}}