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:
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. -----------------------------------------------------------------------
---------------------- 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
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.
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.
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...
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.
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.
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.
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.
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
Enquete
Se você deseja publicar uma matéria ou anúncio neste site envie um e-mail para info@asteriskguide.com
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.