Instalando o OpenR2 no Asterisk
04 de agosto de 2008
A snalização MFC/R2 é uma sinalização utilizada em telefonia digital, entregue ao consumidor em um link de dados E1, encontrada com muita freqüencia em cidades do interior e em alguns pontos nas capitais brasileiras onde não existe a possibilidade de entrega de um link ISDN ou RDSI como é conhecido no Brasil. Como nos EUA a sinhalização MFC/R2 não existe, pouca ou melhor dizendo nenhuma importância foi dada ao desenvolvimento de bibliotecas que suportassem este tipo de sinalização no Asterisk. Assim que começaram as primeiras implementações surgiu a necessidade de se criar uma solução, a primeira foi densenvolvida por Steve Underwood que desenvolveu uma biblioteca e um canal para o Asterisk, projeto batizado de Unicall (http://www.soft-switch.org), esta solução ainda é utilizada, mas assim que foi lançada a versão 1.4 do Asterisk, o unicall  passou a ser mais problema do que solução. No entanto aproveitando esta oportunidade empresas brasileiras como a  Khomp e Digivoice criaram soluções estáveis com placas e canais próprios que suportam tanto ISDN quanto MFC/R2.

Mas e para aqueles que não sabiam desta limitação e ainda estão com placas da Digium paradas em seus servidores precisando ligar em um Link MFC/R2 chegou a hora de testar uma nova solução chamada OPEN R2.

Projeto iniciado por Moises Silva e inspirado no Unicall o OPEN R2 é atualmete a solução baseada em software mais estável do mercado, com esta solução podemos ligar uma Digium TE110P  por exemplo, diretamente em um link MFC/R2 sem patchs e sem software de terceiros. Isso porque toda a sinalização agora é tratada diratamente no canal ZAP do Asterisk.

E para provar que funciona fizemos testes com a versão 1.2 e 1.4 do Asterisk em um link MFCR/2 da GVT.

Primeira parte:

1 - Instalação da lib OpenR2:

Passo 1: Instale o pacote subversion, no Debian/Ubuntu:

apt-get install subversion

Passo 2: Fazer o download do repositorio

cd /usr/src
svn co svn://libopenr2.org/openr2/trunk openr2

Passo 3: Compilando

cd openr2
./configure --prefix=/usr --with-r2test
make && make install

2 - Instalaçao do Asterisk com OpenR2

Para a instalação da versão 1.4 no GNU/Linux Debian/Ubuntu seguem os passos:

Passo 1: instale o pacote subversion com o apt.

apt-get install subversion

Passo 2: Faça o download do código fonte no SVN da Digium:

cd /usr/src
svn checkout http://svn.digium.com/svn/asterisk/team/moy/mfcr2-1.4 asterisk-1.4-openr2
 
Passo 3: Compilar e instalar

cd asterisk-1.4-openr2
./configure && make && make install

obs: NAO execute "make samples" caso vc ja tenha um Asterisk no servidor pois vc corre o risco de perder os arquivos do diretório /etc/asterisk. Faça um BACKUP!!!

Passo 4: Alterando o arquivo ZAPTEL.CONF:

Primeiro edite o arquivo /etc/zaptel.conf

vim /etc/zaptel.conf

Supondo que você tenha uma placa TE110P conectado a rede pública, o arquivo deve ficar desta forma:

-----------------------------
span=1,1,0,cas,hdb3
cas=1-15:1101
cas=17-31:1101
dchan=16
loadzone=br
defaultzone=br
----------------------------

Segundo: execute o comando ztcfg para aplicar as modificações:

ztcfg -vvvvvvvv

a saida do comando sera:
 
----------------------------------------------------------------------------------------:
Zaptel Version: SVN-branch-1.4-r4348
Echo Canceller: MG2
Configuration
======================
SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)

Channel map:

Channel 01: CAS / User (Default) (Slaves: 01)
Channel 02: CAS / User (Default) (Slaves: 02)
Channel 03: CAS / User (Default) (Slaves: 03)
Channel 04: CAS / User (Default) (Slaves: 04)
Channel 05: CAS / User (Default) (Slaves: 05)
Channel 06: CAS / User (Default) (Slaves: 06)
Channel 07: CAS / User (Default) (Slaves: 07)
Channel 08: CAS / User (Default) (Slaves: 08)
Channel 09: CAS / User (Default) (Slaves: 09)
Channel 10: CAS / User (Default) (Slaves: 10)
Channel 11: CAS / User (Default) (Slaves: 11)
Channel 12: CAS / User (Default) (Slaves: 12)
Channel 13: CAS / User (Default) (Slaves: 13)
Channel 14: CAS / User (Default) (Slaves: 14)
Channel 15: CAS / User (Default) (Slaves: 15)
Channel 16: D-channel (Default) (Slaves: 16)
Channel 17: CAS / User (Default) (Slaves: 17)
Channel 18: CAS / User (Default) (Slaves: 18)
Channel 19: CAS / User (Default) (Slaves: 19)
Channel 20: CAS / User (Default) (Slaves: 20)
Channel 21: CAS / User (Default) (Slaves: 21)
Channel 22: CAS / User (Default) (Slaves: 22)
Channel 23: CAS / User (Default) (Slaves: 23)
Channel 24: CAS / User (Default) (Slaves: 24)
Channel 25: CAS / User (Default) (Slaves: 25)
Channel 26: CAS / User (Default) (Slaves: 26)
Channel 27: CAS / User (Default) (Slaves: 27)
Channel 28: CAS / User (Default) (Slaves: 28)
Channel 29: CAS / User (Default) (Slaves: 29)
Channel 30: CAS / User (Default) (Slaves: 30)
Channel 31: CAS / User (Default) (Slaves: 31)

31 channels to configure.
-----------------------------------------------------------------------

Passo 5: Alterando o arquivo ZAPATA.CONF.

vim /etc/asterisk/zapata.conf

----------------------------------------
[channels]
usecallerid=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echotrainning=yes
echocancelwhenbridged=yes

signalling=mfcr2
mfcr2_variant=br
mfcr2_get_ani_first=no
mfcr2_max_ani=20
mfcr2_max_dnis=4                                  
mfcr2_category=national_subscriber
mfcr2_logdir=span1
mfcr2_logging=all

group=1
callgroup=1
pickupgroup=1
callerid=asreceived
context=from-mfcr2

channel => 1-15,17-31
-------------------------------------------------

Passo 6: Alterando o plano de discagem (EXTENSIONS.CONF)

vim /etc/asterisk/extensions.conf

-------------------------------------------------
[default]

exten => _XXXXXXXX,1,Set(CALLERID(num)=1145678990)
exten => _XXXXXXXX,n,Dial(ZAP/g1/${EXTEN},60,tT)

----------------------
OBS: O Uso de Aplicação SET foi necessário para enviar o CALLERID do número chave do DDR, troque o numero 01145678990 pelo seu numero DDR, lembre-se que caso vc nao envie corretamente o numero do seu DDR a operadora pode bloquear a chamada.

Passo 7: Testando a solução:

 Agora configure um ramal no contexto default, e ligue para um numero qualquer, observe na CLI do Asterisk se a chamada pode ser completada, caso ocorra algum erro o melhor é voce debugar a chamada.

saida da CLI>
------------------------------------
  -- Executing Set("SIP/8564-081ca5d8", "CALLERID(num)=1145678990") in new stack
    -- Executing Dial("SIP/8564-081ca5d8", "ZAP/g1/35678899|60|tT") in new stack
------------------------------------

Passo 8: Debugando a chamada com OpenR2

Para detectar os erros que podem ocorrer nas chamadas voce deve colocar a CLI em modo DEBUG, para tal siga os passos:

Primeiro: Edite o arquivo /etc/asterisk/logger.conf

vim /etc/asterisk/logger.conf

-------------------------------------------------------
[logfiles]

console => notice,warning,error,debug
-------------------------------------------------------
Adicione o parametro debug no final da linha console.

Segundo: Agora volte na CLI do  Asterisk e recareegue o módulo logger.

CLI> module reload logger

Terceiro: Teste a ligação

Um debug de uma chamada com OpenR2 para comparação:
----------------------------------------------------------------------------------------------
Aug  4 15:35:48 DEBUG[7392]: chan_sip.c:7335 check_user_full: Setting NAT on RTP to 0
Aug  4 15:35:48 DEBUG[7392]: chan_sip.c:1416 __sip_ack: Stopping retransmission on 'ZTNjYTkyNWFkM2VhNGFkMzY4NDFiNjk0Mzg3OGNmNDQ.' of Response 1: Match Found
Aug  4 15:35:48 DEBUG[7392]: chan_sip.c:7335 check_user_full: Setting NAT on RTP to 0
Aug  4 15:35:48 DEBUG[7392]: chan_sip.c:10733 handle_request_invite: Checking SIP call limits for device 8564
Aug  4 15:35:48 DEBUG[7392]: chan_sip.c:6308 build_route: build_route: Contact hop: <sip: :5061>
    -- Executing Set("SIP/8564-081c9de8", "CALLERID(num)=4830272171") in new stack
    -- Executing Dial("SIP/8564-081c9de8", "ZAP/g1/30258564|60|tT") in new stack
Aug  4 15:35:48 DEBUG[7654]: chan_zap.c:1295 zt_r2_get_channel_category: no MFC/R2 category specified for chan Zap/1-1, using default National Subscriber
Aug  4 15:35:48 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Attempting to make call (ANI=4830272171, DNIS=30258564, category=National Subscriber)
Aug  4 15:35:48 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - ABCD Rx << 0x9
Aug  4 15:35:48 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - No change in bits
Aug  4 15:35:48 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - ABCD Tx >> [SEIZE] 0x0
    -- Called g1/30258564
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:4820 __zt_exception: Exception on 21, channel 1
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:4002 zt_handle_event: Got event Bits Changed(13) on channel 1 (index 0)
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:4039 zt_handle_event: bits changed in chan 1
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - ABCD Rx << 0xD
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Bits changed from 0x8 to 0xC
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 3
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 3 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 3 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 0
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 0 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 0 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 2
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 2 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 2 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 5
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 5 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 5 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 8
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 8 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:49 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 8 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 5
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 5 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 5 [OFF]                      
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 6
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 6 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 6 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending DNIS digit 4
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 4 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 4 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending category National Subscriber
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 4
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 4 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 4 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 8
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 8 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:50 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 8 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 3
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 3 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 3 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 0
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 0 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 0 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 2
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 2 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 2 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 7
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 7 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 7 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 2
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 2 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 2 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 1
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 7
Aug  4 15:35:51 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 7 [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 7 [OFF]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending ANI digit 1
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [OFF]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 5 [OFF]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending more ANI unavailable
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> F [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 3 [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> F [OFF]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 3 [OFF]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - Sending category National Subscriber
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [ON]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Tx >> 1 [OFF]
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1505 zt_r2_write_log: Chan 1 - MF Rx << 1 [OFF]
Aug  4 15:35:52 NOTICE[7654]: chan_zap.c:1397 zt_r2_on_call_accepted: MFC/R2 call has been accepted on chan 1
Aug  4 15:35:52 DEBUG[7654]: chan_zap.c:1845 zt_enable_ec: Enabled echo cancellation on channel 1
Aug  4 15:35:52 NOTICE[7654]: chan_zap.c:1413 zt_r2_on_call_accepted: Call accepted on forward channel 1
    -- Zap/1-1 is ringing
-----------------------------------------------------------


Enfim uma solução rápida e de fácil instalalação, agora vamos testar e reportar os bugs encontrados o quanto antes para que o projeto OpenR2 venha nativo com Asterisk.

Felipe Ribeiro Pasa
Instrutor dCAP.
Tutoriais sobre Asterisk e VoIP
Alta disponibilidade no Asterisk
Este artigo foi publicado em Julho no blog do Cleviton Mendes de Araujo (http://clevitonmendes.blogspot.com/2008/07/alta-disponibilidade-ao-modo-fonebridge.html) . Achei interessante reproduzir aqui. Ele é uma tradução do White-Paper da RedFone, empresa que produz os equipamentos FoneBridge http://www.red-fone.com/assets/documents/HA_Whitepaper.pdf.  Os produtos da Redfone agora podem ser adquiridos no Brasil no ShopVoIP,  http://www.shopvoip.com.br/index.php?cPath=4_5803


Reproduzido conforme licença Creative Commons, mais detalhes verificar a origem.

Instalando o OpenR2 no Asterisk
A snalização MFC/R2 é uma sinalização utilizada em telefonia digital, entregue ao consumidor em um link de dados E1, encontrada com muita freqüencia em cidades do interior e em alguns pontos nas capitais brasileiras onde não existe a possibilidade de entrega de um link ISDN ou RDSI como é conhecido no Brasil. Como nos EUA a sinhalização MFC/R2 não existe, pouca ou melhor dizendo nenhuma importância foi dada ao desenvolvimento de bibliotecas que suportassem este tipo de sinalização no Asterisk.
BackTraces
BackTraces, você já usou? não?, então vamos lá...

Backtrace é um modo de obter informações sobre o que esta acontecendo de errado quando um programa fecha inesperadamente, no nosso caso vamos usar o asterisk como exemplo. Existem dois tipos de backtraces que também é conhecido como bt, que são: bt e bt full...
Ergonomia de um projeto
Um ponto algumas vezes esquecido, por nós técnicos, é a interface com o usuário. Nos preocupamos em dimensionar corretamente o servidor, ter uma boa infra-estrutura de rede, aplicar uma politica de QoS na rede entre outras e nos esquecemos de um fator determinante para o sucesso e aceitação dos nossos projetos: a interface com o usuário.
Comparando Asterisk e OpenSER
Se você trabalha com telefonia IP, talvez ainda não tenha ouvido falar do OpenSER, mas certamente você ouviu falar sobre o Asterisk. Bom eu adoro uma chamada polêmica e eu já vi esta questão formulada muitas vezes em fóruns e listas de discussão. Então eu vou me atrever a comparar estes dois softwares muito populares dedicados ao mercado de VoIP. A idéia aqui não é mostrar qual é o melhor, mas principalmente mostrar como eles são diferentes um do outro. Abaixo está uma comparação tópico por tópico.

Instalando o codec Speex no ASTERISK 1.4.x
Neste tutorial vou explicar como compilar e instalar o codec speex no ASTERISK, que é juntamente com o ilbc uma ótima alternativa para quem não quer gastar com licensas de codecs proprietários como o G729.

Simplificando (e baixando custos com) PoE
O Power over Ethernet é uma tecnologia relativamente nova que evoluiu sobre a, amplamente  divulgada Ethernet, que disponibiliza energia em corrente contínua confiavelmente através dos mesmos cabos que disponibilizam dados Ethernet.
Instalando qloganalyzer no ASTERISK p/ gerar relatórios de filas e cdr
O Queue LOG analyzer é uma opção GPL para geração de relatórios e gráficos sobre as filas e CDR Call Detailed Record do Asterisk . O autor é o Earl C. Terwillinger.

Publicidade
www.ipcomm2008.com.br/
www.shopvoip.com.br
www.khomp.com.br
www.shopvoip.com.br/index.php?cPath=4_70
www.orecx.com
www.asteriskexperts.com.br/content/view/252/1/
Enquete

Se você deseja publicar uma matéria ou anúncio neste site envie um e-mail para info@asteriskguide.com
Visite:  
Sua loja on-line de produtos e serviços VoIP. Digium, Xorcom, Linksys, DLink, Cisco, Grandstream, Alo-IP e muitos outros.
Treinamentos, Projetos, Telecom, Sistemas Operacionais, Suporte, Monitoramento...
Produtos e Suporte Cisco e Linksys
Seu novo ponto de licenciamento on-line. Microsoft, McAfee, Novell.

 
Todas as Marcas referidas neste website são ou podem ser marcas comerciais registradas e protegidas por leis internacionais
de copyright e propriedade industrial e pertencem aos seus respectivos fabricantes e proprietários.
 
All Brands referred in the website are or may be registered commercial brands and protected by copyright and industrial property
international laws and belong to their respective manufacturers and owners.