{"id":23,"date":"2010-07-08T12:58:39","date_gmt":"2010-07-08T15:58:39","guid":{"rendered":"http:\/\/blog.digavoip.com.br\/2010\/07\/08\/asterisk-introducao-e-algumas-implementacoes\/"},"modified":"2010-07-08T12:58:39","modified_gmt":"2010-07-08T15:58:39","slug":"asterisk-introducao-e-algumas-implementacoes","status":"publish","type":"post","link":"https:\/\/blog.abratel.com.br\/?p=23","title":{"rendered":"Asterisk, introdu\u00e7\u00e3o e algumas implementa\u00e7\u00f5es"},"content":{"rendered":"<p>Asterisk<br \/>\nO que \u00e9 o Asterisk?<\/p>\n<p>Asterisk \u00e9 um software de PBX completo. Ele roda em Linux e prov\u00ea todas as funcionalidades que voc\u00ea poderia esperar de um PBX e muito mais. Asterisk faz Voz sobre IP em tr\u00eas diferentes protocolos e pode se integrar \u00e0 maioria dos padr\u00f5es de telefonia utilizando hardware de baixo custo.<\/p>\n<p>Distribui\u00e7\u00e3o Asterisk<\/p>\n<p>\u2022Elastix<br \/>\n\u2022TrixBox<br \/>\n\u2022VoIPonCD<br \/>\n\u2022Fonalitv<br \/>\n\u2022Disc-OS<br \/>\n\u2022Meucci<\/p>\n<p>Surgimento do Asterisk<br \/>\nPara falar da cria\u00e7\u00e3o do Asterisk, temos antes que comentar a cria\u00e7\u00e3o do Zapata.<\/p>\n<p>O projecto ZAPATA foi conduzido por Jim Dixon, Ele \u00e9 o respons\u00e1vel pelo envolvimento do hardware da Digium. Ele desenvolveu inicialmente para o sistema FreeBSD um driver para a placa Mitel89000C \u201cISDN Express Development Card\u201d, e no sistema operacional funcionava numa API desenvolvida inicialmente pela AT&#038;T com algumas funcionalidades de correio de voz e auto-atendimento, esta API foi chamada de Audix. O Audix funcionava em plataforma UNIX e custava como tudo em telefonia, milhares de d\u00f3lares por porta e com as funcionalidades bastante limitadas. Jim ent\u00e3o notou que existia uma grande limita\u00e7\u00e3o de I\/O na placa Mitel89000C e resolveu desenvolver a sua pr\u00f3pria placa disponibilizando todos os ficheiros do projecto, incluindo fotos e ficheiros de plotagem na Internet baptizando o projecto de Zapata. Como o conceito era revolucion\u00e1rio, Jim inspirado no mexicano (Emiliano Zapata), baptizou a primeira placa com o nome de tormenta, o mesmo nome da organiza\u00e7\u00e3o de Emiliano Zapata. Ap\u00f3s a publica\u00e7\u00e3o de todas essas coisas na Internet, a resposta que Jim recebia constantemente era se existia o driver para Linux, ele nunca havia tido contacto com o Linux antes, e as dificuldades para entender os conceitos de m\u00f3dulos carreg\u00e1veis fez com que Jim disponibilizasse um pequeno hack do c\u00f3digo 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\u00e7\u00e3o de um PBX para a sua empresa de Help Desk, desenvolveu o Asterisk para controlar as liga\u00e7\u00f5es que seu Help Desk recebia. O conceito Asterisk at\u00e9 ent\u00e3o era funcional mas n\u00e3o tinha um hardware \u00fatil e pr\u00e1tico. O casamento do sistema de telefonia criado por Jim Dixon e o desenho da biblioteca de hardware\/driver e interface, permitiu \u00e0 Mark desenvolver novas funcionalidade e criar um sistema que poderia falar com telefones reais, linhas anal\u00f3gicas e digitais.<\/p>\n<p>Conceito<br \/>\nAsterisk \u00e9 um software de PBX, que funciona no sistema operacional Linux. O Asterisk faz Voz sobre IP utilizando os mais diversos protocolos, podendo se integrar a maioria dos padr\u00f5es de telefonia utilizando hardware de baixo custo. Utilizam softwares livres,ou seja, n\u00e3o exigem pagamentos de licen\u00e7as e garantem flexibilidade, qualidade e independ\u00eancia do fornecedor. O Asterisk proporciona conectividade com as redes STFC (Servi\u00e7o telef\u00f3nico fixo comutado) e com ele toda a estrutura de telefonia tradicional pode ser convertida para VoIP.<\/p>\n<p>O Asterisk faz toda a manipula\u00e7\u00e3o das chamadas e o que o utilizador desejar fazer com elas. A estrutura de telefonia interna se torna obsoleta, pois todo o tr\u00e1fego das chamadas, trafegam pela mesma rede de dados presente em qualquer empresa que tenha alguns computadores em rede trocando informa\u00e7\u00f5es ou compartilhando acesso a Internet.<\/p>\n<p>Fun\u00e7\u00f5es<br \/>\nO Asterisk possui muitas aplica\u00e7\u00f5es, podendo substituir qualquer PBX tradicional com perif\u00e9ricos adicionais, reunindo-as em uma s\u00f3 m\u00e1quina. As aplica\u00e7\u00f5es mais usuais s\u00e3o:<\/p>\n<p>\u2022Correio de voz: Permite que em caso do assinante chamador n\u00e3o atender a chamada, o chamador receba um sinal solicitando que deixe uma mensagem. Semelhante a uma secret\u00e1ria electr\u00f3nica.<br \/>\n\u2022Distribuidor autom\u00e1tico de chamadas e fila de atendimento: \u00c9 o sistema utilizado em call-centers. Ele distribui as chamadas de entrada entre os atendentes. Caso n\u00e3o tenha nenhum atendente dispon\u00edvel, ele atende a chamada e toca uma m\u00fasica ou uma mensagem para que o chamador aguarde. Quando um atendedor \u00e9 liberado, o distribuidor encaminha a chamada.<br \/>\n\u2022Sistema de mensagens unificadas: Esse sistema direcciona todas as mensagens dos utilizadores em um \u00fanico lugar como, por exemplo, a caixa de correio electr\u00f3nico do utilizador. As mensagens de e-mail, mensagens de correio de voz e fax s\u00e3o encaminhadas para a caixa postal.<br \/>\n\u2022Servidor de m\u00fasica de espera: Sistema respons\u00e1vel pela m\u00fasica de espera. A m\u00fasica pode estar num ficheiro em formato mp3.<br \/>\n\u2022Discador autom\u00e1tico: utilizado em telemarketing, o programa disca para um n\u00famero e distribui para os operadores.<br \/>\n\u2022Sala de confer\u00eancia: Permite que 2 ou mais utilizadores falem em conjunto. Pode ser configurada uma senha de acesso a sala.<br \/>\n\u2022Media Gateway: Converte as liga\u00e7\u00f5es de telefonia anal\u00f3gicas em telefonia VoIP.<br \/>\n\u2022Unidade de Resposta Audivel (URA): permite ao Asterisk criar um sistema de resposta autom\u00e1tica. Muito usado para auto-atendimento, permitindo economia pois despensa os atendedores.<\/p>\n<p>A arquitectura do Asterisk<br \/>\nA arquitectura do Asterisk \u00e9 baseada em 4 pontos principais: Canais, Codecs, Protocolos e Aplica\u00e7\u00f5es, que ser\u00e3o apresentadas em maiores detalhes a seguir.<\/p>\n<p>Canais<br \/>\nSegundo (TEHA,2005), um canal pode ser interpretado como uma conex\u00e3o que \u201ctraz\u201d uma chamada ao Asterisk PBX. Um canal pode ser uma conex\u00e3o a um telefone anal\u00f3gico tradicional, ou a uma linha telef\u00f3nica STFC, ou uma chamada l\u00f3gica, como uma chamada via Internet. Do ponto de vista de canais, n\u00e3o existe distin\u00e7\u00e3o se \u00e9 um telefone ou uma linha telef\u00f3nica \u2013 tudo \u00e9 visto como CANAL. Toda chamada \u00e9 originada ou recebida em um canal distinto. Alguns exemplos de tipos de canais suportados pelo Asterisk s\u00e3o: SIP, H323, IAX, Skinny (driver para protocolo dos telefones IP Cisco), VOFR (Voz sobre Frame Relay), VPB (linhas telef\u00f3nicas para as placas FXO\/FXS da fabricante Voicetronix).<\/p>\n<p>Codecs<br \/>\nAo se pensar no conceito de Telefonia IP, podemos associar directamente a ideia de tentar colocar o m\u00e1ximo de chamadas poss\u00edveis atrav\u00e9s 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\u00e3o respons\u00e1veis por essa tarefa. O tr\u00e1fego de voz nos circuitos digitais STFC ocupa uma banda de 64 kbps. Aplicando-se codecs como o G711, para o tr\u00e1fego da voz em redes de dados, alcan\u00e7amos a mesma banda. Por\u00e9m 22 codecs como o GSM conseguem reduzir essa banda para aproximadamente 13 Kbps e o G729 consegue compress\u00e3o para uma reduzir a banda a 8 Kbps. Como outros tipos de codecs suportados podem listar G726, Speex, G723.<\/p>\n<p>Protocolos<br \/>\nOs protocolos s\u00e3o respons\u00e1veis por definir a forma\/linguagem como os pontos de comunica\u00e7\u00e3o v\u00e3o negociar entre si. S\u00e3o respons\u00e1veis por tarefas como sinaliza\u00e7\u00e3o para estabelecer conex\u00e3o, determinar ponto de destino, rotear entre pontos, e tamb\u00e9m quest\u00f5es de sinaliza\u00e7\u00e3o de telefonia como campainha, identificador de chamada, desconex\u00e3o, etc. O protocolo mais usado inicialmente era o H323, que tem sido sobreposto nos \u00faltimos tempos pelo SIP, tendo este \u00faltimo se difundido largamente, devido a sua simplicidade e objectividade. No \u00e2mbito do Asterisk, seu protocolo IAX tamb\u00e9m tem tido grande difus\u00e3o, devido ao seu tratamento de trunking e NAT.<\/p>\n<p>\u2022H.323 \u2013 foi criado pela International Telecommunication Union(ITU), e originalmente projectado para prover um mecanismo de transporte IP para v\u00eddeo confer\u00eancia. \u00c9 um dos protocolos de refer\u00eancia ao in\u00edcio do desenvolvimento de VoIP. \u00c9 comummente referenciado como superior ao SIP, por\u00e9m sua complexidade tem sido um dos grandes respons\u00e1veis pela sua impopularidade e consequente difus\u00e3o do SIP.<br \/>\n\u2022SIP \u2013 O Session Initiation Protocol(SIP) \u00e9 o protocolo que vem despontando nas comunica\u00e7\u00f5es de Voz sobre IP, sobrepondo a dom\u00ednio do H.323. A premissa do SIP \u00e9 de negociar as capacidades dentre dois (ou mais) pontos finais envolvidos numa comunica\u00e7\u00e3o. Muito da sua difus\u00e3o \u00e9 atribu\u00edda a sua simplicidade como protocolo, com uma sintaxe similar a outros protocolos tradicionais como HTTP e SMTP.<br \/>\n\u2022IAX \u2013 prov\u00e9m da sigla Inter-Asterisk eXchange protocol. \u00c9 um protocolo aberto desenvolvido voltado ao sistema Asterisk com o prop\u00f3sito de definir um modelo de comunica\u00e7\u00e3o entre servidores Asterisk. \u00c8 um protocolo de transporte que usa uma \u00fanica porta UDP(4569), tanto para sinaliza\u00e7\u00e3o, como para o tr\u00e1fego stream RTP, o que o torna mais f\u00e1cil para o tratamento em firewall\u00b4s e NAT. Possui a habilidade peculiar de fazer trunk de m\u00faltiplas sess\u00f5es em um \u00fanico fluxo de dados, reduzindo consequentemente o consumo de banda em situa\u00e7\u00f5es de conex\u00f5es de canais simult\u00e2neos para o um host remoto. O tr\u00e1fego de diversos canais acontecendo em um \u00fanico fluxo reduz o overhead(cabe\u00e7alho) de protocolo que aconteceria para o fluxo com canais individuais. Isso reduz a lat\u00eancia, o consumo de processamento e largura de banda requerida.<\/p>\n<p>Comparativo entre o SIP e o IAX<br \/>\n1. O IAX \u00e9 mais eficiente do que o RTP para qualquer n\u00famero de liga\u00e7\u00f5es e qualquer codec. O benef\u00edcio \u00e9 algo como 2.4Kbps para uma \u00fanica chamada podendo at\u00e9 triplicar o n\u00famero de chamadas poss\u00edveis a cada 1Mbps com o codec G.729. esta medi\u00e7\u00e3o \u00e9 feita no n\u00edvel de rede(MAC) e o canal em modo trunk.<\/p>\n<p>2. IAX \u00e9 um elemento de informa\u00e7\u00e3o codificado ao inv\u00e9s de ser codificado como ASCII. Isto torna as implementa\u00e7\u00f5es substancialmente mais simples e mais robustas contra ataques de buffer overflow, pois n\u00e3o existe a necessidade de interpreta\u00e7\u00e3o(parsing) de texto. O tamanho de uma sinaliza\u00e7\u00e3o IAX \u00e9 menor que as do SIP, mas isto n\u00e3o significa nada se a implementa\u00e7\u00e3o n\u00e3o for grande o suficiente, onde v\u00e1rias requisi\u00e7\u00f5es de registo s\u00e3o frequentemente realizadas. em termos gerais, IAX \u00e9 mais eficiente na sua codifica\u00e7\u00e3o, descodifica\u00e7\u00e3o e verifica\u00e7\u00e3o da informa\u00e7\u00e3o, isto torna dif\u00edcil a n\u00e3o compatibilidade de uma implementa\u00e7\u00e3o IAX feita por um autor e outra feita por outro autor, pois muito pouco \u00e9 necess\u00e1rio para a interpreta\u00e7\u00e3o de c\u00f3digo.<\/p>\n<p>3. IAX tem uma separa\u00e7\u00e3o clara entre as camadas 2 e 3, significando que tanto a sinaliza\u00e7\u00e3o quanto o \u00e1udio, tem estado definido, s\u00e3o transmitidos robustamente de maneira consistente. Quando uma chamada termina abruptamente, a chamada ir\u00e1 terminar de maneira tranquila, mesmo que n\u00e3o exista \u00e1udio e\/ou sinaliza\u00e7\u00e3o. SIP n\u00e3o tem este tipo de mecanismo, e sua confiabilidade do ponto de vista de sinaliza\u00e7\u00e3o \u00e9 obviamente pobre, necessitando de padr\u00f5es adicionais dentro do seu c\u00f3digo RF3261.<\/p>\n<p>4. Os modos unificados de sinaliza\u00e7\u00e3o e tr\u00e1fego de voz permite ao IAX fluir de forma transparente por NAT\u00b4s e proporciona a um Administrador de firewall ter que abrir somente uma porta para permitir o seu uso. Ele n\u00e3o requer que um cliente IAX saiba absolutamente nada a respeito da rede na qual ele est\u00e1 em opera\u00e7\u00e3o. Colocado de forma mais clara, nunca existir\u00e1 uma situa\u00e7\u00e3o que possa ser criada pelo firewall na qual o IAX n\u00e3o consiga completar uma chamada e n\u00e3o seja capaz de passar o tr\u00e1fego de voz (excepto, \u00e9 claro, se n\u00e3o existir banda suficiente).<\/p>\n<p>5. O sistema de transfer\u00eancia autenticada do IAX permite voc\u00ea transferir voz e controle de chamada de um servidor-de-meio de um jeito robusto de tal forma que se as duas pontas n\u00e3o poderem se verem por alguma raz\u00e3o, a chamada continua atrav\u00e9s do servidor central.<\/p>\n<p>6. O IAX separa claramente o Caller*ID do mecanismo de autentica\u00e7\u00e3o do utilizador. O SIP n\u00e3o tem um m\u00e9todo claro de fazer isso a n\u00e3o ser que o Remote-Party-ID seja utilizado.<\/p>\n<p>7. O SIP \u00e9 um padr\u00e3o do IETF. Apesar de existir alguma documenta\u00e7\u00e3o recente cortesia de Frank Miller, o IAX ainda n\u00e3o \u00e9 uma publica\u00e7\u00e3o padr\u00e3o neste momento.<\/p>\n<p>8. O IAX permite a uma ponta verificar a validade de um n\u00famero de telefone para saber se o n\u00famero est\u00e1 completo, possa ser completado, ou esteja completo mas possa estar grande demais. N\u00e3o existe uma maneira para suportar completamente isso no SIP.<\/p>\n<p>9. O IAX sempre envia DTMF fora de banda de modo que nunca existe qualquer confus\u00e3o sobre qual m\u00e9todo a ser utilizado.<\/p>\n<p>10. O IAX suporta transmiss\u00e3o de linguagem e contexto, que \u00e9 muito \u00fatil em um ambiente Asterisk.<\/p>\n<p>Aplica\u00e7\u00f5es<br \/>\nComo pode ser visto da defini\u00e7\u00e3o de extens\u00f5es, as aplica\u00e7\u00f5es determinam as ac\u00e7\u00f5es a serem tomadas pelo Asterisk. Elas s\u00e3o respons\u00e1veis por fazer o tratamento do canal, desde atendendo uma chamada, tocando uma grava\u00e7\u00e3o, recebendo d\u00edgitos, desligando uma chamada, ou qualquer outro formado de aplica\u00e7\u00e3o que possa ser implementado para uso em uma estrutura de telefonia, como a exemplo de um sistema de pedidos com reconhecimento de voz.<\/p>\n<p>Para conectar as chamadas de entrada com as chamadas de sa\u00edda ou outros utilizadores do Asterisk s\u00e3o usadas diversas aplica\u00e7\u00f5es, como o Dial. A maior parte das funcionalidades do Asterisk s\u00e3o criadas na forma de aplica\u00e7\u00f5es como o VoiceMail, correio de voz, confer\u00eancia, entre outras.<\/p>\n<p>Ficheiro:Arquitetura ASTERISK.JPEG<\/p>\n<p>Plano de discagem<br \/>\nO plano de discagem \u00e9 o cora\u00e7\u00e3o do Asterisk. Ele \u00e9 que define como o Asterisk ir\u00e1 fazer a gest\u00e3o das chamadas. Consiste de uma lista de instru\u00e7\u00f5es ou passos que o Asterisk deve seguir. Essas instru\u00e7\u00f5es s\u00e3o disparadas a partir dos d\u00edgitos recebidos de um canal ou aplica\u00e7\u00e3o. Para configurar o Asterisk \u00e9 fundamental que se entenda o plano de discagem dele. A maior parte do plano de discagem est\u00e1 contida no ficheiro extensions.conf no direct\u00f3rio \/etc\/asterisk. O ficheiro pode ser separado em quatro partes: Contextos,Extens\u00f5es, Prioridades e Aplica\u00e7\u00f5es.<\/p>\n<p>Contextos<br \/>\nOs contextos s\u00e3o respons\u00e1veis pela organiza\u00e7\u00e3o e seguran\u00e7a do plano de discagem. Definem tamb\u00e9m o escopo, permitindo separar partes diferentes do plano de discagem. Os contextos est\u00e3o ligados directamente aos canais. Quando uma liga\u00e7\u00e3o entra no Asterisk por um canal, ela \u00e9 processada dentro de um contexto.\u201c Exemplificando: vamos supor que voc\u00ea tenha duas classes de ramais: aqueles que podem fazer liga\u00e7\u00f5es de longa dist\u00e2ncia e aqueles que n\u00e3o. Voc\u00ea pode criar dois contextos, [gerente] e [funcion\u00e1rio]. Dentro do contexto [gerente], quando o d\u00edgito \u201c0\u201d \u00e9 discado, ouve-se o tom de discagem da rede p\u00fablica. Dentro do contexto [funcion\u00e1rio] quando o d\u00edgito \u201c0\u201d \u00e9 discado, \u00e9 recebida, por exemplo, uma grava\u00e7\u00e3o \u201cliga\u00e7\u00e3o n\u00e3o autorizada\u201d . \u201d Exemplo extra\u00eddo de (MEGGELEN e outros, 2005)As extens\u00f5es s\u00e3o definidas dentro de cada contexto.<\/p>\n<p>Extens\u00f5es<br \/>\nAs extens\u00f5es s\u00e3o respons\u00e1veis por disparar um evento no Asterisk, determinando o fluxo das chamadas. No ficheiro de configura\u00e7\u00e3o possuem basicamente o formato:<\/p>\n<p>exten=> n\u00famero(nome), prioridade, aplica\u00e7\u00e3o.Quando um n\u00famero \u00e9 digitado, de acordo com a prioridade, uma aplica\u00e7\u00e3o ser\u00e1 executada. Exemplificando:<\/p>\n<p>exten=> 2025,1, Dial(SIP\/2025,10)<br \/>\nexten=> 2025,2, Dial(SIP\/2020,10)<br \/>\nexten=> 2025,3, voicemail(b2025)No exemplo acima, quando \u00e9 digitado o n\u00famero \u201c2025\u201d a primeira ac\u00e7\u00e3o(prioridade 1)tomada pelo Asterisk, \u00e9 de gerar uma chamada para o telefone IP usando SIP registado como 2025. Se a liga\u00e7\u00e3o n\u00e3o for atendida em 10 segundos, a pr\u00f3xima ac\u00e7\u00e3o(prioridade 2)\u00e9 desviar essa liga\u00e7\u00e3o fazendo uma chamada para o telefone SIP 2020, e caso tamb\u00e9m n\u00e3o haja resposta, a liga\u00e7\u00e3o \u00e9 encaminhada para a caixa de mensagem do telefone 2025.<\/p>\n<p>Prioridades<br \/>\nComo foi visto anteriormente, as prioridades s\u00e3o passos numerados, determinando uma ordem de ac\u00e7\u00f5es a serem tomadas. A sequ\u00eancia segue sempre na ordem num\u00e9rica crescente, todavia os n\u00fameros n\u00e3o precisam ser necessariamente consecutivos, podendo desta forma ter uma sequ\u00eancia de n\u00fameros de prioridades igual a 1, 2, 5, 9, por exemplo, que ser\u00e3o executados de forma crescente.<\/p>\n<p>Instalando o Asterisk<br \/>\nO ports do Asterisk actualmente \u00e9 mantido por Maxim Sobolev <sobomax (A) portaone (DOT) com > e v\u00e1rios outros desenvolvedores ao redor do mundo. O suporte \u00e0 Asterisk no FreeBSD \u00e9 pleno, n\u00e3o h\u00e1 qualquer funcionalidade que n\u00e3o esteja totalmente funcional. As pequenas excep\u00e7\u00f5es s\u00e3o m\u00f3dulos de terceiros, n\u00e3o oficialmente suportados pelo Asterisk, mas ainda assim estes m\u00f3dulos podem ser usados no FreeBSD com pequenas adapta\u00e7\u00f5es no c\u00f3digo.<\/p>\n<p>   nagazaki# cd \/usr\/ports\/net\/asterisk<br \/>\n   nagazaki# make install cleanOpcionalmente voc\u00ea pode evitar que o Ports compile o Asterisk com suporte a H.323. Sem H.323 a compila\u00e7\u00e3o ser\u00e1 bem mais r\u00e1pida. Esse protocolo \u00e9 pouco funcional e vem sendo amplamente substitu\u00eddo por SIP\/RTP, sendo praticamente um protocolo descontinuado no que tange \u00e0 VoIP (mas ainda utilizado em V\u00eddeo sobre IP). Se n\u00e3o quiser compilar com H.323, use a op\u00e7\u00e3o WITHOUT_H323=yes para instalar o asterisk:<\/p>\n<p>   nagazaki# cd \/usr\/ports\/net\/asterisk<br \/>\n   nagazaki# make WITHOUT_H323=yes install clean<br \/>\nCriando um ambiente de testes<br \/>\nConsiste em um ATA (Adaptador para telefone anal\u00f3gico), com duas portas FXS. Entendendo os modelos de portas FXO e FXS.<\/p>\n<p> FXS = Foreign EXchange Subscriber\u00c9 a interface que fornece a linha anal\u00f3gica, em outras palavras, \u00e9 o \u201cplug na parede\u201d.<\/p>\n<p> FXO = Foreign eXchange Office\u00c9 a interface do telefone.<\/p>\n<p>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\u00e1 fora do gancho. Digite um n\u00famero de telefone, que \u00e9 transmitido \u00e1 porta FXS em Tom Duplo de Multifrequ\u00eancia (DTMF). Liga\u00e7\u00e3o Interna: (FXS) A porta FXS recebe a liga\u00e7\u00e3o, e ent\u00e3o envia um impulso t\u00f3nico (som) ao dispositivo FXO anexado. O telefone toca. Assim que algu\u00e9m atende, pode responder a chamada. Ainda n\u00e3o tenho dispon\u00edvel em meu ambiente de testes uma porta FXO configurada no PBX, mas isso \u00e9 quest\u00e3o de tempo. Neste ambiente de testes, tenho a seguinte configura\u00e7\u00e3o:<\/p>\n<p>       [ MODEM ADSL ] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; [   Switch 8 portas   ]<br \/>\n                                                |               |<br \/>\n                                                |               |<br \/>\n                                                |               |<br \/>\n                                               [ ASTERISK ]  [ATA]<br \/>\n                                                                |<br \/>\n                                                           [Telefone]<br \/>\nCriando uma URA (Unidade de Resposta Aud\u00edvel)<br \/>\nNeste modelo, primeiro iremos gravar os prompts para a URA e logo ap\u00f3s ver como tudo ficou.<\/p>\n<p>O CONTEXTO [default] j\u00e1 vem por padr\u00e3o configurado no Asterisk.<\/p>\n<p>          ;Gravando os PROMPTS para a URA<br \/>\n    [default]<br \/>\n   ; Bem Vindo, para falar com suporte t\u00e9cnico pressione 1, outras op\u00e7\u00f5es pressione 2.<br \/>\n    exten => 1000,1,Record(bemvindo:gsm)<br \/>\n    exten => 1000,2,Hangup()<br \/>\n   ; Suporte t\u00e9cnico<br \/>\n    exten => 1001,1,Record(suporte:gsm)<br \/>\n    exten => 1001,2,Hangup()<br \/>\n   ; Atendimento ao cliente.<br \/>\n    exten => 1002,1,Record(atendimento:gsm)<br \/>\n    exten => 1002,2,Hangup()<br \/>\n    exten => 0800,1,Goto(ura,s,1)<br \/>\n           [ura]<br \/>\n    exten => s,1,Ringing<br \/>\n    exten => s,2,Background(bemvindo)<br \/>\n    exten => s,3,Wait(2)<br \/>\n    exten => s,4,Hangup()<br \/>\n    exten => 1,1,Playback(suporte)<br \/>\n    exten => 1,2,Hangup()<br \/>\n    exten => 2,1,Playback(atendimento)<br \/>\n    exten => 2,2,Hangup()Agora existem 3 novas op\u00e7\u00f5es inseridas em nossos CONTEXTOS.<\/p>\n<p>Record = Grava em um ficheiro de \u00e1udio, podemos escolher o tipo de grava\u00e7\u00e3o, gsm, mp3 e etc\u2026<\/p>\n<p>Wait = Aguarda alguns segundos antes de passar para a pr\u00f3xima op\u00e7\u00e3o do CONTEXTO.<\/p>\n<p>Background = Toca o ficheiro de \u00e1udio aguardando algum digito de resposta do utilizador.<\/p>\n<p>Discando para o n\u00famero 0800, o Asterisk ira nos redireccionar para o CONTEXTO [ura] na primeira regra s,1, iremos ouvir a chamada \u201cbem-vindo\u201d e durante a chamada j\u00e1 poderemos escolher a op\u00e7\u00e3o para o pr\u00f3ximo menu.<\/p>\n<p>Trunk<br \/>\nTrunk(tronco) nada mais \u00e9 que a liga\u00e7\u00e3o entre dois servidores Asterisks. Para ter uma conex\u00e3o de trunk \u00e9 necess\u00e1rio que voc\u00ea implemente as seguintes configura\u00e7\u00f5es nos dois PBXs:<\/p>\n<p>iax.conf<\/p>\n<p>register => UTILIZADOR-peer:password@IP<br \/>\n[UTILIZADOR-peer]<br \/>\nusername=OUTRO_SERVIDOR-user<br \/>\ntype=peer<br \/>\nsecret=password<br \/>\nqualify=yes<br \/>\nhost=IP<br \/>\ndisallow=all<br \/>\nallow=g729<br \/>\n[UTILIZADOR-user]<br \/>\ntype=user<br \/>\nsecret=password<br \/>\nhost=IP<br \/>\ndisallow=all<br \/>\ncontext=from-internal<br \/>\nallow=G729extensions.conf<\/p>\n<p>[trunk]<br \/>\nexten => _7XXX,1,Dial(IAX2\/UTILIZADOR-peer\/${EXTEN:1},30,r)<br \/>\nReencaminhar chamadas<br \/>\nO exemplo a seguir mostra como criar um script de siga-me, essa configura\u00e7\u00e3o permite que o Asterisk toque da sua mesa no escrit\u00f3rio, por exemplo, para um telem\u00f3vel e depois volte para o voicemail. Se voc\u00ea n\u00e3o estiver dispon\u00edvel para atender ou n\u00e3o quiser ele ir\u00e1 tocar de volta no voicemail.<\/p>\n<p>exten => 1234,1,dial(sip\/1234,20)<br \/>\nexten => 1234,2,playback(pls-wait-connect-call)<br \/>\nexten => 1234,3,Setvar(NewCaller=${CALLERIDNUM})<br \/>\nexten => 1234,4,SetCIDNum(0${CALLERIDNUM})<br \/>\nexten => 1234,5,dial(${TRUNK}c\/9871234321,20,r)<br \/>\nexten => 1234,6,SetCIDNum(${NewCaller})<br \/>\nexten => 1234,7,voicemail2(u1234@default)<br \/>\nexten => 1234,101,voicemail2(b1234@default)<br \/>\nexten => 1234,102,hangupExplica\u00e7\u00f5es:<\/p>\n<p>exten => 1234,1,dial(sip\/1234,20)Toca uma mensagem de transfer\u00eancia para que o chamador saiba que o sistema est\u00e1 fazendo alguma coisa.<\/p>\n<p>exten => 1234,2,playback(pls-wait-connect-call)Seta uma nova vari\u00e1vel com as informa\u00e7\u00f5es do caller id atual.<\/p>\n<p>exten => 1234,3,Setvar(NewCaller=${CALLERIDNUM})Coloca um 0 antes do n\u00famero do caller id para que a ponta chamada saiba que a chamada est\u00e1 vindo como uma transfer\u00eancia do telefone do escrit\u00f3rio, por exemplo.<\/p>\n<p>exten => 1234,4,SetCIDNum(0${CALLERIDNUM})Disca para o telem\u00f3vel 987-123-4321. D\u00e1 um toque para o chamador antes que # seja pressionado no telem\u00f3vel.<\/p>\n<p>exten => 1234,5,dial(${TRUNK}c\/9871234321,20,r)Se a ponta chamada escolhe n\u00e3o atender a chamada muda a informa\u00e7\u00e3o do caller id de volta.<\/p>\n<p>exten => 1234,6,SetCIDNum(${NewCaller})Direciona o chamador para o voicemail.<\/p>\n<p>exten => 1234,7,voicemail2(u1245@default)Se a ponta chamada estiver no telefone (o telem\u00f3vel estiver ocupado) direciona directo para o voicemail.<\/p>\n<p>exten => 1234,101,voicemail2(b1234@default)<br \/>\nexten => 1234,102,hangupO c depois do comando TRUNK \u00e9 o que faz a chamada esperar at\u00e9 que seja pressionado # para completar a chamada.<\/p>\n<p>Voc\u00ea pode utilizar alguma outra coisa ao inv\u00e9s de ,r que d\u00e1 ao chamador o sinal de chamando enquanto a chamada est\u00e1 sendo transferida para o telem\u00f3vel. Utilizando,m como op\u00e7\u00e3o ir\u00e1 tocar uma m\u00fasica em espera at\u00e9 algu\u00e9m atender.<\/p>\n<p>Puxando a liga\u00e7\u00e3o de um ramal<br \/>\nPara puxar a liga\u00e7\u00e3o de um telefone vizinho que n\u00e3o p\u00e1ra de tocar, fa\u00e7a as seguintes configura\u00e7\u00f5es:<\/p>\n<p>1 \u2013 Configure o grupo ao qual suas extens\u00f5es pertencem dentro de um ficheiro sip.conf, iax.conf, zapata.conf.<\/p>\n<p>[4&#215;00] callgroup=1 pickupgroup=1,2<\/p>\n<p>2 \u2013 Configure o ficheiro features.conf<\/p>\n<p>pickupexten=*8; Puxa a liga\u00e7\u00e3o quando digitado *8<\/p>\n<p>Vantagens<br \/>\n\u2022Redu\u00e7\u00e3o de Custos \u2013 A redu\u00e7\u00e3o de custos possibilitada pelo Asterisk pode ser vista de forma directa na economia com chamadas via IP, n\u00e3o mais passando em alguns casos pela STFC. Deve ser considerada tamb\u00e9m a economia indirecta quando falamos do agregado de fun\u00e7\u00f5es, que para serem disponibilizadas em uma central telef\u00f3nica convencional, eleva imensamente os custos, como a exemplo do recurso de Unidade de Resposta Aud\u00edvel (URA), que um m\u00f3dulo custa em torno de US$ 2.000,00<br \/>\n\u2022Autonomia para controle do sistema de telefonia \u2013 Esse \u00e9 um dos recursos de destaque, pois agora n\u00e3o existe mais a depend\u00eancia de um t\u00e9cnico de uma central propriet\u00e1ria. Funcionalidades, mudan\u00e7as e novos desenvolvimentos podem ser implementados facilmente.<br \/>\n\u2022Riqueza de recursos \u2013 As funcionalidades\/possibilidades s\u00e3o in\u00fameras. Citando apenas algumas funcionalidades que v\u00e3o al\u00e9m dos PBX: \u2013 Conectar empregados trabalhando em casa ao PBX da empresa sobre conex\u00e3o de banda larga (HomeOffice) \u2013 Conectar escrit\u00f3rios em localidades, at\u00e9 mesmos estados, diferentes, sobre IP, via Internet ou rede privada. \u2013 Correio de voz integrado ao e-mail\/webmail \u2013 Construir aplica\u00e7\u00f5es de resposta autom\u00e1tica por voz, que podem conectar o utilizador a um sistema de pedidos por exemplo, ou outras aplica\u00e7\u00f5es internas \u2013 Dar acesso ao PBX da empresa para utilizadores em viagem, conectando por exemplo a partir de um hotel ou aeroporto. Al\u00e9m de recursos s\u00f3 encontrados em sistemas topo de linha, como:<br \/>\n&#8211; Integra\u00e7\u00e3o para sintetizar fala (text-to-speech).<\/p>\n<p>&#8211; Registo de chamadas para integra\u00e7\u00e3o com sistema de tarifa\u00e7\u00e3o.<\/p>\n<p>&#8211; Integra\u00e7\u00e3o com reconhecimento de voz.<\/p>\n<p>&#8211; M\u00fasica em espera para clientes aguardando na fila (c\/ suporte a MP3).<\/p>\n<p>\u2022Plano de discagem flex\u00edvel e poderoso \u2013 Um dos destaques do sistema, \u00e9 a flexibilidade quanto ao plano de discagem, e recursos como controle de rota de menor custo.<\/p>\n<p>Problemas da Tecnologia<br \/>\nAlguns problemas ainda limitam uma maior explos\u00e3o na expans\u00e3o da telefonia IP. Alguns deles inerente a tecnologia, como \u00e9 o caso da confiabilidade ainda n\u00e3o desenvolvida totalmente ( quando haver fibra \u00f3ptica ser\u00e1 ultrapassada esta quest\u00e3o ), os custos dos equipamentos ainda s\u00e3o bem altos, por exemplo, um modelo dos mais simples de VoIP Fone actualmente n\u00e3o fica por menos de \u20ac 60,00.<\/p>\n<p>Outro grande ponto, \u00e9 a quest\u00e3o da base j\u00e1 instalada da estrutura STFC (Servi\u00e7o Telef\u00f3nico P\u00fablico Comutado), que j\u00e1 existe aproximadamente 1 bilh\u00e3o de linhas instaladas, existindo uma resist\u00eancia natural dos utilizadores at\u00e9 uma matura\u00e7\u00e3o maior da tecnologia, al\u00e9m das operadoras resistirem por conta da possibilidade de abertura do mercado com esse novo paradigma.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Asterisk O que \u00e9 o Asterisk? Asterisk \u00e9 um software de PBX completo. Ele roda em Linux e prov\u00ea todas as funcionalidades que voc\u00ea poderia esperar de um PBX e muito mais. Asterisk faz Voz sobre IP em tr\u00eas diferentes protocolos e pode se integrar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/23"}],"collection":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=23"}],"version-history":[{"count":0,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/23\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}