terça-feira, 14 de julho de 2009

ubuntu+asterisk+dahdi+tdm844

Primeiro eu rodo o scriptzito que peguei com um amigo, dei umas modificadas e agora faz o serviço chato para mim, ae vai:

#!/bin/bash

echo ATUALIZANDO REPOSITORIO...
apt-get update

echo INSTALANDO BIBLIOTECAS NECESSARIAS...
apt-get -y install libnewt-dev libssl0.9.8 libssl-dev zlib1g-dev libncurses5-dev libeditline0 libeditline-dev libedit2 libedit-dev readline-common linux-headers-`uname -r` libusb-dev mpg123 libtiff4 libtiff4-dev libxml2 libxml2-dev build-essential automake fakeroot debhelper autotools-dev cdbs pkg-config gcc g++ cpp doxygen ssh mc tcpdump libmysqlclient15-dev sox sysv-rc-conf rcconf vim-full

echo ATUALIZANDO SOFTWARES...
apt-get upgrade

echo INSTALANDO DAHDI-LINUX...
cd /usr/src/
wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz
tar -xvzf dahdi-linux-current.tar.gz
cd dahdi-linux*
make clean
make
make install

echo INSTALANDO DAHDI-LINUX...
cd /usr/src/
wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz
tar -xvzf dahdi-tools-current.tar.gz
cd dahdi-tools*
make clean
./configure
make menuselect
make
make install
make config

echo INSTALANDO ASTERISK...
cd /usr/src
wget -c http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
tar -xvzf asterisk-1.4-current.tar.gz
cd asterisk-1.4*
contrib/scripts/get_ilbc_source.sh #instala codec ilbc
make clean
./configure
make menuselect
make
make install
make samples
make progdocs
make config

echo INSTALANDO ADDONS...
cd /usr/src
wget -c http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz
tar -xvzf asterisk-addons-1.4-current.tar.gz
cd asterisk-addons-1.4.8
make clean
./configure
make menuselect
make
make install
make samples

Esse kra vai baixar as coisas e compilá-las, observe que é só um facilitador, o addons, por exemplo, eu tive de colocar 1.4.8 no nome da pasta que tava 1.4.7...

Supondo que a placa esteja instalada e com o cabo de alimentação ligado, faça o seguinte:

#lspci |grep Digium

Isso é pra garantir que o sistema reconheceu o novo hardware, senão nem adianta começar a configurar canais, módulos e tal que não era.

Olha o meu:

root@charqueadas:~# lspci |grep Digium
00:09.0 Ethernet controller: Digium, Inc. Wildcard TDM800P 8-port analog card (rev 11)

Agora, com tudo certinho rode o seguinte comando:

#dahdi_genconf -vvvv

Ele vai gerar os arquivos de configuração para o hardware instalado, já tive que reiniciar a máquina em alguns casos para dar certo.

Depois você terá de editar o arquivo /etc/dahdi/system.conf, gerado pelo dahdi_genconf e deixar o loadzone e o defaultzone conforme o abaixo (= br).

# Autogenerated by /usr/sbin/dahdi_genconf on Tue Jul 14 04:45:12 2009
# If you edit this file and execute /usr/sbin/dahdi_genconf again,
# your manual changes will be LOST.
# Dahdi Configuration File
#
# This file is parsed by the Dahdi Configurator, dahdi_cfg
#
# Span 1: WCTDM/0 "Wildcard TDM800P Board 1" (MASTER)
fxoks=1
echocanceller=mg2,1
fxoks=2
echocanceller=mg2,2
fxoks=3
echocanceller=mg2,3
fxoks=4
echocanceller=mg2,4
fxsks=5
echocanceller=mg2,5
fxsks=6
echocanceller=mg2,6
fxsks=7
echocanceller=mg2,7
fxsks=8
echocanceller=mg2,8

# Global data

loadzone = br
defaultzone = br

Depois disso rode o comando dahdi_cfg -vvv, conforme abaixo, e uma saída muito parecida é um forte indício de que estamos indo bem.

root@charqueadas:~# dahdi_cfg -vvv
DAHDI Tools Version - 2.2.0

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


Channel map:

Channel 01: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 01)
Channel 02: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 02)
Channel 03: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 03)
Channel 04: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 04)
Channel 05: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 05)
Channel 06: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 06)
Channel 07: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 07)
Channel 08: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 08)

8 channels to configure.

Setting echocan for channel 1 to mg2
Setting echocan for channel 2 to mg2
Setting echocan for channel 3 to mg2
Setting echocan for channel 4 to mg2
Setting echocan for channel 5 to mg2
Setting echocan for channel 6 to mg2
Setting echocan for channel 7 to mg2
Setting echocan for channel 8 to mg2


Agora já falta pouco, só configurar os canais para o asterisk:

Para o resultado anterior o arquivo /etc/asterisk/chan_dahdi.conf fica da seguinte maneira:

[channels]
txgain=10.5
rxgain=10.5
echotraining=yes

context=entrada
signalling=fxo_ks
group=1
channel => 1-4

context=saida
signalling=fxs_ks
group=2
channel => 5-8

Agora reinicie o asterisk:

/etc/init.d/asterisk restart

Acesse o console do asterisk:

asterisk -vvvvvvvvvr (não precisa contar os "v" eu boto um mont para o verbose ser o máximo)

você vai acessar uma coisa chamda "cli", mais ou menos assim:

root@charqueadas:~# asterisk -vvvvvvvr
Asterisk 1.4.25.1, Copyright (C) 1999 - 2008 Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
== Parsing '/etc/asterisk/asterisk.conf': Found
== Parsing '/etc/asterisk/extconfig.conf': Found
Connected to Asterisk 1.4.25.1 currently running on charqueadas (pid = 4170)
Verbosity was 0 and is now 7
-- Remote UNIX connection
charqueadas*CLI>

Na cli acompanhamos o funcionamento e as mensagens de erro das coisas, ajuda muito na configuração e manutenção.

Exemplo:

Verbosity was 0 and is now 7
-- Remote UNIX connection
-- Starting simple switch on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
-- Starting simple switch on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
charqueadas*CLI>

Isso é o resultado na CLI de eu ter tirado e colocado no gancho o telefone ligado na porta 1 da placa.

É muito importante rodar o asterisk com um usuário não privilegiado. Posto isso em breve.

;)

2 comentários:

  1. Não é mais fácil comprar um celular?

    ResponderExcluir
  2. Estou engatinhando no asterisk e compramos na empresa uma placa digum TDM2400P coloquei nela 4 FXO e 12 FXS, estou usando o SNEPlivre, o qual não possui suporte à placas digium, até aí tudo bem, baixei os pacotes do DHADI e instalei no braço googleando por aqui e ali e consegui criar os troncos DAHDI e os ramais, tudo beleza, o asterisk reconheceu eles tranquilo.

    Minha dificuldade agora está nos parâmetros destes ramais analógicos. Quando disco para um ramal e o outro lado atende, a cada 5 segundos ele dá um barulho, como se fosse um flash e dá um tom, que parece com o tom da tecla 1. Testei entre todos os canais e isto ocorre em todos. Também estou com dificuldades para transferir uma ligação. Aperto *, as vezes pega, às vezes não pega, muito esquisito... aí quando pega, digito/ o ramal e ele coloca números a mais, tipo se digito 1020 ele poe 10201 (sabe aquele flash que falei que dá a cada 5 segundos).
    Outra coisa é que criei no SNEP uma fila para o departamento de suporte e coloquei todos os ramais analógicos do suporte. Simplesmente eles não tocam... adicionei um ramal SIP pra fazer um teste e ele toca normalmente. Consegui configurar rotas bem interessantes tando para entrada, quanto para saída usando a interface do SNEP, com regras de horários, onde o cliente liga e se for fora do horário comercial desvia para o tronco DAHDI/4-1 que é de uma linha celular e disca para o celular de plantão, tudo transparente ao usuário, mas esse negócio dos ramais analógicos tá me desanimando...

    ResponderExcluir