Возможно вы искали: 'F1 2002'

May 15 2025 19:25:31
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Корпоративный VoIP сервер на базе Asterisk в Ubuntu Server 8.04.2 (voip sip asterisk linux fax)

Корпоративный VoIP сервер на базе Asterisk в Ubuntu Server 8.04.2 (voip sip asterisk linux fax)

Ключевые слова: voip, sip, asterisk, linux, fax, (найти похожие документы)

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.
Обновляемся и устанавливаем необходимые пакеты:

aptitude update
aptitude upgrade
aptitude install make gcc cpp g++ linux-headers-2.6.24.23-server
bison ncurses-dev mysql-client libmysqlclient-dev libnewt-dev php-gd


Основную часть будем ставить из исходников, скачанных с сервера Digium:

wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.6.0.5.tar.gz
wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.6.0.1.tar.gz
wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-2.1.0.4.tar.gz
wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-2.1.0.2.tar.gz
wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.9.tar.gz


Распаковываем все это дело в /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.

# cat /etc/dahdi/system.conf

span=1,1,0,ccs,hdb3,crc4
bchan=1-15
echocanceller=mg2,1-15
dchan=16
bchan=17-21
echocanceller=mg2,17-21
loadzone = us
defaultzone=us
span=2,0,0,ccs,hdb3
bchan=32-46
dchan=47
echocanceller=mg2,32-46


# cat /etc/asterisk/chan_dahdi.conf

[channels]
switchtype=euroisdn
pridialplan=unknown
prilocaldialplan=national
resetinterval = 100000000
facilityenable = yes
signalling=pri_cpe
rxwink=300
usecallerid=yes
cidsignalling=bell
cidstart=ring
hidecallerid=no
callwaiting=yes
usecallingpres=yes
sendcalleridafter=1
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
echotraining=800
relaxdtmf=yes
rxgain=0.0
txgain=0.0

group=1
context=from_peterstar
immediate=no
channel=>1-15,17-21
mohsuggest=default

group=2
context=from_golden
immediate=no
channel=>32-46
mohsuggest=default


Теперь можно уйти в ребут.

После перезагрузки смотрим подгрузились ли необходимые модули:

lsmod | sort

dahdi 197768 87 dahdi_echocan_mg2,xpp,dahdi_transcode,wcb4xxp,wctdm,wcfxo,wctdm24xxp,wcte11xp,wct1xxp,wcte12xp,wct4xxp
dahdi_echocan_mg2 6920 0
dahdi_transcode 9352 1 wctc4xxp
.....
wcb4xxp 83492 0
wcfxo 13984 0
wct1xxp 16544 0
wct4xxp 353920 0
wctc4xxp 49180 0
wctdm24xxp 135008 0
wctdm 40652 0
wcte11xp 27424 37
wcte12xp 71392 0
.....


Дальше проверяем как dahdi переварил наши платы:

# dahdi_cfg -vvvvvvvv

DAHDI Tools Version - 2.1.0.2

DAHDI Version: 2.1.0.4
Echo Canceller(s): MG2
Configuration

SPAN 1: CCS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)
SPAN 2: CCS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)

Channel map:

Channel 01: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 01)
...
Channel 15: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 15)
Channel 16: D-channel (Default) (Slaves: 16)
Channel 17: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 17)
...
Channel 46: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 46)
Channel 47: D-channel (Default) (Slaves: 47)

37 channels to configure.

Setting echocan for channel 1 to mg2
...
Setting echocan for channel 46 to mg2


Еще одна утилита:

dahdi_scan

[1]
active=yes
alarms=OK
description=Digium Wildcard TE110P T1/E1 Card 0
name=WCT1/0
manufacturer=Digium
devicetype=Digium Wildcard TE110P T1/E1
location=PCI Bus 04 Slot 01
basechan=1
totchans=31
irq=23
type=digital-E1
syncsrc=0
lbo=0 db (CSU)/0-133 feet (DSX-1)
coding_opts=HDB3
framing_opts=CCS,CRC4
coding=HDB3
framing=CCS
[2]
active=yes
alarms=OK
description=Digium Wildcard TE110P T1/E1 Card 1
name=WCT1/1
manufacturer=Digium
devicetype=Digium Wildcard TE110P T1/E1
location=PCI Bus 04 Slot 02
basechan=32
totchans=31
irq=21
type=digital-E1
syncsrc=0
lbo=0 db (CSU)/0-133 feet (DSX-1)
coding_opts=HDB3
framing_opts=CCS,CRC4
coding=HDB3
framing=CCS


Настраиваем Asterisk. Приведу только основные блоки своей конфигурации
т.к. всё достаточно индивидуально.

# cat /etc/asterisk/extensions.conf

[general]
static = yes
writeprotect = yes
clearglobalvars = yes

[globals]
CONSOLE = Console/dsp ; Console interface for demo
TRUNKMSD = 1 ; MSD digits to strip (usually 1 or 0)
FEATURES =
DIALOPTIONS =
RINGTIME = 20
FOLLOWMEOPTIONS =
PAGING_HEADER = Intercom
PAGING_TIMEOUT = 60

[default]

[from_peterstar]
exten => 1111111,1,Ringing
exten => 1111111,n,Wait(1)
exten => 1111111,n,Answer
exten => 1111111,n,Dial(SIP/100,90,tr)
exten => 1111111,n,Queue(office)
exten => 1111111,n,Hangup()

[from_golden]
exten => 2222222,1,Ringing
exten => 2222222,n,Wait(1)
exten => 2222222,n,Answer
exten => 2222222,n,Dial(SIP/200,90,tr)
exten => 2222222,n,Queue(sklad)
exten => 2222222,n,Hangup()

[to_peterstar]
exten => _[1-9]XXXXXX,1,Set(CALLERID(all)=1111111)
exten => _[1-9]XXXXXX,2,Dial(dahdi/g1/${EXTEN},90,t)
exten => _7XXXXXX,1,Set(CALLERID(all)=1111111)
exten => _7XXXXXX,2,Dial(dahdi/g1/${EXTEN},90,t)
exten => t,1,Busy

[to_golden]
exten => _[1234569]XXXXXX,1,Set(CALLERID(all)=2222222)
exten => _[1234569]XXXXXX,2,Dial(dahdi/g2/${EXTEN},90,t)
exten => _7XXXXXX,1,Set(CALLERID(all)=2222222)
exten => _7XXXXXX,2,Dial(dahdi/g2/${EXTEN},90,t)
exten => t,1,Busy

[to_sipnet]
exten => _7921XXXXXXX,1,Dial(SIP/sipnet_et/${EXTEN},90,t)
exten => _7921XXXXXXX,2,Hangup()
.....


# cat /etc/asterisk/queue.conf

[general]

[default]

[office]
music=default
strategy=ringall
timeout=60
retry=30
wrapuptime=15
;periodic-announce-frequency=30
;periodic-announce = queue-periodic-announce
monitor-format = wav49
monitor-type = MixMonitor
context = office
member => SIP/100

[sklad]
music=default
strategy=ringall
timeout=60
retry=30
wrapuptime=15
;periodic-announce-frequency=30
;periodic-announce = queue-periodic-announce
monitor-format = wav49
monitor-type = MixMonitor
context = sklad
member => SIP/200


Вобщем в город звоним через Peterstar & Golden, а на мобильные и
межгород прописываем sipnet и его аналоги.

Дальше я решил запустить астериск стандартным для убунты образом:

/etc/init.d/asterisk start


Но оказолось что при компиляции никакие стартовые скрипты не создались.
Хотя в других версиях такого бага небыло.
Мое решение - вписываем в конец скрипта /etc/init.d/rc.local строчку:

/usr/sbin/asterisk -f -vvvg -c


Для проверки можно перезагрузиться и посмотреть сработало ли:

ps -aux | grep asterisk | grep -v grep

root 6184 0.1 1.1 28612 12108 ? Sl Feb19 4:05 /usr/sbin/asterisk -f -vvvg -c


Залезаем на консоль Астериска, начинаем звонить и смотреть не лезут ли ошибки:

asterisk -r
....


ФАКС

Вобщем все красиво, все работает, дальше будем прикручивать электронный факс.

Лирическое отступление: сначала я решил поставить факс из репозиториев
убунты - asterisk-app-fax, это чудо потянуло за собой астериск 1.4.22 и
все мои труды накрылись медным тазом =). Поэтому будем ставить связку
iaxmodem + hylafax, хоть из репозитория, но без вышеуказанных проблем.

aptitude install hylafax-serveк hylafax-client iaxmodem


Создаем несколько виртуальных модемов:

# cat /etc/iaxmodem/ttyIAX0

device /dev/ttyIAX0
owner uucp:uucp
mode 660
port 4570
refresh 50
server 127.0.0.1
peername iaxmodem
secret password
codec alaw
cidname Company
cidnumber +7(812)1111111


Выполняем для каждого модема:

cd /etc/iaxmodem
cp ttyIAX0 ttyIAX1
....


Не забываем менять название девайса в первой строчке файла настроек.
Запусаем iaxmodem:

/etc/init.d/iaxmodem start


Проверяем появились ли виртуальные модемы:

ls /dev | grep ttyIAX

ttyIAX0
ttyIAX1
....


Дальше нужно настроить взаимодействие этих модемов с hylafax.
Начальная настройка hylafax:

faxsetup


И для чего для каждого модема проделываем:

faxaddmodem


Прописывам модемы в астериске:

# cat /etc/asterisk/iax.conf

[general]
bindport = 4569
bindaddr = 0.0.0.0
disallow=all
allow=ulaw
allow=alaw

[iaxmodem]
type=friend
secret=password
port=4570
host=dynamic
context=office
disallow=all
allow=alaw

[iaxmodem1]
type=friend
secret=password
port=4580
host=dynamic
context=sklad
disallow=all
allow=alaw
.....


# cat /etc/asterisk/sip.conf

...
[111]
type=friend
context=office
secret=111
callerid="FAX-Office"<111>
nat=yes
host=dynamic
qualify=yes

[222]
type=friend
context=sklad
secret=222
callerid="FAX-Sklad"<222>
nat=yes
host=dynamic
qualify=yes
....


# cat /etc/asterisk/extensions.conf

exten => 111,1,Dial(IAX2/iaxmodem)
exten => 222,1,Dial(IAX2/iaxmodem1)
....


Для того, чтобы факсы отправлялись по e-mail необходимо настроить
почтовую систему на релей к вашему почтовому серверу и прописать
следующее:

# cat /etc/hylafax/FaxDispatch

case "$DEVICE" in
ttyIAX0) SENDTO=office@comp.spb.ru; FILETYPE=tif;;
ttyIAX1) SENDTO=sklad@comp.spb.ru; FILETYPE=tif;;
esac


При такой схеме факсы, приходящие на номер 111, будут идти на один
адрес, а приходящие на 222 - на другой, и т.д...

reboot


Отправлять факсы из винды можно после установки какой-нибудь клиентской
проги. Я использую Winprint Hylafax.


СТАТИСТИКА

Если аддон астериска собран с поддержкой MySQL:

# cat /etc/asterisk/cdr_mysql.conf

[global]
hostname=localhost
dbname=asterisk
table=cdr
password=password
user=root
port=3306
sock=/var/run/mysqld/mysqld.sock
userfield=1


Создаем базу:

mysql -p

> CREATE DATABASE asterisk;

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` );

reboot


Проверяем:

asterisk -r

pbx*CLI> cdr show status

CDR logging: enabled
CDR mode: simple
CDR output unanswered calls: no
CDR registered backend: mysql
CDR registered backend: csv
CDR registered backend: cdr-custom


Сие означает, что логи у нас пошли в базу.
Теперь прикручиваем модуль статистики:

wget http://areski.net/asterisk-stat-v2/asterisk-stat-v2_0_1.tar.gz


Распаковываем сожержимое в /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

PPS: http://alchemist-unix.blogspot.com/2009/02/ip-e1-sip.html - мой блог ;)
963 Прочтений •  [Корпоративный VoIP сервер на базе Asterisk в Ubuntu Server 8.04.2 (voip sip asterisk linux fax)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Корпоративный VoIP сервер на базе A... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка