Você está na página 1de 87

Asterisk

Vicente de Paula Nobre vicente.proj@hotmail.com

Principais Tpicos
O que o asterisk Alguns Recursos Arquitetura do asterisk Hardware e software Cenrios de uso Instalao no Centos 5 Principais arquivos de configurao

Principais Tpicos
Sintaxe de configurao Plano de discagem com cliente SIP Correio de voz, salas de conferncia e Filas Estacionamento e transferncia de chamadas Captura e gravao de chamadas Plano de discagem com cliente IAX Interligar dois servidores Asterisk com IAX em modo trunk

O que o Asterisk
um PABX IP baseado em software livre sob licena GPL, que pode rodar em vrios sistemas operacionais, mais que se adqua melhor ao Linux Interliga redes IPs a rede de telefonia pblica

O que o Asterisk
Configurao de Recursos avanados e a agregao de novas funcionalidades. Foi desenvolvido pela Digium que tambm investe em Hardware de baixo custo Software de cdigo aberto, muitos desenvolvedores contribuem para o seu crescimento.

Alguns Recursos
Salas de Conferncias Gravao de chamadas Transferncia de ligaes Estacionamento de chamadas Filas de atendimento Correio de voz

Alguns Recursos
URA (unidade de resposta audvel) Planos de discagens flexveis Msica em espera Monitoramento de chamadas Uso de banco de dados (MySQL, PostgreSQL) Gerao de bilhetagem

Arquitetura do Asterisk

Arquitetura do Asterisk
Canais
- Linhas Telefnicas; - Analgicas, Digitais e Virtuais; - Modulados por Codecs;

Encapsulados por um Protocolo Sinalizador


- Estabelecer as conexes; - Campainha; - Desconexo;

Arquitetura do Asterisk
Codecs
Compresso da voz;

Principais
G.729a 8Kbits com licena; G.711 ulaw - usado nos EUA 64 Kbps; G.711 alaw - usado na Europa e Brasil 64 Kbps; G.723.1 - 5.3-6 Kbps com licena; GSM - 12-13 Kbps, Telefonia Celular;

Arquitetura do Asterisk
Protocolos
H323 Antigo protocolo para VoIP. IAX Inter-Asterisk Exchange Protocol; SIP Session Initiation Protocol; Skinny - Telefones IP da Cisco; ZAP/DAHDI Hardware de Digium;

Hardware e software
Adaptador SoftFone X-lite Telefone IP

Hardware e software

Placa de Telefonia IP

Exemplo com placa de Telefonia

Exemplo com banco de canais

Exemplo Interligando matriz e filial

Instalao
Utilizando uma distribuio Linux como o Centos 5:

Instalao
Baixa-se os pacotes do site da Digium:
- asterisk-1.4.40.tar.gz - asterisk-addons-1.4.13.tar.gz - dahdi-linux-2.4.1.1.tar ou zaptel-1.4.12.1.tar - dahdi-tools-2.4.1.tar.gz - libpri-1.4.11.5.tar.gz - sounds-1.0-pt_BR.tar.gz - Disc-OS-Sounds-1.0-pt_BR.tar

Instalao
Baixa-se os pacotes do site da Digium:
wget http://downloads.digium.com/pub/asterisk/asterisk1.4.40.tar.gz wget http://downloads.digium.com/pub/libpri/libpri1.4.11.5.tar.gz wget http://downloads.digium.com/pub/telephony/dahdilinux/dahdi-linux-2.4.1.1.tar wget http://downloads.digium.com/pub/telephony/dahditools/ dahdi-tools-2.4.1.tar.gz wget http://downloads.digium.com/pub/asterisk/asteriskaddons-1.4.13.tar.gz

Instalao
Copiam-se todos os arquivos para /usr/src
- Exemplo: # cp asterisk-1.4.40.tar.gz /usr/src - Para copiar todos os arquivos: # cp *.tar.gz /usr/src

Instalao
Entra no diretrio e descompacta
cd /usr/src # tar xzfv asterisk-1.4.40.tar.gz # tar xzfv asterisk-addons-1.4.13.tar.gz # tar xzfv dahdi-linux-2.4.1.1.tar # tar xzfv dahdi-tools-2.4.1.tar.gz # tar xzfv libpri-1.4.11.5.tar.gz

Instalao
Compilao e instalao dos Arquivos
Instalando o pacote dahdi-linux # cd dahdi-linux # vim README (opcional para ver como se instala) # make clean # ./configure # make # make install

Instalao
Compilao e instalao dos Arquivos
Instalando o pacote dahdi-tools # cd dahdi-tools-2.4.1 # make clean # ./configure # make # make install

Instalao
Compilao e instalao dos Arquivos
Instalando o pacote libpri # cd libpri-1.4.11.5 # make clean # make # make install

Instalao
Compilao e instalao dos Arquivos
Instalando o pacote asterisk
# cd asterisk-1.4.40 # make clean # ./configure # make menuselect (habilita/desabilita as opes do asterisk) # make # make install # make samples (arquivos de exemplos) # make config (configura os mdulos da maneira padro)

Instalao
Compilao e instalao dos Arquivos
Instalando o pacote asterisk-addons # cd asterisk-addons-1.4.13 # make clean # ./configure # make # make menuselect # make install # make samples

Instalao
Compilao e instalao dos Arquivos
Instalando o pacote sounds # cp sounds-1.0-pt_BR.tar.gz /var/lib/asterisk # cd /var/lib/asterisk # tar xzfv sounds-1.0-pt_BR.tar.gz ou # cp Disc-OS-Sounds-1.0-pt_BR.tar /var/lib/asterisk # cd /var/lib/asterisk # tar xf Disc-OS-Sounds-1.0-pt_BR.tar

Carregando o dahdi_dummy
Para que funcione salas de conferncia preciso ter uma placa instalada no servidor para gerar uma temporizao, no caso de no haver necessrio carregar o modulo dahdi_dummy ou ztdummy. # lsmod | grep dahdi_dummy # modprobe dahdi_dummy ou no caso do pacote zaptel-1.4.12.1.tar # lsmod | grep ztdummy # modprobe ztdummy

Carregando o dahdi_dummy
# echo "dahdi_dummy" >> /etc/modules O dahdi carregado no Linux como um servio: # /etc/init.d/dahdi start # /etc/init.d/asterisk restart Depois asterisk -r e execute o comando "dahdi show status"

Iniciando e parando o Asterisk


Iniciando
# /usr/sbin/asterisk vvvc

Parando
# stop now

Arquivos de configurao
O asterisk controlado por arquivos de configurao localizados em /etc/asterisk. No formato .conf os arquivos so divididos em sesses: [sessao1] chave = valor ; Designao da varivel [sessao2] objeto => valor ; Declarao do objeto [sessao3] objeto2 => valor ; Declarao do objeto2 ; Todos os arquivos seguem a mesma sintaxe

Arquivos de configurao
Existem algumas sesses com funes especificas: [general] .: Define os valores padro para todas as outras sesses [channels] .: Especifica os canais de comunicao dentro do arquivo zapata.conf [globals] .: Criao das variveis globais dentro de um plano de discagem

Estrutura do sistema de arquivos


Diretorio dos arquivos de configurao /etc/asterisk Diretorio dos Modulos, aplicaes e canais /usr/lib/asterisk/modules Diretorio de gravao da voz usadas no correio de voz /var/lib/asterisk/sounds Diretorio para Scripts AGI (Asterisk Gateway Interface) /var/lib/asterisk/agi-bin

Estrutura do sistema de arquivos


Principais arquivos:
sip.conf .: Clientes SIP. iax.conf .: Clientes IAX. extensions.conf.: Plano de discagem. voicemail.conf.: Correio de voz. queues.conf.: Filas de atendimentos. agents.conf.: Agentes que podero atender chamadas em filas. meetme.conf.: Salas de conferncia. manager.conf.: Administrador do servidor. features.conf: Configurao de transferncias, estacionamento, gravao de chamadas e etc.

Arquivo Sip.conf
Contm parmetros de configurao dos telefones e operadoras SIP. Os clientes devem estar configurados antes que possam fazer e receber chamadas.

Arquivo Sip.conf
Na sesso [general], define-se os valores das variveis padro para todos os canais SIP. Atravs da seguinte sintaxe: [general] variavel=valor1 variavel=valor2 [nome_sessao] type=friend/peer/user context=NomeContexto host=dynamic secret=senha_da_conta

Arquivo Sip.conf
Alguns parmetros da sesso general:
allow: Permite que um determinado codec seja usado disallow: Probe um determinado codec bindaddr: IP onde o Asterisk ir esperar pelas conexes SIP context: Configura o contexto padro para todos os cliente SIP port: Porta para conexes de entrada SIP, o padro 5060 maxexpirey: Tempo mximo para registro em segundos defaultexpirey: Tempo padro para registro em segundos register: Registra o Asterisk com outro host

Arquivo Sip.conf
Exemplo de configurao sesso general:
[general] port=5060 bindaddr=0.0.0.0 context=ramais disallow=all allow=gsm maxexpirey=120 defaultexpirey=80 register=>vicente@freeworlddialup.com/5000

Arquivo Sip.conf
As sees seguintes definem os parmetros das entidades SIP tais como o nome de usurio, senha e endereo IP. Trs categorias de entidades SIP so definidas: peer: Entidade que recebe chamadas atravs do asterisk user: Entidade que faz chamadas atravs do Asterisk friend: Entidade que pode fazer e receber chamadas

Arquivo Sip.conf
Principais campos das sesses:
type: Configura a classe de conexo, opes so peer, user e friend host: Configura o endereo IP ou o nome do host. Pode-se usar tambm a opo dynamic onde se espera que o telefone se registre username: Esta opo configura o nome do usurio que o Asterisk tenta conectar quando uma chamada recebida secret: Senha para autenticar os peers e users fazendo uma chamada

Arquivo Sip.conf
[general] context=ramais port=5060 bindaddr=0.0.0.0 disallow=all allow=alaw language=pt_BR [2000] type=friend host=dynamic username=2000 secret= 698569 callerid=vicente<2000> [2050] type=friend host=dynamic username=2050 secret= 351654 context=externo callerid=maria<2050>

Arquivo Extensions.conf
O plano de discagem representado pelo extensions.conf Consiste de uma lista de instrues ou passos que o Asterisk deve seguir Essas instrues so disparadas de acordo com uma prioridade a partir dos dgitos recebidos de um canal ou aplicao

Arquivo Extensions.conf
O plano de discagem dividido em quatro conceitos: - Contextos - Extenses - Prioridades - Aplicaes Os contextos so definidos para cada canal dentro dos arquivos sip.conf, iax.conf, h323.conf e etc.

Arquivo Extensions.conf
Contextos
So responsveis pela organizao e segurana do plano de discagem Definem o escopo e permitem separar diferentes partes do plano de discagem Esto ligados diretamente aos canais, cada canal existe dentro de um contexto Quando uma ligao entra no Asterisk por um canal ela processada dentro de um contexto

Arquivo Extensions.conf
Contextos
Os contextos recebem o seu nome dentro de colchetes ([]s) Exemplo: [ramais] Todas as instrues colocadas aps a definio so partes do contexto

Arquivo Extensions.conf
Extenses
Dentro de cada contexto sero definidas as extenses Uma extenso uma string que vai disparar um evento [ramais]
exten=>2000,1,Dial(SIP/2000,20) exten=>2000,2,VoiceMail(u300) ;indisponvel exten=>2000,101,VoiceMail(b300) ;ocupado

A instruo exten=> descreve qual o prximo passo para a ligao O 2000 o numero discado O 1, 2e 101 so as prioridades que determinam a ordem de execuo

Arquivo Extensions.conf
Extenses
Extenses determinam o fluxo das chamadas Uma extenso definida com a sintaxe: exten=> extenso, prioridade(nome), aplicao O comando exten=> seguido por um nmero da extenso, uma vrgula, a prioridade, outra vrgula e a aplicao.

Arquivo Extensions.conf
Prioridades
Cada extenso executada dentro de um contexto atravs de prioridades e no por ordem de definio no arquivo Cada prioridade chama uma aplicao especifica [ramais] exten=>_20XX,1,Dial(SIP/${EXTEN},20) exten=>_20XX,n,VoiceMail(u300) exten=>_20XX,n,Hangup()

Arquivo Extensions.conf
Aplicaes
As aplicaes tratam o canal de voz: - Tocando sons. - Aceitando dgitos. - Correio de voz. - Sala de conferncia. - Desligando uma chamada e etc. As aplicaes so chamadas com opes que afetam a sua forma de funcionamento

Arquivo Extensions.conf
Exemplo de Aplicaes
So os utilitrios chamados a partir do plano de discagem: - Answer.: Atende a chamada e sincroniza o canal de udio - PlayBack.: Reproduz um arquivo de udio localizado em /var/lib/asterisk/sounds - BackGround.: Faz a mesma funo do PlayBack, mas permite a interao com o usurio - Dial.: Conecta dois canais de comunicao - MeetMe.: Entra em uma sala de conferncia configurada em meetme.conf - Queue.: Entra em uma determinada fila configurada em queues.conf - VoiceMail.: Chama uma caixa de mensagens configurado em voicemail.conf - Hangup.: Encerra a chamada

Plano de discagem simples


Passos para a criao de um ramal:
1 - Cadastr-lo no arquivo de configurao referente ao protocolo sip.conf, iax.conf, h323.conf e etc. 2 Definir o contexto ao qual a extenso participar 3 - Definir dentro do arquivo extensions.conf o plano de discagem para esse ramal

Plano de discagem simples


Arquivo sip.conf
Define valores padro [general] port=5060 bindaddr=0.0.0.0 disallow=all allow=alaw language=pt_BR Configura a extenso 3000 [3000] type=friend host=dynamic username=3000 secret=654321 callerid=vicente<3000> mailbox=300@default context=local

Plano de discagem simples


Arquivo sip.conf
Configura a extenso 3050 [3050] type=friend host=dynamic username=3050 secret=123456 callerid=maria<3050> mailbox=300@default context=local

Plano de discagem simples


Arquivo extensions.conf
[local] exten=> 3000,1,Dial(SIP/3000,20) exten=> 3000,2,HangUp() exten=> 3050,1,Dial(SIP/3050,20) exten=> 3050,2,HangUp() [local] exten=> _30XX,1,Answer exten=> _30XX,n,Wait(0.5) exten=> _30XX,n,PlayBack(hello-word) exten=> _30XX,n,Authenticate(875) exten=> _30XX,n,Dial(SIP/${EXTEN},20) exten=> _30XX,n,HangUp()

Arquivo Voicemail.conf
Permite que uma chamada ocupada ou no atendida seja enviada para uma secretria eletrnica
Passos para a criao de um correio de voz:

1. Em voicemail.conf defini-se os usurios e senhas para o correio de voz. 2. Em extensions.conf configura-se uma extenso para que uma chamada ocupada ou no atendida seja direcionada para a aplicao VoiceMail(). 3. Configura-se uma extenso para que o usurio possa ouvir seu correio de voz.

Arquivo Voicemail.conf
Voicemail.conf [general] format=gsm serveremail=asterisk@hotmail.com maxlogins=5 maxmsg=100 delete=no attach=yes [caixa_msg] include => general 600 => 123,vicente,vicente.proj@hotmail.com Sip.conf [4000] mailbox=600@caixa_msg

Arquivo Voicemail.conf
Extensions.conf [local] include=>correio exten => _40XX,1,Dial(SIP/${EXTEN},40) exten => _40XX,2,GoToIf($[${DIALSTATUS} = CHANUNAVAIL] ? 5) exten => _40XX,3,GoToIf($[${DIALSTATUS} = BUSY] ? 6) exten => _40XX,4,HangUp() exten => _40XX,5,VoiceMail(u600@caixa_msg) ; indisponvel exten => _40XX,6,VoiceMail(b600@caixa_msg) ; ocupado ; Acceso ao correio de voz [correio] exten => 100, 1, VoiceMailMain(600@caixa_msg) exten=> 100,n,HangUp()

Arquivo meetme.conf
A conferncia no Asterisk feita usando a aplicao MeetMe() O MeetMe() uma ponte de videoconferncia, que pode funcionar em qualquer tipo de canal
;meetme.conf [rooms] conf=>sala,senha ;Exemplo conf=> 500 conf=> 500,123456

Arquivo meetme.conf
No arquivo extensions.conf pode ser definido uma nova sesso chamada conferencia e essa sesso ser includa na sesso local atravs do parmetro include.
[local] include=>conferencia exten=> _30XX,1,Answer exten=> _30XX,n,Wait(0.5) exten=> _30XX,n,PlayBack(hello-world) exten=> _30XX,n,Authenticate(875) exten => _30XX,n,Dial(SIP/${EXTEN},20) exten => _30XX,n,Hangup()

Arquivo meetme.conf
[conferencia] exten=> 500,1,Answer exten=> 500,n,MeetmeCount(500,total) exten=> 500,n,ExecIf($[${total}=6]?HangUp) exten=> 500,n,MeetMe(500) exten=> 500,n,HangUp()

Arquivo queues.conf

Arquivo queues.conf
As filas de atendimento so criadas no arquivo queues.conf As filas possuem agentes para atender chamadas que so configuradas no arquivo agents.conf Podem ser configuradas mensagens durante o tempo de espera Propagandas Tempo mdio de espera Posio na fila

Exemplo de Fila
arquivo queues.conf [telemarkting] musicclass=default announce= anunciodafila timeout=15 retry=5 strategy=roundrobin monitor-format=gsm member=agent/1000 member=agent/1001 member=agent/1002

Exemplo de Fila
arquivo agents.conf [agents] agent => 1000,123,agente1 agent => 1001,1234,agente2 agent => 1002,12345,agente3

Exemplo de Fila
arquivo extensions.conf [telemarketing] exten=> 800,1,Answer exten=> 800,2,Queue(telemarketing) [login] exten=> 900,1,Answer exten=> 900,2,AgentLogin()

Estacionamento de Chamadas
Coloca uma chamada em uma fila de espera, para que algum outro ramal possa captur-lo. Configurado no arquivo features.conf parkext=700.: Extenso onde se deve transferir a chamada parkpos=701-709.: Salas disponveis para o estacionamento context=parkedcalls.: Contexto com regras de estacionamento parkingtime=60.: Tempo que a ligao ficar estacionada No arquivo extensions.conf adiciona-se a seguinte linha include=>parkedcalls

Transferncia de chamadas
Existem duas formas de transferncias:
-As cegas(blind transfer) No h a consulta previa do destinatrio da chamada, executado atravs da tecla # -Assistida(attended tranfer) H consulta previa do destinatrio da chamada, executado pela tecla FLASH

Transferncia de chamadas
Existem duas formas de transferncias:
So configuradas no arquivo features.conf: - blindxfer.: Define o cdigo para transferncia as cegas o padro o caractere #(sustenido) - atxfer.: Define o cdigo para transferncia assistida o padro o *2

Captura de chamadas
Transferir uma chamada que est tocando em outro ramal para o seu e assim atend-lo - Captura em grupo: Configurado no arquivo no arquivo features.conf especificando o parmetro: pickupexten.: *8 ;valor padro Agrupa-se os canais por meio de dois parmetros: callgroup.: Grupo, o qual o canal faz parte pickupgroup.: Grupos que os canais podem capturar chamadas

Captura de chamadas
Exemplo:
;arquivo sip.conf ou iax.conf e etc [1001] callgroup=1 pickupgroup=1,2 [1002] callgroup=2 pickupgroup=2
Obs.: Essa forma de captura de chamadas funciona apenas para canais que utilizem o mesmo protocolo de sinalizao como o SIP, IAX, H323 e etc.

Captura de chamadas
Captura direta:
Captura uma chamada diretamente especificando o ramal que se deseja capturar, independente do grupo e protocolo Implementa-se dentro do arquivo extensions.conf atravs da aplicao PickUp() Sintaxe: PickUp(extenso@contexto) Exemplo: exten=> _030xx,1,PickUp(${EXTEN:1}@local)

Gravao de chamadas
- MixMonitor.: Grava o udio da chamada no formato da extenso especificada - Sintaxe: MixMonitor(arquivo.ext,opes) - Opes: a .: Adiciona no final do arquivo a gravao ao invs de subscrever o udio b .: Grava o udio depois da chamada ser atendida

Gravao de chamadas
Exemplo:
[local] exten=> _40xx,1,MixMonitor(chamada-${EXTEN}.gsm,ab) exten=> _40xx,n,Dial(SIP/${EXTEN},20,tTwW) exten=> _40xx,n,HangUp()
;localizao dos arquivos: /var/spool/asterisk/monitor/

t .: habilita transferncia de chamadas para o lado destino T .: habilita transferncia de chamadas para o lado originador w .: habilita gravao da chamada para o lado destino W .: habilita gravao da chamada para o lado originador

Gravao de chamadas
- Monitor.: Grava o udio da chamada no formato especificado em dois arquivos separados, entrada (-in) e sada(-out) - Sintaxe: Monitor(formato, arquivo,opes) - Opes: m.: Mixa os arquivos de entrada e sada ao final da gravao b.: Grava o udio aps a chamada ser atendida

Gravao de chamadas
Exemplo:
[local] exten=> _40xx,1,Monitor(WAV,chamada-${EXTEN},mb) exten=> _40xx,n,Dial(SIP/${EXTEN},20,tTwW) exten=> _40xx,n,HangUp()

Arquivo iax.conf
Permite a comunicao entre dois servidores asterisk Transporta sinalizao e mdia em uma nica porta TCP/IP-UDP, a 4569 No possui dificuldades para sinalizao e transporte de mdia entre pontos de conexo como NAT e Firewalls

Arquivo iax.conf
Cenrios de uso - Servidor IAX:
;arquivo iax [1000] type=friend context=local auth=md5 username=1000 secret=1000 callerid=1000 host=dynamic allow=gsm
;arquivo extensions.conf [local] exten=> _10XX,1,Dial(IAX2/${EXTEN},60) exten=> _10XX,n,Hangup()

Arquivo iax.conf
Cenrios de uso Modo Trunk
Permite a comunicao entre dois servidores asterisk O udio de varias chamadas ser agrupado em um nico conjunto de pacotes utilizando um nico cabealho IP Reduz a latncia fazendo uma economia na utilizao da rede, j que os cabealhos IPs ocupam um maior percentual de uso de banda

Arquivo iax.conf
Cenrios de uso Modo Trunk
Exemplo conectando matriz e filial com o IAX: IP da Matriz.: 192.168.0.1 - Faixa de ramais locais.: 10XX - Faixa de ramais externos.: 20XX IP da FILIAL: 192.168.0.3 - Faixa de ramais locais.: 20XX - Faixa de ramais externos.: 10XX

Arquivo iax.conf
Cenrios de uso Modo Trunk
Exemplo conectando matriz e filial com o IAX:
;codigo para a matriz [general] bindport=4569 bindaddr=0.0.0.0 disallow=all allow=gsm jitterbuffer=no forcejitterbuffer=no maxjitterbuffer=100
;ramal local para a matriz [1000] type=friend username=1000 secret=1000 host=dynamic context=local auth=md5 qualify=yes trunk=yes callerid=1000

Arquivo iax.conf
Cenrios de uso Modo Trunk
Exemplo conectando matriz e filial com o IAX:
;ramal para se conectar a filial [2000] type=friend username=2000 secret=2000 host=dynamic auth=md5 qualify=yes trunk=yes callerid=2000

Arquivo iax.conf
Cenrios de uso Modo Trunk
Exemplo conectando matriz e filial com o IAX:
;arquivo extensions.conf [local] include=>externo exten=> _10XX,1,Dial(IAX2/${EXTEN},60,tT) exten=> _10XX,n,Hangup() [externo] exten=> _20XX,1,Dial(IAX2/2000:2000@192.168.0.3/${EXTEN},60,tT) exten=> _20XX,n,Hangup()

Arquivo iax.conf
Cenrios de uso Modo Trunk
Exemplo conectando matriz e filial com o IAX:
;codigo para a filial [general] bindport=4569 bindaddr=0.0.0.0 disallow=all allow=gsm jitterbuffer=no forcejitterbuffer=no maxjitterbuffer=100 ;ramal para se conectar a matriz [1000] type=friend username=1000 secret=1000 host=dynamic auth=md5 qualify=yes trunk=yes callerid=1000

Arquivo iax.conf
Cenrios de uso Modo Trunk
Exemplo conectando matriz e filial com o IAX:
;ramal local para a filial [2000] type=friend username=2000 secret=2000 host=dynamic context=local auth=md5 qualify=yes trunk=yes callerid=2000

Arquivo iax.conf
Cenrios de uso Modo Trunk
Exemplo conectando matriz e filial com o IAX:
;arquivo extensions.conf [local] include=>externo exten=> _20XX,1,Dial(IAX2/${EXTEN},60,tT) exten=> _20XX,n,Hangup() [externo] exten=> _10XX,1,Dial(IAX2/1000:1000@192.168.0.1/${EXTEN},60,tT) exten=> _10XX,n,Hangup()

Contato, Criticas, Sugestes e Dvidas: vicente.proj@hotmail.com Endereo do You Tube: - http://www.youtube.com/user/voipjava Web sites: www.asterisk.org www.digium.com www.voip-info.org

Fim