domingo, 10 de agosto de 2008

OpenSER

Uoba galera !!
Hoje, começaremos a ver um pouco sobre o OpenSER.
Cada dia que passa a tecnologia é mais desenvolvida, coisas novas surgem e vão ficando de mais fácil acesso. No mundo de telecomunicações o VOIP ( voz sobre IP ) tem crescido notavelmente nos últimos anos. Grandes empresas começam a investir nesse tipo de serviço, logo as plataformas "open source" como OpenSER, SER, Asterisk, Softswitch, e diversos softphones acompanham esse crescimento.

Comecemos com um pouco sobre o SIP
O Session Initiation Protocol ( Protocolo de Inicio de Sessão ) é um um protocolo utilizado para criar, modificar e terminar sessões ou chamadas de multimedia. Estas sessões podem ser conferências, e-learning, através da telefonia pela Internet e aplicações semelhantes. É bem semelhante ao HTTP e destina-se a iniciar, manter, e terminar sessões de comunicação interativas entre os usuários. Hoje em dia SIP é um dos mais utilizados protocolos para VoIP e está presente em quase todos os telefones IP no mercado.

A história do OpenSER

O começo de tudo... SIP Express Router (SER)
Um projeto open source sob licença GPL que teve sua primeira linha de código escrita em setembro de 2001, por Andrei Pelinescu-Onciul. Até então, o seu roteamento era implementado utilizando uma tabela baseada em "first-match-first-found". Hoje o trabalho do grupo e os resultados são apresentados em um novo site, http://iptel.org.

O OpenSER
Em junho de 2005, dois dos principais desenvolvedores do SER juntamente com um de seus principais contribuintes, começaram o projeto OpenSER. Pouco tempo depois outros contribuintes do SER aderiram ao OpenSER, após um ano e meio o projeto contava com cerca de 20 desenvolvedores e 80 pessoas que contribuiam com correções ou documentações para o código. Em 14 de julho de 2005 foi liberada a primeira versão do Openser.

Mas o que é o OpenSER ?
O OpenSER tem diversas funcionalidades, entre elas podemos destacar o Servidor Proxy e o Registrar. Abaixo veremos um pequeno resumo sobre cada uma delas.

Servidor Proxy
Toda sinalização SIP passa através de um proxy. Este recebe os pacotes, verifica a integridade e encaminha para o destino. Este processo é feito por um script, onde determinamos regras como: tamanho maximo dos pacotes e destinos. O fato de toda a sinalização SIP passar através do proxy, ajuda também na hora de contabilizar a chamada.
O servidor proxy pode operar com dois tipos de comunicação, stateful (como um circuito) ou stateless (como o TCP). Com o stateful, podemos ter várias "sessões SIP", ou seja, podemos fazer com que vários telefones como: celulares SIP, desktops SIP, e outras aplicações SIP estejam a tocar simultaneamente quando receber uma chamada. Ao atender um dos dispositivos é iniciada a conversação, e os restantes param de tocar.
O servidor proxy SIP pode utilizar múltiplos métodos para tentar resolver o pedido de endereço de host, incluindo busca de DNS, busca em base de dados ou retransmitir o pedido para o “próximo” servidor proxy.

Registrar
O Registrador SIP fornece um serviço de informação de localidades; ele recebe as informações do user agent e armazena essa informação de registro. Assim, quando um usuário inicia uma sessão SIP com outro usuário, o protocolo SIP tem que descobrir em qual host esse usuário está logado. Esse processo é feito por um servidor que recebe o pedido e verifica para onde deve envia-lo. Essa consulta é feita em um banco de dados mantido pelo dominino.

Concluindo...
Temos várias outras funcionalidades para o Openser, tais como integração com o Asterisk, PSTN Gateway, Media Server, Radius Accounting, CDRTool Rating e Monitoring Tools. Mas para termos uma visão do que é, e o que faz, Servidor SIP e Registrar estão de bom tamanho!
Atualmente o projeto OpenSER está sendo dividido em dois projetos, Kamailio e OpenSIPS. Ambos derivam do OpenSER, mas darão continuidade as atualizações e desenvolvimento de seus respectivos projetos.

Referências:
Livro: Building Telephony Server with OpenSER.
Sites: http://pt.wikipedia.org/wiki, http://www.kamailio.org/
Pessoas: André Pantalião e Fernando Fontes.


Espero que tenham gostado : )
Em proximos posts, vamos ver mais detalhadamente sobre cada funcionalidade do OpenSER!!
Abraço
Wesley Volcov