Asterisk

De MediaWiki do Campus São José
Revisão de 17h25min de 4 de outubro de 2006 por Moecke (discussão | contribs) (→‎Aplicações)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar


História da telefonia

Desde Grahan Bell, várias mentes vem trabalhando em projetos de transportar voz sobre sobre linhas telefônicas. Essas pessoas eras em sua maioria, pessoas voltadas ao aspecto comercial, procurando desenvolver um produto pelo qual poderiam fazer sua fortuna.

Como podemos ver nos site http://www.museudotelefone.org.br, a telefonia, no seu inicio era extremamente cara, os equipamentos eram bastante grandes e a rede não era confiável.

É interessante comparar a história do telefone com a história do Linux, da Internet e do Asterisk. A história inicial do serviço telefônico aconteceu em um ambiente muito competitivo, com novas empresas aparecendo em todo mundo. Enquanto o Linux, a Internet e o Asterisk surgiram no meio acadêmico, que sempre priorizou o compartilhamento de conhecimento sobre o lucro.

As diferenças entre esses meios são óbvias. No ambiente comercial, as tecnologias tendem a ser fechadas, confusas e caras, enquanto no meio acadêmico, as tecnologias geralmente são abertas , bem documentadas e competitivas.

09-EstAvenida.jpg

VOIP

Voz sobre por IP, VoIP ou Voz sobre uma infrastrutura IP é a tecnologia que torna possível estabelecer conversações telefônicas que trafegam pela Internet ou uma rede IP em vez de uma linha dedicada à transmissão de voz. É um acrônimo de Voice over IP. A premissa básica de VOIP é o empacotamento de streams de áudio para o transporte sobre redes IP.

Como funciona?

Na figura a seguir temos um exemplo básico de conexão de um telefone IP a um Provedor de Serviços de Telefonia IP (ITSP) que permite fazer ligações de Telefone IP para Telefone IP ou para qualquer telefone fixo ou celular no mundo.

Esq tel2.gif

Neste outro cenário, conversas telefônicas entre matriz e filial podem ser feitas sem custo de ligações, já que todo o tráfego de voz seria transmitido via Internet, mesmo os usuários utilizando seus ramais telefônicos convencionais, de forma transparente. O sistema tem impacto imediato nos custos de interurbano. O investimento é pago com parte da economia feita mês a mês.

Voip.gif

A qualidade da conversação por meio da telefonia IP depende da velocidade de seu aceso a internet e da qualidade do aparelho utilizado, quando o acesso é lento podem ocorrer perdas de pacotes de informação ou atrasos em sua remessa de um computador a outro, o que causa falhas e baixa qualidade de som. Quando o aparelho é de baixa qualidade existe eco e problemas na transmissão da voz.

Requisitos e Dificuldades

Os desafios para alcançar esse objetivo estão relacionados com a maneira a qual os humanos se comunicam. Não apenas o sinal precisa chegar essencialmente da mesma forma que foi transmitido, mas também fazer esse trajeto em menos de 300 milisegundos – atraso limite não percebido pelo ouvido humano. Se pacotes são perdidos ou atrasados, haverá degradação na qualidade da comunicação.

Os protocolos de transporte da Internet não foram originalmente projetados para stream de tempo real. Os endpoints devem resolver perda de pacotes, esperando mais tempo para eles chegarem, solicitar retransmissão, ou, em alguns casos, considerar que a informação está correta, e simplesmente prosseguir ignorando a perda. Em uma conversação de voz natural, estes mecanismos não servem. Nossas conversações não se adaptam bem à perda de letras ou palavras, nem também atrasos consideráveis entre a transmissão e a recepção.

A RTFC foi projetada especificamente com o propósito de transmissão de voz, e é perfeitamente direcionada para essa tarefa, de um ponto de vista puramente técnico. De um ponto de vista de flexibilidade, entretanto, sua imperfeição(falha) é óbvia para qualquer pessoa com o mais limitado conhecimento da tecnologia. VoIP carrega a promessa de incorporar comunicação de voz em todos outros protocolos em nossas redes, mas devido às demandas especiais de uma conversação de voz, técnicas especiais são necessárias para projetar, construir, e manter essas redes.

O problema com transmissão de voz baseada em pacotes “nascem” da forma que falamos, pois é totalmente incompatível com forma a qual o IP transporta dados. Falar e ouvir consiste do relay de streams de áudio, ao passo que protocolos Internet são projetados para dividir tudo, encapsular os bits de informação em milhares de pacotes, e então entregar cada pacote em qualquer modo possível para o ponto final. Claramente, alguns tipos de ajustes ou tratamentos são necessários.

====Confiança/Continuidade==== Telefones convencionais estão conectados diretamente as linhas da companhia telefônica, e em caso de falhas de energia, não são diretamente afetadas. Entretanto, um usuário doméstico teria seu sistema VoIP (Aparelho e Linha de dados) baseado na estrutura elétrica da sua residência, e o tratamento a falhas, exigiria esforços adicionais, como o uso de nobreaks e/ou geradores.

====Integração com o sistema de numeração de telefonia global==== O sistema de telefonia fixa convencional e operadoras de telefonia celular seguem um padrão global(E.164) de alocação e identificação de uma linha telefônica específica. Alguns padrões tem sido trabalhados em VoIP, porém um direcionamento padronizado e compatível com o legado ainda não existe.

====Legado das operadoras convencionais==== É consenso que VoIP é um futuro inevitável, tanto que as próprias operadoras tradicionais já fazem uso da tecnologia, para facilitar operações e reduzir seus custos, porém é claro também que tentarão controlar(retardar) a difusão da tecnologia VoIP a fim de recuperar os investimentos nas estruturas tradicionais existentes.

====QoS – Qualidade de Serviço==== O tráfego de voz agora num circuito de dados não possui passagem exclusiva como acontecia na estrutura RTFC, e terá que concorrer no meio com tráfegos de outras naturezas. É nesse contexto que surge a necessidade do tratamento de priorização detráfego (QoS). Porém a implementação de QoS, de forma a atender a contento a todos os tráfegos não é tarefa simples, mesmo nas estruturas mais resumidas, imaginemos então numa estrutura macro como a estrutura de telefonia em âmbito global. Além disso, a natureza do tráfego de voz é altamente sensível a atraso, e a natural latência de circuitos com satélite, por exemplo, pode trazer prejuízos à comunicação.

Componentes da rede

Essa nova tecnologia esta redefinindo a arquitetura de um PBX, estagnada por longos anos. Muitos dos componentes, citados a seguir, são distríbuidos ao longo da rede para transmitir informações de voz e controle de ligação.

  • Controle de processo - é um servidor que executa uma aplicação que tem a função de controlar todas as chamadas como, por exemplo: o custo(bilhetagem) e qualidade delas e autenticação de usuários;
  • Dispositivos de ponta(endpoints) - são os telefones IPs ou softphones que se conectam diretamente na rede IP. Esses equipamentos precisam de um endereço IP e podem ser atualizados(firmware) através de um servidor TFTP com novas funcionalidades. Diferente do PBX tradicional, dois telefones IPs conversam diretamente, sem utilizar os recursos do servidor;
  • Gateway - são interfaces ou equipamentos que convertem a sinalização e o canal de voz dos telefones analógicos para a rede IP e vice-versa, fazendo a integração com a STPC.

Tipos de telefones IP

SoftPhones - Softwares

Softwares que simulam telefones reais e são instalados no computador para utilizarem a conexão do micro à internet ou Lan e que processam a comunicação e tradução dos pacotes em voz. Utilizam as caixas de som e o microfone do computador. A qualidade da conversação é baixa e depende da placa de som , microfone e caixas acústicas do computador e o compudator precisa estar ligado para que funcionem.

HardPhones - Telefones Reais

Aparelhos telefonicos reais que são diretamente ligados à internet ou rede Lan e que processam a comunicação e tradução dos pacotes em voz sem utilizar o computador. Existem também adaptadores que permitem o uso de seu aparelho telefônico convencional tranformando o mesmo em um telefone IP.

Provedores de Serviços de Telefonia IP (ITSP)

Para ligar para os telefones normais, fixos ou celulares em qualquer lugar no mundo é necessário o uso de um ITSP - Internet Telephony Service Provider, estes provedores possuem aparelhos especiais (gateways) que são ligados nas redes telefonicas normais em muitos países, este serviço é chamado de "Terminação".

Conectando seu Telefone IP a um destes ITSP você poderá ligar pela internet até o país desejado e lá realizar uma ligação local para o telefone de destino. Por isso as tarifas intrenacionais da Telefonia IP são tão baixas.

Os ITSP também fornecem números de telefone locais em muitos países, desta forma você pode ter um número de telefone e receber chamadas de telefones normais sem que a pessoa que está chamando pague tarifas internacionais.

ASTERISK

Surgimento do Asterisk

Para falar da criação do Asterisk, temos antes que comentar a criação do Zapata.

O projeto ZAPATA foi conduzido por Jim Dixon, Ele é o responsável pelo envolvimento do hardware da Digium. Ele desenvolveu inicialmente para o sistema FreeBSD um driver para a placa Mitel89000C "ISDN Express Development Card", e no sistema operacional rodava uma API desenvolvida inicialmente pela AT&T com algumas funcionalidades de correio de voz e auto-atendimento, esta API foi chamada de Audix. O Audix rodava em plataforma UNIX e custava como tudo em telefonia, milhares de dólares por porta e com as funcionalidades bastante limitadas. Jim então notou que existia uma grande limitação de I/O na placa Mitel89000C e resolveu desenvolver a sua própria placa disponibilizando todos os arquivos do projeto, incluindo fotos e arquivos de plotagem na Internet batizando o projeto de Zapata. Como o conceito era revolucionário, Jim inspirado no mexicano (Emiliano Zapata), batizou a primeira placa com o nome de tormenta, o mesmo nome da organização de Emiliano Zapata. Após a públicação de toda a parafernalha na Internet, a resposta que Jim recebia constantemente era se existia o driver para Linux, ele nunca havia tido contato com o Linux antes, e as dificuldades para entender os conceitos de módulos carregáveis fez com que Jim disponibilizasse um pequeno hack do código portado para Linux. Em 48 horas Jim recebeu a resposta de um desenvolvedor no Alabama (Mark Spencer), que se ofereceu para dar continuidade no desenvolvimento do driver para Linux. Mark Spencer inicialmente para suprir as dificuldades financeiras na aquisição de um PABX para a sua empresa de Help Desk, desenvolveu o Asterisk para controlar as ligações que seu Help Desk recebia. O conceito Asterisk até então era funcional mas não tinha um hardware útil e prático. O casamento do sistema de telefonia criado por Jim Dixon e o desenho da biblioteca de hardware/driver e interface, permitiu à Mark desenvolver novas funcionalidade e criar um sistema que poderia falar com telefones reais, linhas analógicas e digitais.

Conceito

Asterisk é um software de PABX, que roda no sistema operacional Linux. O Asterisk faz Voz sobre IP utilizando os mais diversos protocolos, podendo se integrar à maioria dos padrões de telefonia utilizando hardware de baixo custo. Utilizam softwares livres,ou seja, não exigem pagamentos de licença e garantem flexibilidade, qualidade e independência do fornecedor. O Asterisk proporciona conectividade com as redes STFC (Serviço telefônico fixo comutado) e com ele toda a estrutura de telefonia tradicional pode ser convertida para VoIP.

O Asterisk faz toda a manipulação das chamadas e o que o usuário desejar fazer com elas. A estrutura de telefonia interna se torna obsoleta, pois todo o tráfego das chamadas, trafegam pela mesma rede de dados presente em qualquer empresa que tenha alguns computadores em rede trocando informações ou compartilhando acesso à internet.

Funções

O Asterisk possui muitas aplicações, podendo substituir qualquel PBX tradicional com periféricos adicionais, reunindo-as em uma só máquina. As aplicações mais usuais são:

  • Correio de voz: Permite que em caso do assinante chamador não atender a chamada, o chamador receba um sinal solicitando que deixe uma mensagem. Semelhante a uma secretária eletrônica.
  • Distribuidor automático de chamadas e fila de atendimento: É o sistema utilizado em call-centers. Ele distribui as chamadas entrantes entre os atendentes. Caso não tenha nenhum atendente disponível, ele atende a chamada e toca uma música ou uma mensagem para que o chamador aguarde. Quando um atendedor é liberado, o distribuidor encaminha a chamada.
  • Sistema de mensagens unificadas: Esse sistema direciona todas as mensagens dos usuários em um único lugar como, por exemplo, a caixa de correio eletrônico do usuário. As mensagens de e-mail, mensagens de correio de voz e fax são encaminhadas para a caixa postal.
  • Servidor de música de espera: Sistema responsavel pela música de espera. A música pode estar num arquivo em formato mp3.
  • Discador automático: utilizado em telemarketing, o programa disca para um número e distribui para os operadores.
  • Sala de conferência: Permite que 2 ou mais usuários falem em conjunto. Pode ser configurada uma senha de acesso a sala.
  • Media Gateway: Converte as ligações de telefonia analógicas em telefonia voip.
  • Unidade de Resposta Audivel (URA): permite ao Asterisk criar um sistema de resposta automática. Muito usado para auto-atendimento, permitindo econômia pois despensa os atendedores.

A arquitetura do Asterisk

A arquitetura do Asterisk é baseada em 4 pontos principais: Canais, Codecs, Protocolos e Aplicações, que serão apresentadas em maiores detalhes a seguir.

Canais

Segundo (TEHA,2005), um canal pode ser interpretado como uma conexão que “traz” uma chamada ao Asterisk PBX. Um canal pode ser uma conexão a um telefone analógico tradicional, ou a uma linha telefônica STFC, ou uma chamada lógica, como uma chamada via internet. Do ponto de vista de canais, não existe distinção se é um telefone ou uma linha telefônica – tudo é visto como CANAL. Toda chamada é originada ou recebida em um canal distinto. Alguns exemplos de tipos de canais suportados pelo Asterisk são: SIP, H323, IAX, Skinny (driver para protocolo dos telefones IP Cisco), VOFR (Voz sobre Frame Relay), VPB (linhas telefônicas para as placas FXO/FXS da fabricante Voicetronix).

Codecs

Ao se pensar no conceito de Telefonia IP, podemos associar diretamente a idéia de tentar colocar o máximo de chamadas possíveis através de um circuito, a fim de fazer o melhor uso da estrutura. Isso pode ser feito codificando-se a voz em uma forma que ocupe menor banda. Os codecs são responsáveis por essa tarefa. O tráfego de voz nos circuitos digitais STFC ocupa uma banda de 64 kbps. Aplicando-se codecs como o G711, para o tráfego da voz em redes de dados, alcançamos a mesma banda. Porém 22 codecs como o GSM conseguem reduzir essa banda para aproximadamente 13 Kbps e o G729 consegue compressão para uma reduzir a banda a 8 Kbps. Como outros tipos de codecs suportados podem listar G726, Speex, G723.

Protocolos

Os protocolos são responsáveis por definir a forma/linguagem como os pontos de comunicação vão negociar entre si. São responsáveis por tarefas como sinalização para estabelecer conexão, determinar ponto de destino, roteamento entre pontos, e também questões de sinalização de telefonia como campainha, identificador de chamada, desconexão, etc. O protocolo mais usado inicialmente era o H323, que tem sido sobreposto nos últimos tempos pelo SIP, tendo este último se difundido largamente, devido a sua simplicidade e objetividade. No âmbito do Asterisk, seu protocolo IAX também tem tido grande difusão, devido ao seu tratamento de trunking e NAT.

  • H.323 - foi criado pela International Telecommunication Union(ITU), e originalmente projetado para prover um mecanismo de transporte IP para vídeoconferência. É um dos protocolos de referência ao início do desenvolvimento de VoIP. É comumente referenciado como superior ao SIP, porém sua complexidade tem sido um dos grandes responsáveis pela sua impopularidade e conseqüente difusão do SIP.
  • SIP - O Session Initiation Protocol(SIP) é o protocolo que vem despontando nas comunicações de Voz sobre IP, sobrepondo a domínio do H.323. A premissa do SIP é de negociar as capacidades dentre dois (ou mais) pontos finais envolvidos numa comunicação. Muito da sua difusão é atribuída a sua simplicidade como protocolo, com uma sintaxe similar a outros protocolos tradicionais como HTTP e SMTP.
  • IAX - provém da sigla Inter-Asterisk eXchange protocol. É um protocolo aberto desenvolvido voltado ao sistema Asterisk com o propósito de definir um modelo de comunicação entre servidores Asterisk. È um protocolo de transporte que usa uma única porta UDP(4569), tanto para sinalização, como para o tráfego stream RTP, o que o torna mais fácil para o tratamento em firewall´s e NAT. Possui a habilidade peculiar de fazer trunk de múltiplas sessões em um único fluxo de dados, reduzindo consequentemente o consumo de banda em situações de conexões de canais simultâneos para o um host remoto. O tráfego de diversos canais acontecendo em um único fluxo reduz o overhead(cabeçalho) de protocolo que aconteceria para o fluxo com canais individuais. Isso reduz a latência, o consumo de processamento e largura de banda requerida.

Comparativo entre o SIP e o IAX

1. O IAX é mais eficiente do que o RTP para qualquer número de ligações e qualquer codec. O benefício é algo como 2.4Kbps para uma única chamada podendo até triplicar o número de chamadas possíveis a cada 1Mbps com o codec G.729. esta medição é feita no nível de rede(MAC) e o canal em modo trunk.

2. IAX é um elemento de informação codificado ao invés de ser codificado como ASCII. Isto torna as implementações substancialmente mais simples e mais robustas contra ataques de buffer overflow, pois não existe a necessidade de interpretação(parsing) de texto. O tamanho de uma sinalização IAX é fenomenalmente menor que as do SIP, mas isto não significa nada se a implementação não for grande o suficiente, onde várias requisições de registro são frequentemente realizadas. em termos gerais, IAX é mais eficiente na sua codificação, decodificação e verificação da informação, isto torna difícil a não compatibilidade de uma implementação IAX feita por um autor e outra feita por outro autor, pois muito pouco é necessário para a interpretação de código.

3. IAX tem uma separação clara entre as camadas 2 e 3, significando que tanto a sinalização quanto o áudio, tem estado definido, são transmitidos robustamente de maneira consistente. Quando uma chamada termina abruptamente, a chamada irá terminar de maneira tranqüila, mesmo que não exista áudio e/ou sinalização. SIP não tem este tipo de mecanismo, e sua confiabilidade do ponto de vista de sinalização é obviamente pobre, necessitando de padrões adicionais dentro do seu código RF3261.

4. Os modos unificados de sinalização e tráfego de voz permite ao IAX fluir de forma transparente por NAT´s e proporciona a um Administrador de firewall ter que abrir somente uma porta para permitir o seu uso. Ele não requer que um cliente IAX saiba absolutamente nada a respeito da rede na qual ele está em operação. Colocado de forma mais clara, nunca existirá uma situação que possa ser criada pelo firewall na qual o IAX não consiga completar uma chamada e não seja capaz de passar o tráfego de voz (exceto, é claro, se não existir banda suficiente).

5. O sistema de transferência autenticada do IAX permite você transferir voz e controle de chamada de um servidor-de-meio de um jeito robusto de tal forma que se as duas pontas não poderem se verem por alguma razão, a chamada continua através do servidor central.

6. O IAX separa claramente o Caller*ID do mecanismo de autenticação do usuário. O SIP não tem um método claro de fazer isso a não ser que o Remote-Party-ID seja usado.

7. O SIP é um padrão do IETF. Apesar de existir alguma documentação recente cortesia de Frank Miller, o IAX ainda não é uma publicação padrão neste momento.

8. O IAX permite a uma ponta verificar a validade de um número de telefone para saber se o número está completo, possa ser completado, ou esteja completo mas possa estar grande demais. Não existe uma maneira para suportar completamente isso no SIP.

9. O IAX sempre envia DTMF fora de banda de modo que nunca existe qualquer confusão sobre qual método a ser usado.

10. O IAX suporta transmissão de linguagem e contexto, que é muito útil em um ambiente Asterisk.

Aplicações

Como pode ser visto da definição de extensões, as aplicações determinam as ações a serem tomadas pelo Asterisk. Elas são responsáveis por fazer o tratamento do canal, desde atendendo uma chamada, tocando uma gravação, recebendo dígitos, desligando uma chamada, ou qualquer outro formado de aplicação que possa ser implementado para uso em uma estrutura de telefonia, como a exemplo de um sistema de pedidos com reconhecimento de voz.

Para conectar as chamadas de entrada com as chamadas de saída ou outros usuários do Asterisk são usadas diversas aplicações, como o Dial. A maior parte das funcionalidades do Asterisk são criadas na forma de aplicações como o VoiceMail, correio de voz, conferência, entre outras.

Arquitetura ASTERISK.JPEG

Plano de discagem

O plano de discagem é o coração do Asterisk. Ele é que define como o Asterisk irá gerenciar as chamadas. Consiste de uma lista de instruções ou passos que o Asterisk deve seguir. Essas instruções são disparadas a partir dos dígitos recebidos de um canal ou aplicação. Para configurar o Asterisk é fundamental que se entenda o plano de discagem dele. A maior parte do plano de discagem está contida no arquivo extensions.conf nodiretório /etc/asterisk. O arquivo pode ser separado em quatro partes: Contextos,Extensões, Prioridades e Aplicações.

Contextos

Os contextos são responsáveis pela organização e segurança do plano de discagem. Definem também o escopo, permitindo separar partes diferentes do plano de discagem. Os contextos estão ligados diretamente aos canais. Quando uma ligação entra no Asterisk por um canal, ela é processada dentro de um contexto.“ Exemplificando: vamos supor que você tenha duas classes de ramais: aqueles que podem fazer ligações de longa distância e aqueles que não. Você pode criar dois contextos, [gerente] e [funcionário]. Dentro do contexto [gerente], quando o dígito “0” é discado, ouve-se o tom de discagem da rede pública. Dentro do contexto [funcionário] quando o dígito “0” é discado, é recebida, por exemplo, uma gravação “ligação não autorizada” . ” Exemplo extraído de (MEGGELEN e outros, 2005)As extensões são definidas dentro de cada contexto.

Extensões

As extensões são responsáveis por disparar um evento no Asterisk, determinando o fluxo das chamadas. No arquivo de configuração possuem basicamente o formato:

exten=> número(nome), prioridade, aplicação. 

Quando um número é digitado, de acordo com a prioridade, uma aplicação será executada. Exemplificando:

exten=> 2025,1, Dial(SIP/2025,10)
exten=> 2025,2, Dial(SIP/2020,10)
exten=> 2025,3, voicemail(b2025)

No exemplo acima, quando é digitado o número “2025” a primeira ação(prioridade 1)tomada pelo Asterisk, é de gerar uma chamada para o telefone IP usando SIP registrado como 2025. Se a ligação não for atendida em 10 segundos, a próxima ação(prioridade 2)é desviar essa ligação fazendo uma chamada para o telefone SIP 2020, e caso também não haja resposta, a ligação é encaminhada para a caixa de mensagem do telefone 2025.

Prioridades

Como foi visto anteriormente, as prioridades são passos numerados, determinando uma ordem de ações a serem tomadas. A seqüência segue sempre na ordem numérica crescente, todavia os números não precisam ser necessariamente consecutivos, podendo desta forma ter uma seqüência de números de prioridades igual a 1, 2, 5, 9, por exemplo, que serão executados de forma crescente.

Instalando o Asterisk

O ports do Asterisk atualmente é mantido por Maxim Sobolev <sobomax (A) portaone (DOT) com > e vários outros desenvolvedores ao redor do mundo. O suporte à Asterisk no FreeBSD é pleno, não há qualquer funcionalidade que não esteja totalmente funcional. As pequenas exceções são módulos de terceiros, não oficialmente suportados pelo Asterisk, mas ainda assim estes módulos podem ser usados no FreeBSD com pequenas adaptações no código.

   nagazaki# cd /usr/ports/net/asterisk
   nagazaki# make install clean


Opcionalmente você pode evitar que o Ports compile o Asterisk com suporte a H.323. Sem H.323 a compilação será bem mais rápida. Esse protocolo é pouco funcional e vem sendo amplamento substituído por SIP/RTP, sendo praticamente um protocolo descontinuado no que tange à VoIP (mas ainda usado em Vídeo sobre IP). Se não quiser compilar com H.323, use a opção WITHOUT_H323=yes para instalar o asterisk:


   nagazaki# cd /usr/ports/net/asterisk
   nagazaki# make WITHOUT_H323=yes install clean

Criando um ambiente de testes

Consiste em um ATA (Adaptador para telefone analogico), com duas portas FXS. Entendendo os modelos de portas FXO e FXS.

 FXS = Foreign EXchange Subscriber

É a interface que fornece a linha analógica, em outras palavras, é o "plug na parede".

 FXO = Foreign eXchange Office

É a interface do telefone.

Entendendo melhor o funcionamento das portas FXO e FXS. Ao realizar uma chamada: (FXO) Tire o telefone do gancho(dispositivo FXO). A porta FXS detecta que o telefone está fora do gancho. Digite um número de telefone, que é transmitido á porta FXS em Tom Duplo de Multifrequência (DTMF). Ligação Interna: (FXS) A porta FXS recebe a ligação, e então envia um impulso tônico (som) ao dispositivo FXO anexado. O telefone toca. Assim que alguém atende, pode responder a chamada. Ainda não tenho disponivel em meu ambiente de testes uma porta FXO configurada no PBX, mas isso é questão de tempo. Neste ambiente de testes, tenho a seguinte configuração:

       [ MODEM ADSL ] --------------------- [   Switch 8 portas   ]
                                                |               |
                                                |               |
                                                |               |
                                               [ ASTERISK ]  [ATA]
                                                                |
                                                           [Telefone]

Criando uma URA (Unidade de Resposta Audível)

Neste modelo, primeiro iremos gravar os prompts para a URA e logo após ver como tudo ficou.

O CONTEXTO [default] já vem por padrão configurado no asterisk.


           ;Gravando os PROMPTS para a URA
    [default]
    ; Bem Vindo, para falar com suporte técnico pressione 1, outras opções pressione 2.
    exten => 1000,1,Record(bemvindo:gsm)
    exten => 1000,2,Hangup()
    ; Suporte técnico
    exten => 1001,1,Record(suporte:gsm)
    exten => 1001,2,Hangup()
    ; Atendimento ao cliente.
    exten => 1002,1,Record(atendimento:gsm)
    exten => 1002,2,Hangup()
    exten => 0800,1,Goto(ura,s,1)
           [ura]
    exten => s,1,Ringing
    exten => s,2,Background(bemvindo)
    exten => s,3,Wait(2)
    exten => s,4,Hangup()
    exten => 1,1,Playback(suporte)
    exten => 1,2,Hangup()
    exten => 2,1,Playback(atendimento)
    exten => 2,2,Hangup()           

Agora existem 3 novas opções inseridas em nossos CONTEXTOS.

Record = Grava em um arquivo de aúdio, podemos escolher o tipo de gravação, gsm, mp3 e etc...

Wait = Aguarda alguns segundos antes de passar para a próxima opção do CONTEXTO.

Background = Toca o arquivo de aúdio aguardando algum digito de resposta do usuário.

Discando para o número 0800, o asterisk ira nos redirecionar para o CONTEXTO [ura] na primeira regra s,1, iremos ouvir a chamada "bemvindo" e durante a chamada já poderemos escolher a opção para o próximo menu.

Trunk

Trunk(tronco) nada mais é que a ligação entre dois servidores Asterisks. Para ter uma conexão de trunk é necessário que você implemente as seguintes configurações nos dois PBXs:

iax.conf

register => USUARIO-peer:password@IP
[USUARIO-peer]
username=OUTRO_SERVIDOR-user
type=peer
secret=password
qualify=yes
host=IP
disallow=all
allow=g729
[USUARIO-user]
type=user
secret=password
host=IP
disallow=all
context=from-internal
allow=G729

extensions.conf

[trunk]
exten => _7XXX,1,Dial(IAX2/USUARIO-peer/${EXTEN:1},30,r)

siga-me

O exemplo a seguir mostra como criar um script de siga-me, essa configuração permite que o asterisk toque da sua mesa no escritório, por exemplo, para um celular e depois volte para o voicemail. Se você não estiver disponível para atender ou não quiser ele irá tocar de volta no voicemail.

exten => 1234,1,dial(sip/1234,20)
exten => 1234,2,playback(pls-wait-connect-call)
exten => 1234,3,Setvar(NewCaller=${CALLERIDNUM})
exten => 1234,4,SetCIDNum(0${CALLERIDNUM})
exten => 1234,5,dial(${TRUNK}c/9871234321,20,r)
exten => 1234,6,SetCIDNum(${NewCaller})
exten => 1234,7,voicemail2(u1234@default)
exten => 1234,101,voicemail2(b1234@default)
exten => 1234,102,hangup

Explicações:

exten => 1234,1,dial(sip/1234,20)

Toca uma mensagem de transferência para que o chamador saiba que o sistema está fazendo alguma coisa.

exten => 1234,2,playback(pls-wait-connect-call)

Seta uma nova variável com as informações do caller id atual.

exten => 1234,3,Setvar(NewCaller=${CALLERIDNUM})

Coloca um 0 antes do número do caller id para que a ponta chamada saiba que a chamada está vindo como uma transferência do telefone do escritório, por exemplo.

exten => 1234,4,SetCIDNum(0${CALLERIDNUM})

Disca para o celular 987-123-4321. Dá um toque para o chamador antes que # seja pressionado no celular.

exten => 1234,5,dial(${TRUNK}c/9871234321,20,r)

Se a ponta chamada escolhe não atender a chamada muda a informação do caller id de volta.

exten => 1234,6,SetCIDNum(${NewCaller})

Direciona o chamador para o voicemail.

exten => 1234,7,voicemail2(u1245@default)

Se a ponta chamada estiver no telefone (o celular estiver ocupado) direciona direto para o voicemail.

exten => 1234,101,voicemail2(b1234@default)
exten => 1234,102,hangup

O c depois do comando TRUNK é o que faz a chamada esperar até que seja pressionado # para completar a chamada.

Você pode usar alguma outra coisa ao invés de ,r que dá ao chamador o sinal de chamando enquanto a chamada está sendo transferida para o celular. Usando ,m como opção irá tocar uma música em espera até alguém atender.

Puxando a ligação de um ramal

Para puxar a ligação de um telefone vizinho que não pára de tocar, faça as seguintes configurações:

1 - Configure o grupo ao qual suas extensões pertencem dentro de um arquivo sip.conf, iax.conf, zapata.conf.

[4x00] callgroup=1 pickupgroup=1,2

2 - Configure o arquivo features.conf

pickupexten=*8 ; Puxa a ligação quando digitado *8

Vantagens

  • Redução de Custos - A redução de custos possibilitada pelo Asterisk pode ser vista de forma direta na economia com chamadas via IP, não mais passando em alguns casos pela STFC. Deve ser considerada também a economia indireta quando falamos do agregado de funções, que para serem disponibilizadas em uma central telefônica convencional, eleva imensamente os custos, como a exemplo do recurso de Unidade de Resposta Audível (URA), que um módulo custa em torno de US$ 2.000,00
  • Autonomia para controle do sistema de telefonia - Esse é um dos recursos de destaque, pois agora não existe mais a dependência de um técnico de uma central proprietária. Funcionalidades, mudanças e novos desenvolvimentos podem ser implementados facilmente.
  • Riqueza de recursos - As funcionalidades/possibilidades são inúmeras. Citando apenas algumas funcionalidades que vão além dos PABX: - Conectar empregados trabalhando em casa ao PABX da empresa sobre conexão de banda larga (HomeOffice) - Conectar escritórios em localidades, até mesmos estados, diferentes, sobre IP, via Internet ou rede privada. - Correio de voz integrado ao e-mail/webmail - Construir aplicações de resposta automática por voz, que podem conectar o usuário a um sistema de pedidos por exemplo, ou outras aplicações internas - Dar acesso ao PABX da empresa para usuários em viagem, conectando por exemplo a partir de um hotel ou aeroporto. Além de recursos só encontrados em sistemas topo de linha, como:

- Integração para sintetizar fala (text-to-speech).

- Registro de chamadas para integração com sistema de tarifação.

- Integração com reconhecimento de voz.

- Música em espera para clientes aguardando na fila (c/ suporte a MP3).

  • Plano de discagem flexível e poderoso - Um dos destaques do sistema, é a flexibilidade quanto ao plano de discagem, e recursos como controle de rota de menor custo.

Problemas da Tecnologia

Alguns problemas ainda limitam uma maior explosão na expansão da telefonia IP. Alguns deles inerente a tecnologia, como é o caso da confiabilidade ainda não desenvolvida totalmente, os custos dos equipamentos ainda são bem altos, por exemplo, um modelo dos mais simples de VoIP Fone atualmente não fica por menos de R$ 450,00.

Outro grande ponto, é a questão da base já instalada da estrutura STFC (Serviço Telefônico Público Comutado), que já existe aproximadamente 1 bilhão de linhas instaladas, existindo uma resistência natural dos usuários até uma maturação maior da tecnlogia, além das operadoras resistirem por conta da possibilidade de abertura do mercado com esse novo paradigma.

FONTES