Diferenças entre Asterisk e Opensips

opensips_asterisk

Algumas operadoras de telefonia voIP tem dificuldade para diferenciar e definir sobre qual solução utilizar quando se fala em Opensips e Asterisk.
Antes de relacionarmos as principais diferenças entre as tecnologias é importante sabermos o que significa o protocolo SIP (Session Initiation Protocol).
Esse protocolo é baseado em texto e pode ser utilizado para integrar sistemas. Feito para estabelecer chamadas via rede em protocolo IP pode ser utilizado para áudio e vídeo.

O protocolo SIP atua na camada de aplicação do modelo OSI como podemos ver na figura abaixo:

modelo OSI

Baseado no diagrama acima vimos que o protocolo SIP pode trafegar tanto por UDP quanto por TCP.

opensips_asterisk

Opensips

O Opensips foi desenvolvido para ser um proxy de mensagens SIP, focado em rotear chamadas, com o mínimo de alteração no conteúdo e trabalhando diretamente nas mensagens SIP.  Seu propósito essencial é ser extremamente eficiente no roteamento de mensagens SIP, mesmo que tenha interface com outros mecanismos, seu foco é SIP.

Por este motivo, ele não possui diversas funcionalidades que outros sistema possuem e muitas vezes, uma funcionalidade básica precisa ser construída do zero.

Seu núcleo é totalmente modular, permitindo que diversas funcionalidades sejam escritas a parte e inseridas, tornando-o muito versátil.

Asterisk

O Asterisk foi desenvolvido para ser um Gateway multiprotocolo, focado em Telefonia VoIP. Seu propósito fundamental é integrar diversas tecnologias (SIP, H323, IAX, Skype, etc) de uma forma simples e abstrata.

Por este motivo, seu objetivo é ser um gateway entre diversos protocolos e seu foco é distribuido em diversos protocolos.

Ele é capaz de fazer conversão de protocolos e áudio nativamente.

Asterisk X Opensips

A principal diferença está na concepção dos 2 sistemas, sendo o Opensips um proxy SIP, sendo desenvolvido para fazer o roteamento de uma chamada para o destino, ao contrário do Asterisk que gera um nova chamada para o destino e posteriormente conecta a original com a nova. Sendo assim, o Asterisk é um gateway por concepção, tratando cada lado da chamada individualmente e isoladamente, trabalhando no modelo B2B (Back-to-back).

O Opensips foi desenvolvido para processar milhares de chamadas por segundo, em cenários de larga escala, enquanto o Asterisk foi desenvolvido para ser um PABX Virtual, não com o intuito de atender milhares de chamadas.

Quanto ao tratamento de codecs, o Opensips não possui recursos de conversão e decodificação, já o Asterisk faz isto nativamente sob a pena de perda de performance.

Além da função de transcoding o Asterisk possui inúmeras funcionalidades de uma central telefônica (ramais, ura, correios de voz, conferencia, fila de atendimento, planos de discagem, etc) que permite substituir os PABX convencionais do mercado baseado nas customizações que o software suporta.

Tanto o Opensips quanto o Asterisk rodam em ambiente Linux, dessa forma não existe custo com licenciamento. No caso do Asterisk já existem versões para servidores Windows, mas não é indicado.

Dimensionar a quantidade de chamadas simultâneas que cada tecnologia suporta não é uma tarefa fácil, depende diretamente do perfil de tráfego como CPS, capacidade dos recursos do server que hospeda o software entre outros fatores.

Vale ressaltar que as soluções podem trabalhar integradas na arquitetura, sendo o Opensips o centralizador das chamadas e o Asterisk como gateway conversor entre as redes telefônicas.

Nos próximos posts relacionaremos formas de montar arquitetura baseado em Opensips e Asterisk.