|
Se você trabalha com telefonia IP, talvez ainda não tenha ouvido falar do OpenSER, mas certamente você ouviu falar sobre o Asterisk. Bom eu adoro uma chamada polêmica e eu já vi esta questão formulada muitas vezes em fóruns e listas de discussão. Então eu vou me atrever a comparar estes dois softwares muito populares dedicados ao mercado de VoIP. A idéia aqui não é mostrar qual é o melhor, mas principalmente mostrar como eles são diferentes um do outro. Abaixo está uma comparação tópico por tópico.
Arquitetura
Asterisk é um Back to Back User Agent (B2BUA), enquanto o OpenSER é um SIP Proxy. Isto faz toda a diferença. A arquitetura de um SIP Proxy é mais rápida do que a de um B2BUA porque ela só lida com a sinalização SIP. Por outro lado, um B2BUA, mesmo sendo um pouco mais lento, é capaz de gerenciar a mídia e é capaz de vários serviços não disponíveis em um Proxy SIP tais como tradução de CODECs (ex. G.729<->G.711), tradução de protocolos (SIP<->H323) e serviços relacionados à mídia tais como URA (unidade de resposta automática), DAC (distribuição automática de chamadas), TTS (conversão de texto para fala) e reconhecimento de voz.
Travessia de Nat
O OpenSER lida muito melhor com a travessia de NAT do que o Asterisk. Você pode enviar a mídia de seu cliente diretamente ao seu provedor usando o OpenSER na maioria dos casos (exceção ao NAT não simétrico). A manipulação direta do protocolo SIP permite a você gerenciar casos especiais, tais como quando você tem dois clientes atrás do mesmo NAT e quer enviar a mídia (áudio e vídeo) diretamente entre eles.
Balanceamento de carga
O OpenSER tem algoritmos específicos de balanceamento de carga com hash. Desta forma ele pode balancear a carga por “ruri”, “username”, “call-id” e algumas outras propriedades. Ele pode usar mensagens de redirecionamento (302 redirect) consumindo bem poucos recursos da máquina de balanceamento de carga. A tolerância a falhas faz parte da solução, coisas que você não encontra no Asterisk, mas são complementares. Acesso em baixo nível aos cabeçalhos SIP e transações.
O OpenSER permite a você acesso de baixo nível ao protocolo. Você pode gerir todos os pedidos e respostas. Desta forma é possível, na maioria das vezes, traduzir entre duas versões incompatíveis de SIP. Isto é importante quando você tem duas implantações de diferentes fabricantes, algumas vezes, incompatíveis entre si. Integration with Radius, Diameter and LDAP
O OpenSER tem suporte à LDAP, Radius e Diameter integrado na distribuição. Enquanto isto também é possível com o Asterisk, a implantação do OpenSER é desenvolvida em C e integrada como um módulo que é parte da distribuição principal. (sem Perl, sem python, sem módulos de terceiros).
Roteamento no padrão operadora
O módulo CARRIERROUTE implanta algoritmos sofisticados para rotear chamadas para a rede pública. Algumas vezes, os provedores VoIP precisam trabalhar com tabelas com mais de 40000 rotas. Neste caso, você vai precisar com certeza de um módulo específico de roteamento com capacidade de recuperação de falhas, listas negras e alguns outros recursos específicos para provedores de voz.
Serviços de mídia
O OpenSER é um SIP Proxy e ele não é capaz de atender nenhum serviço relacionado a mídia (áudio ou vídeo). Desta forma, não é possível criar com o OpenSER sistemas como, correio de voz, URA, TTS e reconhecimento de voz. No entanto é possível integrar estes serviços ao OpenSER usando um servidor de mídia separado. (normalmente o próprio Asterisk, Yate, FreeSwitch ou SEMS). Isto é proposital e é a forma com que o protocolo SIP foi desenhado e definido (veja norma RFC3261). Conectividade com a rede pública de telefonia
O OpenSER sempre vai precisar de um gateway para se conectar a rede pública. Não existe a possibilidade de instalar interfaces de telefonia no servidor. Em vários casos o Asterisk é usado como gateway para a rede pública suportando o OpenSER. Conclusão
Eu adoro esta discussão, porque o Asterisk e o OpenSER se completam. O OpenSER fornece serviços robustos para o SIP e é capaz de atender a um grande número de chamadas, de balancear a carga do SIP, resolver cenários avançados de NAT e lidar com a sinalização SIP como nenhum outro. Já o Asterisk é um B2BUA, muito forte no mercado de IP PBX. Ele é mais simples de configurar e pode gerenciar volumes de pequenos e moderados. O Asterisk pode ser usado no conceito “uma caixa faz tudo” ao contrário do OpenSER que requer todos os componentes da arquitetura do SIP. O OpenSER é um sucesso no mercado de provedores e universidades. O Asterisk é um sucesso no mercado de PABX e está abocanhando um pedaço do mercado de pequenos e médios provedores VoIP. Normalmente você começa a usar o OpenSER com grandes volumes, tais como quando você tem mais de mil usuários registrados. Escolha com sabedoria! |