Asterisk on Debian Squeeze

First some background: I use Asterisk to route my calls through multiple VoIP providers. Calls to Australian landlines through iiNet since they’re free, and the rest through Pennytel since they’re cheap. My el-cheapo ATA simply registers with Asterisk and my mum just calls as usual, and everything’s automagically cost optimised.

Problem: I did an apt-get -y dist-upgrade after not having touched this system for quite a while, and one of Asterisk’s dependencies, dahdi, failed to install with the error message FATAL: Module dahdi not found.

Basically, the dependecies don’t cause automatic installation of the needed kernel drivers, so the following will fix it:

apt-get -y install linux-headers-`uname -r` build-essential
apt-get -y remove dahdi*
apt-get -y install dahdi-source
cd /usr/src
tar jxvf dahdi.tar.bz2
cd modules/dahdi
make
make install
apt-get -y asterisk

source: http://cryptwizard.info/?p=691

Asterisk на Linux. Моя версия ))

Пример приводится для 64-битных процессоров. Использовал дешевую E1-карту Digium TE110P. Asterisk собирался из исходников.

Установка и настройка ОС

Устанавливаем и обновляем систему.

Ставим пакеты:

make
gcc
cpp
g++
linux-headers-2.6.26-2-amd64
bison
ncurses-dev
mysql-client
libmysqlclient-dev
libnewt-dev
php-gd

mpg123
sox

Установка и настройка ISDN-карты

Устанавливаем карту.

Качаем драйверы:

http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.11.tar.gz
http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.3.0.1.tar.gz
http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-2.3.0.tar.gz

Очень желательно соблюдать очередность установки драйверов и самого Asterisk’а.

Установка драйверов:

LibPRI

make
make install

DAHDI

make
make install

DAHDI Tools

./configure
make menuselect
make
make install

Установка и настройка Asterisk

Качаем:
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.4.32-rc1.tar.gz
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.4.11.tar.gz

Устанавливаем:

*Asterisk

./configure
make menuselect
make
make install

*Asterisk Addons

./configure
make menuselect
make
make install

Перезагружаемся.

Проверяем работу драйвера и ISDN-карты

У нас используется карта [[Digium TE110P]].

Настройки драйвера:

»’cat /etc/dahdi/system.conf»’

span=1,1,0,ccs,hdb3
bchan=1-15,17-31
dchan=16
echocanceller=mg2,1-15,17-31
loadzone=ru
defaultzone=ru

»’cat /etc/asterisk/chan_dahdi.conf»’

[trunkgroups]

[channels]

context=from-fwd
switchtype=euroisdn
signalling=pri_cpe
usecallerid=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes

group=1
callgroup=1
pickupgroup=1
channel => 1-15
channel => 17-31

Проверяем, загрузился ли модуль:

»’lsmod | sort»’

Module                  Size  Used by
...
crc_ccitt               6528  2 dahdi,hisax
dahdi                 204368  74 dahdi_echocan_mg2,wcte11xp
dahdi_echocan_mg2      10248  31
isdn                  127584  1 hisax
slhc                   10240  1 isdn
wcte11xp               28960  31
....

Проверяем, видит ли DAHDI нашу карту ([[Digium TE110P]]):

»’dahdi_cfg -vvvvvvvv»’

DAHDI Tools Version - 2.3.0

DAHDI Version: 2.3.0.1
Echo Canceller(s): MG2
Configuration
======================

SPAN 1: 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 02: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 02)
...
Channel 14: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 14)
Channel 15: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 15)
Channel 16: D-channel (Default) (Echo Canceler: none) (Slaves: 16)
Channel 17: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 17)
...
Channel 30: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 30)
Channel 31: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 31)

31 channels to configure.

Setting echocan for channel 1 to mg2
Setting echocan for channel 2 to mg2
...
Setting echocan for channel 14 to mg2
Setting echocan for channel 15 to mg2
Setting echocan for channel 16 to none
Setting echocan for channel 17 to mg2
...
Setting echocan for channel 30 to mg2
Setting echocan for channel 31 to mg2

Проверяем настройки DAHDI:

»’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 03 Slot 02
basechan=1
totchans=31
irq=19
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

'''dahdi_tool'''
...

Конфигурация Asterisk

Копируем из бэкапа сервера телефонии содержимое папки /etc/asterisk/.

Автозагрузка Asterisk

Обычно Asterisk ставит init-скрипт для загрузки самостоятельно.

Можно использовать для этого стандартный вызов из файла /etc/init.d/rc.local:

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

Или лучше:

Скопировать из исходников Asterisk /usr/src/install_asterisk/asterisk-1.4.19/contrib/init.d/rc.debian.asterisk в /etc/init.d/asterisk

chmod 755 /etc/init.d/asterisk
cd /etc/init.d
# для удаления из автозагрузки
update-rc.d -f asterisk remove

# для установки в автозагрузку
update-rc.d asterisk defaults

Доступ к консоли Asterisk

"asterisk -Rvvv"

-r — Подключение к Asterisk на текущей системе
-R — Тоже самое, что и ключ -r, но при разсоединения происходит переподключение
-v — Больше подробностей при выводе (чем больше «v», тем больше подробностей)

Дополнительные пояснения искать тут:

http://itinfusion.ca/2007/05/06/howto-installing-asterisk-on-debian-etch/