И все таки, готовые сборки с прикрученными графическими инструментами для управления Asterisk - это не очень хорошо. В том плане, что если ты не понимаешь логику функционирования asterisk, то с помощью ГУИ ты, конечно, настроишь то, что тебе надо. Но как только понадобиться лезть куда-то глубже.. ГУИ будут только мешать.
И опять же, зачастую готовые сборки идут на базе CentOS. Не спорю, возможно весьма хороший дистрибутив линукса. Но к RedHad подобным системам я не привык. Debian (Ubuntu) - как то ближе. Есть, кстати, хороший (наверное) дистрибутив на базе Gentoo - AstPBX (
http://asteriskpbx.ru). Без всяких графических инструментов, только конфиги.
Ну так вот, решил я поставить ubuntu-server с длительным сроком поддержки, а на него asterisk, также с длительным сроком поддержки.
Писать очередную хау-тушку об установке и настройке астериска особо не хочется, так, для себя, черкну немного.
Про установку ubuntu server 10.04 рассказывать ничего не буду, ибо нечего =)
Ставим asterisk. Конечно, рекомендуется собирать из исходных кодов, но лениво =)
В стандартных репозиториях убунты есть версия (на ноябрь 2011 года) asterisk 1.6.
Подключаем официальный репозиторий астериска и ставим необходимые пакеты из него.
sudo apt-get install python-software-properties
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 175E41DF
sudo add-apt-repository "deb http://packages.asterisk.org/deb `lsb_release -cs` main"
sudo add-apt-repository "deb-src http://packages.asterisk.org/deb `lsb_release -cs` main"
sudo apt-get update
sudo apt-get install asterisk-1.8
После этого можно приступить к настройкам астериска. Как минимум, создать несколько sip-аккаунтов, которые могли бы звонить друг другу.
Сделаем бэкап файла sip.conf
mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf_sample
Начнем с редактирования файла /etc/asterisk/sip.conf.
[general]
context=default
allowguest=no
bindport=5060
bindaddr=0.0.0.0
[320]
type=friend
context=phones
host=dynamic
secret=user1_password
[321]
type=friend
context=phones
host=dynamic
secret=user2_password
Поскольку мы хотим как направлять вызовы в программный телефон, так и обеспечить клиенту возможность размещать вызовы, параметр type (тип) был определен как friend (друг). Существует еще два параметра: user (пользователь) и peer (равноправный участник сети). С точки зрения Asterisk user задается для входящих вызовов, а peer – для исходящих звонков (через приложение Dial()). friend – это просто краткая запись, определяющая и пользователя, и равноправного участника. Если есть сомнения, задавайте тип friend. Опция host (хост) используется для определения местонахождения клиента в сети, когда Asterisk необходимо направить ему вызов. Это значение может быть задано статически, например host=192.168.1.100, или, если клиент имеет динамический IP-адрес, задается host=dynamic. Если для опции host задано значение dynamic и клиент сконфигурирован для автоматической регистрации, Asterisk получит от конечной точки (то есть от телефонного аппарата или программного телефона) пакет REGISTER, из которого Asterisk сможет узнать, какой IP-адрес использует равноправный SIP-участник. Если вы не доверяете своей сети, вероятно, следует задать пароль. Для этого в описание устройства добавляется следующая строка. Это один из тех параметров, которые не являются обязательными, но желательны:
secret=user1_password
Сделаем бэкап файла extensions.conf
mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf_sample
После этого можно создать заново данный файл с примерно следующим содержанием:
[globals]
[general]
autofallthrough=yes
[phones]
exten => _3XX,1,Dial(SIP/${EXTEN})
exten => _3XX,n,Hangup()
После внесения изменений в этот файл, необходимо делать dialplan reload.
И почему то все это заработало только после core restart now.
После этого звонить друг другу должно получаться без проблем.
Помогли следующие источники: