From: Alchemist <lipovetskiy@yandex.ru.>
Newsgroups: email
Date: Mon, 16 Mar 2009 17:02:14 +0000 (UTC)
Subject: Корпоративный VoIP сервер на базе Asterisk в Ubuntu Server 8.04.2
Задача: поднять корпоративный сервер IP телефонии с несколькими потоками
E1 от разных провайдеров и несколькими SIP провайдерами, завернуть логи
в базу и настроить подбивку статистики, настроить электронные факсы.
В течении двух недель экспериментировал с Asterisk на различных
платформах и сборках - FreeBSD, CentOS, Trixbox, AsteriskNOW, Elastix,
Akozia... везде что-то не нравилось и не сросталось, и в итоге я
остановился на Ubuntu Server 8.04.2.
ASTERISK
Итак, ставим Ubuntu, во время установки отмечаем LAMP (Linux Apache
MySQL PHP) и OpenSSH.
Обновляемся и устанавливаем необходимые пакеты:
Распаковываем все это дело в /usr/src и начинаем по-порядку устанавливать.
Libpri:
make
make install
Dahdi:
make
make install
Dahdi-tools:
./configure
make menuselect
make
make install
Asterisk:
./configure
make menuselect
make
make install
Asterisk addons:
./configure
make menuselect
make
make install
reboot
Make menuselect делаем для проверки необходимых компонентов. Особенно
нас интересует mysql.
После того как все установлено необходимо поправить несколько основных файлов.
У меня установлены две платы Openvox D110P, которые являются полным
аналогом (китайская подделка =)) плат от Digium TE110P. Провайдеры
телефонии - Peterstar & Golden Telecom.
Вобщем в город звоним через Peterstar & Golden, а на мобильные и
межгород прописываем sipnet и его аналоги.
Дальше я решил запустить астериск стандартным для убунты образом:
/etc/init.d/asterisk start
Но оказолось что при компиляции никакие стартовые скрипты не создались.
Хотя в других версиях такого бага небыло.
Мое решение - вписываем в конец скрипта /etc/init.d/rc.local строчку:
/usr/sbin/asterisk -f -vvvg -c
Для проверки можно перезагрузиться и посмотреть сработало ли:
Залезаем на консоль Астериска, начинаем звонить и смотреть не лезут ли ошибки:
asterisk -r
....
ФАКС
Вобщем все красиво, все работает, дальше будем прикручивать электронный факс.
Лирическое отступление: сначала я решил поставить факс из репозиториев
убунты - asterisk-app-fax, это чудо потянуло за собой астериск 1.4.22 и
все мои труды накрылись медным тазом =). Поэтому будем ставить связку
iaxmodem + hylafax, хоть из репозитория, но без вышеуказанных проблем.
GRANT INSERT
ON asterisk.*
TO asterisk@localhost
IDENTIFIED BY 'yourpassword';
USE asterisk;
CREATE TABLE `cdr` (
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`userfield` varchar(255) NOT NULL default ''
);
ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default '';
ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
Распаковываем сожержимое в /var/www и настраиваем соответствующим
образом файлы ./lib/defaults.php и ./lib/DB-modules/phplib_mysql.php
apache2ctl restart
Заходим через браузер на адрес http://your-pbx-ip/cdr.php (можно сделать
и по-красивее) и радуемся тому, что все работает! =)
PS: При написании использовались следующие материалы:
* http://bbs.chinaunix.net/archiver/tid-1290435.html
* http://www.the-asterisk-book.com/unstable/faxserver-mit-iaxmodem-und-hylafax.html
* http://www.voip-info.org/wiki-Asterisk+cdr+mysql