Asterisk - это открытый программный сервер телефонии, значительно превосходящий по функционалу все другие существующие решения для организации офисных АТС, включая самые дорогие отдельные телефонные станции Enterprise класса. В сочетании с необходимым интерфейсным оборудованием, обеспечивающим подключение к компьютера к существующим телефонным сетям, Asterisk может воистину всё, что вы только способны себе представить, и даже больше. И это при том, что сам Asterisk является полностью открытым проектом - вам необходимо всего лишь купить интерфейсные платы и подходящий по мощности компьютер, и вы сможете создать АТС любого уровня и сложности.
Голосовое меню, автоответчики, голосовая почта с доставкой аудиофайлов на email ящики, поддержка всех существующих протоколов обмена голосом и кодеков для них, видеозвонки и передача текстовой информации, возможность коммутации различных каналов, например, SIP и обычного телефона - это далеко не полный список возможностей Asterisk.
Установка
Asterisk доступен в репозиториях Ubuntu, однако настоятельно рекомендуется всегда ставить самую последнюю версию с официального сайта, вручную компилируя её и все необходимые дополнительные модули.
Базовая установка Asterisk состоит из четырёх частей:
- Библиотека LibPRI.
- Модули поддержки телекоммуникационного оборудования DAHDI.
- Утилиты DAHDI.
- Собственно сам сервер Asterisk.
Ставить их необходимо именно в таком порядке. Если у вас нет никакого внешнего оборудования, то можно ограничиться установкой чистого Asterisk, однако разработчики всегда рекомендуют ставить полный пакет. Все необходимые пакеты с исходным кодом можно скачать на официальном сайте:
Имейте ввиду, модули и утилиты DAHDI можно загрузить по отдельности, а можно в виде одного пакета DAHDI Complete. При этом в названии пакета DAHDI Complete всегда содержаться два номера версии - первый для включённого в него пакета модулей DAHDI Linux, а второй - для DAHDI Tools. Вообще говоря эти номера могут и не совпадать.
Для сборки Asterisk вам потребуется компилятор GCC и некоторые сопутствующие библиотеки. Чтобы поставить всё необходимое достаточно просто запустить скрипт install_prereq из каталога contrib/scripts/ в исходных текстах Asterisk с параметром install. Например, вот так:
sudo ./contrib/scripts/install_prereq install
Однако этот скрипт ставит очень много по сути бесполезного мусора. Минимальный же набор необходимого можно поставить командой:
sudo apt-get install build-essential libncurses5-dev openssl libxml2-dev
Если вы собираете DAHDI кроме самого Asterisk, то так же понадобятся исходники ядра:
Звонки с/на Skype
Инструкция написана для Asterisk 1.8 на Ubuntu server 9.04. Задача - привязать к астериску аккаунт скайп, чтобы принимать звонки из скайпа на SIP телефон, и звонить с SIP телефона по скайпу. Для этого существует штатное расширение Asterisk производства Digium, но оно коммерческое и лицензии стоят денег. Однако, существует свободный проект - SipToSis, позволяющий сделать то же самое.
Для запуска Skype в консольном Linux используем Xvfb (X Virtual Frame Buffer) и для настройки Skype с другой машины - x11vnc:
apt-get install xvfb x11vnc
Скачаем и установим собственно Skype: Качаем последнюю версию с http://www.skype.com, устанавливаем:
dpkg -i skype.deb
Для работы SipToSis необходима Java версии не ниже 1.5. Установим:
sudo apt-get install sun-java6-jre
Разархивируем в /etc/siptosis и проставим chmod на исполняемый файл:
chmod +x /etc/siptosis/SipToSis_linux
man hier не согласится с этим
Теперь настроим asterisk. В users.conf добавим:
[Skype] username=Skype type=friend context=Skype secret= host=dynamic nat=no dtmfmode=auto canreinvite=no incominglimit=1 outgoinglimit=1 call-limit=1 busylevel=1 В ''extensions.conf'' добавим <file>exten => 1001,1,Dial(SIP/Skype/echo123)
И перезагрузим asterisk.
Теперь правим конфиг SipToSis:
sudo nano /etc/siptosis/siptosis.cfg
Закомментируем блок настроек, начинающийся с »#Sample AUTO config with NO registration» Раскомментируем блок »#Sample Asterisk registration example», поправим:
host_port=5070 contact_url=sip:Skype@127.0.0.1:5070 from_url="Skype" <sip:Skype@127.0.0.1:5060> username=Skype realm=asterisk passwd= expires=300 do_register=yes minregrenewtime=120 regfailretrytime=15
Запускаем:
sudo /usr/bin/Xvfb :101 -ac & sudo DISPLAY=:101 /usr/bin/skype & sudo x11vnc -display :101 &
Подключаемся с другой машины (в моем случае, с Windows XP через VNC Viewer), вводим в Skype логин-пароль, отключаем все лишнее.
Теперь запускаем :
DISPLAY=:101 /etc/siptosis/SipToSis_linux
Если все сделано правильно, SipToSis запустится и попытается подключиться к Skype. Skype выдаст вопрос - разрешить ли подключение. Разрешаем и ставим галку «запомнить».
Проверяем: набираем с подключенного к Asterisk клиента 1001 - мы должны услышать тестовый звонок Skype.
Чтобы принимать входящие звонки, в /etc/siptosis/SkypeToSipAuth.props прописываем соответствующее правило. Например:
*,sip:user1@127.0.0.1:5060
— перенаправлять все входящие звонки Skype SIP-юзеру »user1». Естественно, нужно создать в extensions.conf контекст »Skype», в котором разрешить звонки на этот extension.