1. Instalação da Placa TE110P Com a máquina devidamente desligada da energia elétrica, abra o servidor Dell na qual estará sendo executado o software Asterisk como gateway de voz (máquina 2), efetuando assim a interligação do mundo VoIP com o mundo da telefonia tradicional. Instale cuidadosamente a placa de voz E1 digium TE110P no slot PCI. Ligue a máquina, e após a carga do sistema operacional utilize o utilitário lspci para verificar se a placa E1 instalada está sendo reconhecida. root@maq2:~# lspci 0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 03) 0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP] 0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) 0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a) 0000:00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a) 0000:00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) 0000:00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50) 0000:00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL- 8139/8139C/8139C+ (rev 10) 0000:00:0d.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface 0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 300/305 PCI/AGP VGA Display Adapter (rev 90)0000:00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 300/305 PCI/AGP VGA Display Adapter (rev 90) Verifique se a placa E1 é impressa no comando lspci conforme exibido acima. Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface 2. Carga do Driver da Placa Digium O próximo passo é carregar os drivers da placa da Telefonia Digium, os drivers devem ser carregados usando o comando modprobe. root@maq2# modprobe wcte11xp root@maq2# modprobe zaptel Verifique se os módulos foram carregados através do comando lsmod. root@maq2# lsmod grep zaptel zaptel 224260 1 wcte11xp crc_ccitt 5888 1 zaptel
Edite o arquivo /etc/zaptel.conf para que reflita a placa E1 Digium TE110P. O canal 16 do canal E1 será utilizado para sinalização e os outros 30 para transporte de mídia. Note que a identificação destes canais pode variar conforme a quantidade de placas de telefonia instaladas no servidor No exemplo a seguir é apresentada a configuração de uma placa TE110P onde será utilizada sinalização ISDN. span=1,1,0,ccs,hdb3,crc4 bchan=1-15,17-31 dchan=16 loadzone = us Caso seja utilizada sinalização E1/R2 deve ser usada a configuração abaixo. span=1,1,0,cas,hdb3 bchan=1-15,17-31 dchan=16 loadzone = us
Carregue a configuração especificada através do utilitário ztcfg. root@maq1# ztcfg -vvvd Zaptel Configuration ====================== SPAN 1: CCS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1) Channel map: Channel 01: Clear channel (Default) (Slaves: 01) Channel 02: Clear channel (Default) (Slaves: 02) Channel 03: Clear channel (Default) (Slaves: 03) Channel 04: Clear channel (Default) (Slaves: 04) Channel 05: Clear channel (Default) (Slaves: 05) Channel 06: Clear channel (Default) (Slaves: 06) Channel 07: Clear channel (Default) (Slaves: 07) Channel 08: Clear channel (Default) (Slaves: 08) Channel 09: Clear channel (Default) (Slaves: 09) Channel 10: Clear channel (Default) (Slaves: 10) Channel 11: Clear channel (Default) (Slaves: 11) Channel 12: Clear channel (Default) (Slaves: 12) Channel 13: Clear channel (Default) (Slaves: 13) Channel 14: Clear channel (Default) (Slaves: 14) Channel 15: Clear channel (Default) (Slaves: 15) Channel 16: D-channel (Default) (Slaves: 16) Channel 17: Clear channel (Default) (Slaves: 17) Channel 18: Clear channel (Default) (Slaves: 18) Channel 19: Clear channel (Default) (Slaves: 19) Channel 20: Clear channel (Default) (Slaves: 20) Channel 21: Clear channel (Default) (Slaves: 21) Channel 22: Clear channel (Default) (Slaves: 22) Channel 23: Clear channel (Default) (Slaves: 23) Channel 24: Clear channel (Default) (Slaves: 24) Channel 25: Clear channel (Default) (Slaves: 25) Channel 26: Clear channel (Default) (Slaves: 26) Channel 27: Clear channel (Default) (Slaves: 27) Channel 28: Clear channel (Default) (Slaves: 28) Channel 29: Clear channel (Default) (Slaves: 29) Channel 30: Clear channel (Default) (Slaves: 30) Channel 31: Clear channel (Default) (Slaves: 31) 31 channels configured. O utilitário zttool pode ser utilizado para verificar se a placa foi identificada e configurada corretamente.
3. Configuração do Canal Zap A configuração a ser seguida se for utilizada sinalização ISDN, caso a instituição vá utilizar E1/R2 siga as instruções do capítulo 4. Edite o arquivo /etc/asterisk/zapata.conf para refletir as interfaces instaladas no servidor e a sinalização utilizada por essas interfaces. [channels] context=default switchtype=qsig signalling=pri_cpe ajuste de acordo com o adotado pelo PABX usecallerid=yes group=1 context=> from-pabx channel=> 1-15,17-31 4. Configuração do Canal Unicall Caso a instituição vá utilizar a sinalização E1/R2, edite o arquivo /etc/asterisk/modules.conf e comente a linha noload => chan_unicall.so, caso exista. Edite o arquivo /etc/asterisk/unicall.conf para refletir as interfaces instaladas no servidor e a sinalização utilizada.
[channels] context=from-pabx usecallerid=yes hidecallerid=no callwaitingcallerid=yes threewaycalling=yes transfer=yes cancallforward=yes callreturn=yes echocancel=yes echocancelwhenbridged=yes rxgain=0.0 txgain=0.0 group=1 callgroup=1 pickupgroup=1 immediate=no protocolclass=mfcr2 protocolvariant=br,20,7 protocolend=cpe group = 3 channel => 1-15 channel => 16-31 ajustar de acordo com o PABX 5. Configuração do Canal OH323 Para que o Asterisk possa se registrar no GK da instituição é necessário inicialmente configurar o GnuGK na MAQ1. Inserir uma linha representando o Asterisk na seção RasSrv::RRQAuth do arquivo gnugk.ini, conforme apresentado abaixo. Vale lembrar que já devem existir outras linhas nesta seção, as quais devem ser mantidas.... [RasSrv::RRQAuth] gw-pabxnome=sigip:xxx.xxx.xxx.xxx nome da instituição / IP da MAQ2 Verifique se a regra regex em [GKStatus::Auth] inclui o IP do servidor MAQ2 (máquina onde estará sendo executada o asterisk gateway de voz). Após este passo, é necessário reiniciar o software gnugk. root@maq1# killall gnugk root@maq1# gnugk -c /etc/gnugk.ini & Após configurado o GNUGK da MAQ1, deve ser feita a configuração do Asterisk na MAQ2, onde está instalada a placa FXO. Configurar canal oh323 através do arquivo /etc/asterisk/oh323.conf. Nesta configuração deve ser indicado o endereço IP do gatekeeper, no caso o IP da MAQ1, o ID do registro e os prefixos que serão registrados. Deve se ter cuidado para que o ID indicado no arquivo seja exatamente igual ao ID indicado na configuração do gatekeeper.
[general] listenaddress=xxx.xxx.xxx.xxx listenport=1720 tcpstart=10000 tcpend=20000 udpstart=10000 udpend=20000 faststart=yes h245tunnelling=yes jittermax=100 h245insetup=yes jittermin=20 jittermax=100 iptos=none outboundmax=100 inboundmax=100 simultaneousmax=100 wraplibtracelevel=0 libtracelevel=0 libtracefile=stdout gatekeeper= xxx.xxx.xxx.xxx gatekeeperttl=600 userinputmode=string amaflags=default accountcode=h323 language=en musiconhold=default context=from-voip [register] alias=gw-pabxnome gwprefix=nnnn gwprefix=0xx use o IP da MAQ2 use o IP da MAQ1 <- este contexto deve ser from-voip nome da instituição Prefixo do PABX Código da cidade da instituição [codecs] codec=g711u frames=20 6. codec=g711a Configuração frames=20 do Plano de Numeração
6. Configuração do Plano de Numeração Agora que as configurações associadas aos canais ZAP e OH323 já foram realizadas, deve ser definido o plano de numeração que será utilizado no Asterisk. Este plano é especificado no arquivo /etc/asterisk/extensions.conf. Ao configurar o seu arquivo, use o código de DDD correspondente à cidade da sua instituição. [general] static=yes writeprotect=no autofallthrough=yes clearglobalvars=no priorityjumping=yes [globals] [from-voip] include => to-pabx include => to-pstn [from-pabx] exten => 25983000,1,Answer() exten => 25983000,n,Set(TIMEOUT(digit)=5) exten => 25983000,n,Set(TIMEOUT(response)=10) exten => 25983000,n,Background(ivr/welcome) exten => t,1,hangup() exten => i,1,hangup() exten => h,1,hangup() include => internacional include => colocalizados include => ip include => local-block include => identifica-origem [internacional] exten => _00XXXXXXX.,1, Dial(OH323/${EXTEN},60,rtT) [colocalizados] exten => _PPPPXXXX,1,Dial(OH323/${EXTEN},60,rtT) exten => _0DDPPPPXXXX,1,Dial(OH323/${EXTEN},60,rtT) exten => _55DDPPPPXXXX,1,Dial(OH323/${EXTEN},60,rtT) ; PPPP => prefixo do ramal do PABX ; DD => código da instituição ; fazer isto para cada ramal e para cada instituição colocalizada [ip] exten => _1XXXXXXX,1,Dial(OH323/${EXTEN},60,rtT) exten => _0XX1XXXXXXX,1,Dial(OH323/${EXTEN},60,rtT) exten => _55XX1XXXXXXX,1,Dial(OH323/${EXTEN},60,rtT) [local-block] exten => _0DDNXXXXXXX,1,Hangup() exten => _55DDNXXXXXXX,1,Hangup() ; DD => código para instituição
[identifica-origem] exten => _0XXNXXXXXXX,1,SetGlobalVar(destino=${EXTEN}) exten => _0XXNXXXXXXX,n,GotoIf($[ ${CALLERID(num)} : "YYYY ]?semum0 _0XX. 1)... ; repetir esta linha, substituindo por todos os prefixos o seu PABX... ; YYYY => prefixo do PABX exten => _0XXNXXXXXXX,n,GotoIf($[ ${CALLERID(num)} : "YYYY ]?semum0 _0XX. 1:comum0 _0XX. 1) exten => _55XXNXXXXXXX,1,SetGlobalVar(destino=${EXTEN}) exten => _55XXNXXXXXXX,n,GotoIf($[ ${CALLERID(num)} : "YYYY ]?semum55 _55XX. 1)... ; repetir esta linha, substituindo por todos os prefixos o seu PABX... ; YYYY => prefixo do PABX exten => _55XXNXXXXXXX,n,GotoIf($[ ${CALLERID(num)} : "YYYY ]?semum55 _55XX. 1:comum55 _55XX.a 1) [comum0] exten => _0XXNXXXXXXX,1,SetVar(prefixo=${destino:0:3}) exten => _0XXNXXXXXXX,n,Dial(OH323/${prefixo}1${destino:3},60,rtT) [comum55] exten => _55XXNXXXXXXX,1,SetVar(prefixo=${destino:0:4}) exten => _55XXNXXXXXXX,n,Dial(OH323/${prefixo}1${destino:4},60,rtT) [semum0] exten => _0XXNXXXXXXX,1,Dial(OH323/${destino},60,rtT) [semum55] exten => _55XXNXXXXXXX,1,Dial(OH323/${destino},60,rtT) [to-pabx] exten => _YYYYXXXX,1,Dial(CHANNEL/g1/${EXTEN:4},60,rtT) exten => _YYYYXXXX,n,Hangup() ; YYYY => Prefixo do Ramal da instituição ; fazer isto para cada prefixo do ramal do PABX, supondo que o seu PABX ; reconheça o telefone do seu PABX pelos seus últimos 4 dígitos. ; CHANNEL => Nome da sinalização usada ; se ISDN, usar ZAP ; se R2, usar UNICALL [to-pstn] exten => _0DDNXXXXXXX,1,Dial(CHANNEL/g1/0${EXTEN:3},60,rtT) exten => _0DDNXXXXXXX,n,Hangup() ; DD => Código da cidade ; 0 => Dígito usado para pegar uma linha externa ; :3 => Exclui os 3 primeiros digitos, no caso do PABX tiver aceitando somente ; os 8 digitos do numero ; CHANNEL => Nome da sinalização usada ; se ISDN, usar ZAP ; se R2, usar UNICALL
Contextos definidos: From-voip trata as chamadas recebidas do canal oh323. O nome do contexto deve ser o mesmo que o definido no arquivo oh323.conf; From-pabx trata as chamadas provenientes do PABX originadas de ramais internos. O nome do contexto deve ser o mesmo que o definido no arquivo zapata.conf para os canais que receberão chamadas internas. From-pstn trata as chamadas provenientes do PABX originadas da rede pública. O nome do contexto deve ser o mesmo que o definido no arquivo zapata.conf para os canais que receberão chamadas externas. Inicial apresenta mensagem de voz para o usuário e coleta os dígitos do telefone chamado; Pbx-block evita que o usuário disque de volta para os ramais da instituição. Não faz sentido um usuário ligar para um ramal conectado ao Asterisk e discar para um ramal do PABX. Isto deve ser evitado, pois ocuparia duas linhas desnecessariamente. Colocalizados cria regras que permitem o encaminhamento das chamadas para instituições localizadas na mesma cidade que compartilham o mesmo código de área. Este contexto só deve ser definido se a instituição estiver configurada para encaminhar chamadas para a rede pública. Caso contrário é desnecessário. Objetiva o encaminhamento das chamadas para estas instituições através da rede IP, e não através da rede de telefonia pública. IP encaminha chamadas para telefones IP, números iniciados com 1, para o gatekeeper via canal oh323. Local-block não permite que chamadas originadas do PABX sejam encaminhadas para a rede pública da cidade local, evitando a ocupação de duas linhas do PABX. Identifica-Origem identifica se a origem da chamada é um ramal interno ou um telefone da rede pública. Usa contextos diferentes para tratar o encaminhamento da chamada de acordo com a origem e o número discado. To-pabx Encaminha chamadas originadas do VoIP para ramais da instituição. Ao passar a chamada para o PABX são enviados os somente os dígitos relativos ao ramal, 4 no exemplo. To-pstn - Encaminha chamadas originadas do VoIP para telefones da rede pública. Ao passar a chamada para o PABX é enviado o digito utilizado para obter uma linha externa, no exemplo o digito 0, e depois o número do telefone chamado retirando o código de área. Comum0 e Comum55 chamadas originadas da rede pública, tendo como destino um telefone tradicional alcançado através de outra instituição, são encaminhadas para o gatekeeper através do canal oh323. Insere o digito 1 entre o código de área e o número do telefone, para que chamadas originadas da rede pública não possam ser encaminhadas para a rede pública. Semum0 e Semum55 chamadas originadas de ramais internos, tendo como destino um telefone tradicional alcançado através de outra instituição, são encaminhadas para o gatekeeper através do canal oh323. As chamadas podem ser encaminhadas para a rede pública. Copie o arquivo de áudio que será tocado quando da chegada de uma chamada através do tronco E1 seu gateway Asterisk. Este arquivo pode ser obtido da RNP no site http://voip4ll.rnp.br usando o usuário fornecido pela RNP. root@maq2# mkdir /var/lib/asterisk/sounds/ivr root@maq2# cd /var/lib/asterisk/sounds/ivr root@maq2# wget http://www.voip.nce.ufrj.br/download/bemvindo.gsm
Inicialize o Asterisk com tela de comando, e utilize o comando zap show channels para visualizar os canais configurados e o contexto associado a cada canal. root@maq2# asterisk -vvvvc... maq2*cli> zap show channels Chan Extension Context pseudo from-pabx 1 from-pabx 2 from-pabx 3 from-pabx 4 from-pabx 5 from-pabx 6 from-pabx 7 from-pabx 8 from-pabx 9 from-pabx 10 from-pabx 11 from-pabx 12 from-pabx 13 from-pabx 14 from-pabx 15 from-pabx 17 from-pabx 18 from-pabx 19 from-pabx 20 from-pabx 21 from-pabx 22 from-pabx 23 from-pabx 24 from-pabx 25 from-pabx 26 from-pabx 27 from-pabx 28 from-pabx 29 from-pabx 30 from-pabx 31 from-pabx Language MusicOnHold