Tarifador de chamadas para FreeSwitch

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

TCC 1

Introdução

Com o crescimento do VoIP nos últimos tempos a necessidade de aplicações robustas e que façam mais do que encaminhar chamadas, se faz mais presente. A tempos existem aplicações baseadas em Asterisk como Elastix, Trixbox e FreePBX que servem para controle e configuração do mesmo para centrais telefônicas IP de pequeno/médio porte. E para ajudar na tarifação temos o a2billing (Asterisk2billing), que basicamente pega os bilhetes gerados pelo Asterisk e aplica valores, gera estatísticas e relatórios baseado em uma série de informações configuradas pelo próprio usuário.

Com a necessidade de algo que suportasse mais chamadas e que fosse menos complexo de configuração que o OpenSIPS, foi criado o FreeSWITCH. Diferentemente do Asterisk, o FreeSWITCH é um softswitch. Ele foi feito para encaminhar chamadas, porem ele suporta mais chamadas por segundo, e é escalável. Porem ele é um software praticamente novo, foi criado em 2006, e tem uma proposta diferente do Asterisk e muito menos tempo e reconhecimento no mercado. Hoje é complicado achar aplicações iguais a que temos baseadas em Asterisk. Visando a utilização do FreeSWITCH como um PABX IP, ou até mesmo como um Gateway VoIP, foi proposto o desenvolvimento de um tarifador de chamadas para o FreeSWITCH. O tarifador fará praticamente a mesma coisa que o a2billing faz hoje. Ele vai aplicar valores nos bilhetes gerados pelo FreeSWITCH e ira gerar relatórios e estatísticas.

Proposta

O futuro desse trabalho será focado na implementação de um tarifador em tempo real para FreeSWITCH. Para o mesmo ser realizado será feito um tarifador em Java, pois há um maior conhecimento nessa linguagem. O tarifador vai ter a tarefa de pegar os bilhetes gerados pelo FreeSWITCH e transformar em valores monetários, no caso de tarifação pós paga. Na tarifação pré paga, a tarifação terá que ser em tempo real, pois caso os créditos do usuário acabarem o sistema terá que ter a inteligencia de derrubar a chamada. Nada impede que a tarifação pós-paga seja feita em tempo real também, mas como não se sabe como isso vai impactar no sistema, está sendo optado por fazer da outra forma.

O FreeSWITCH será o “core” da solução. Ele foi escolhido pois hoje não existe um tarifador com interface para fácil configuração, tanto da tarifação em si, como para configuração do FreeSWITCH. O Asterisk não foi cogitado por ter o Asterisk2Billing, um tarifador que está a algum tempo no mercado e não iria acrescentar em muita coisa para comunidade VoIP. Sem falar nas outras soluções que já existem para o Asterisk. E o OpenSIPS também não foi cogitado, por sua complexidade de desenvolvimento. Não a parte visível para o usuário, mas a parte do “core” mesmo, onde teria que ser desenvolvida toda a parte de tratamento de chamadas e criação de eventos para tarifação.

Todas as ferramentas citadas acima trabalham com SIP, que é um protocolo de sinalização muito utilizado em VoIP. Apesar do SIP ser largamente utilizado para chamadas por voz, nada impede que ele seja utilizado também para chamadas com video. Na essencia dele, ele é um protocolo de sinalização que tem muitas mensagens parecidas e as vezes até iguais as mensagens HTTP. Por exemplo, em ambos, o mensagem 200 quer dizer que tudo ocorreu certo, a mensagem 404 é mensagem de “Not Found”.

Tendo então essas ferramentas em mão, será feita inicialmente uma interface para configuração do FreeSWITCH, que vai contar basicamente com cadastro de usuarios, rotas e tarifas. Podem aparecer algumas outras coisas durante o desenvolvimento do projeto, já que ele não foi colocado 100% no papel, mas basicamente é isso. Essa interface será desenvolvida completamente em Java EE, pois assim tem como fazer um sistema modular e esses módulos conversarem entre si mais facilmente, sem a necessidade de criar alguma forma do tarifador se comunicar com alguma outra linguagem. E assim também é deixado tudo dentro da mesma linguagem, facilitando o desenvolvimento. Com a interface pronta e funcional, será desenvolvido o tarifador em Java. Ele contará com o event socket do FreeSWITCH para controle geral do FreeSWITCH. Com esse event socket é possivel saber status completo de chamadas (pra onde está indo, duração, saida…) e mandar comandos diretamente para o core do FreeSWITCH. Assim tem como controlar as chamadas dentro do próprio Java e isso fará possível a tarifação em tempo real, que por sua vez torna possível a tarifação pré paga.

Objetivo

O objetivo do trabalho é desenvolver uma aplicação onde seria possível fazer tarifação das chamadas saintes do FreeSWITCH, tanto de forma pré paga, quanto pós paga. Para isso será necessario fazer:

  • Desenvolver o sistema para que haja uma configuração básica do FreeSWITCH, inserindo, removendo e editando usuários, rotas e plano de discagem;
  • Desenvolver a tarifação em tempo real para utilização de sistema pré pago;
  • Desenvolver a tarifação em cima dos bilhetes para fechamento de conta em usuários pós pagos de forma que possam ser utilizados em sistemas financeiros posteriormente;

Cronograma

Etapas Mês
Agosto Setembro Outubro Novembro
Revisão bibliografica X X X
Escrita do documento X X

Bibliografia

MINESSALE, Anthony; COLLINS, Michael S.; SCHREIBER, Darren. FreeSWITCH 1.0.6: Build robust high performance telephony systems using FreeSWITCH. Birmingham: Packt Publishing Ltd., 2010.

GONÇALVES, Flavio Eduardo de A.. Guia de Configuração para Asterisk PBX – Florianópolis: Título Independente. 2007

GONÇALVES, Flavio E.. Build Telephony Systems with OpenSIPS 1.6: Build scalable and robust telephony systems using SIP. Birmingham: Packt Publishing Ltd., 2010.

MINESSALE, Anthony. How does FreeSWITCH compare to Asterisk? Disponível em: <http://www.freeswitch.org/node/117>. Acesso em: 28 out. 2013.

BOECHAT, Edoardo. Sistema de Tarifação: Módulo I. Disponível em: <http://www.teleco.com.br/tutoriais/tutorialtarifacao/default.asp>. Acesso em: 28 out. 2013.

LUIZ, Alan Torres; BOECHAT, Edoardo; BRITO, Katia Cirlene Pereira de. Sistema de Tarifação: Módulo II. Disponível em: <http://www.teleco.com.br/tutoriais/tutorialtarifacao2/default.asp>. Acesso em: 28 out. 2013.

TCC 2