OpenSIPs

Revisão de 20h28min de 6 de agosto de 2012 por André Carrijo (discussão | contribs) (Criou página com '== Definição == OpenSIPS é uma continuação do projeto OpenSER. A razão da criação do OpenSIPS foi o conflito gerado pelos seus desenvolvedores. É um projeto Open Sourc...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Definição

OpenSIPS é uma continuação do projeto OpenSER. A razão da criação do OpenSIPS foi o conflito gerado pelos seus desenvolvedores. É um projeto Open Source colaborativo, onde a comunidade tem grande parte na evolução do projeto. OpenSIPS é um SIP Proxy com as seguintes funcionalidades:

  • SIP register
  • SIP agente presença
  • SIP IM server (chat)
  • SIP para SMS gateway (bidirecional)
  • SIP para XMPP gateway para presença e IM (bidirecional)
  • SIP load balance
  • SIP NAT


Objetivos

OpenSIPS é usado como um SIP Proxy. Entretanto, pode ser usado em outras aplicações como Jabber Gateway, servidor de presença, SIP multirouter.

O OpenSIPS é designado a suportar um grande volume de chamadas, fazer load balance SIP, resolver cenários avançados de NAT junto com Media Proxy e RTP Proxy.

Detalhamento Técnico

OpenSIPS suporta IP versões 4 e 6, e pode ser usados com múltiplos domínios. Pode ser executado nas plataformas Linux, Solaris e FreeBSD. O projeto foi criado para ser um SIP proxy, mas com o desenvolvimento de novos módulos, pode ser usado em vários cenários como:

DISPATCHER, PATH - Balanceamento de carga

MEDIAPROXY, RTPPROXY, NATHELPER - NAT

PRESENCE - Servidor de presença

IMC, XMPP - Mensagem instantânea



Pontos-chave

Velocidade

OpenSIPS pode fazer dezenas de milhares de chamadas por segundo, mesmo com hadware de baixo custo. O desenvolvimento usando ANSI C com algumas rotinas assembler é responsável por esta performance.


Flexibilidade

OpenSIPS é muito flexível e seus administradores podem definir seu comportamento através de um script. Este script é poderoso e flexível para atender os mais complexos cenários.


OpenSIPS estendido

OpenSIPS pode ser estendidos por novos códigos desenvolvidos em C. O novo código pode ser desenvolvido independente do núcleo OpenSIPS e adicionados em tempo de execução. O conceito é similar aos módulos em Servidores Web Apache. Recentemente, novas camadas de programação foram adicionados. É possível usar Call Processing Language (CPL) para simplificar os scripts de roteamento. WeSIP é uma interface de programação de aplicações que permite a utilização de servlets Java para estender o servidor OpenSIPS para criar

um servidor de aplicativos SIP. Estas extensões são módulos de chamada. OpenSIPS 1.6 fornece quase 100 módulos diferentes, que pode ser seletivamente carregado e usado na configuração / arquivo de roteamento.


Portabilidade

OpenSIPS foi escrito em ANSI C. Dessa forma, é altamente portável e disponível para sistemas UNIX, como Linux, Solaris e BSD.


Pequenas dimensões

O núcleo OpenSIPS é muito pequeno. As versões mais antigas tinham 300 KB de tamanho. Com alguns módulos, pode aumentar para uns poucos megabytes. Devido a esta característica, está sendo utilizado em várias plataformas.


Integrações

Conectividade com a PSTN

OpenSIPS precisa de um gateway SIP para conectar à PSTN. Como o OpenSIPS não tem essa funcionalidade é preciso utilizar, por exemplo, o Asterisk como um gateway PSTN para o OpenSIPS.


Integração com Radius, Diameter e LDAP

Como o Asterisk, o OpenSIPS possui integração com LDAP, Radius e Diameter.


Media Server

OpenSIPS é um proxy SIP e não é capaz de atender nenhum serviço relacionado a mídia (a parte da voz de uma chamada). O OpenSIPS não é uma plataforma para criar projetos como IVR, VoiceMail, TTS e Reconhecimento de voz, etc. É possível integrar qualquer um destes serviços com o OpenSIPS usando um media server como o Asterisk.


Comparativo

Arquitetura

O Asterisk funciona como um Back to Back User Agent (B2BUA), enquanto OpenSIPS é um Proxy SIP. Isto representa toda diferença entre eles. A arquitetura para um Proxy SIP é mais simples que um B2BUA porque um Proxy SIP preocupa somente com a sinalização. Por outro lado, um B2BUA é mais complexo porque é responsável pela sinalização e pela mídia (voz). Em um proxy SIP, serviços de um B2BUA como tradução codec (ou seja, uLaw G.729a), tradução de protocolo (SIP para IAX2) e serviços relacionados mídia, tais como URA, correio de voz, text to speech, e reconhecimento de voz não estão disponíveis.


NAT

O OpenSIPS trabalha melhor com NAT do que o Asterisk. Ele permite enviar, na maioria dos casos, a mídia de um software VOIP client diretamente para um servidor VOIP. 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.


Load Balancing

OpenSIPS tem a habilidade de balancear a carga de chamadas VOIP. Especializado em algoritmos hash o OpenSIPS pode ser configurado para fazer o load balance por "username", "callid" e outras propriedades. A tolerância a falhas faz parte da solução, coisas que você não encontra no Asterisk, mas são complementares.


Acesso de baixo nível aos cabeçalhos SIP e transações

O OpenSIPS permite a você acesso de baixo nível ao SIP. Você pode gerir todos os requests e responses. Isto permite traduzir duas versões incompatíveis de SIP, tratando diretamente os cabeçalhos SIP, request e response. Isto é importante quando você tem duas implementações de SIP de diferentes fabricantes, algumas vezes, incompatíveis entre si.


Licenças e Restrições

Licença

GNU General Public License (GPL)


Comunidades

Existem 2 comunidades oficiais ativas.

  • Uma para discussões sobre a utilização:

https://sourceforge.net/forum/forum.php?forum_id=839860


  • Outra para discussões sobre o desenvolvimento:

https://sourceforge.net/forum/forum.php?forum_id=839862


Certificação

http://www.voice-system.ro

Custo: US$215,00


Conclusões

O OpenSIPS é designado a suportar um grande volume de chamadas, fazer load balance SIP, resolver cenários avançados de NAT e trabalha com sinalização SIP como nenhum outro. Quando você precisa de velocidade, flexibilidade, escalabilidade, portabilidade, e a capacidade de funcionar em ambientes com baixa capacidade de computação, OpenSIPS pode ser a combinação perfeita.


Pesquisadores

  • Cesar William Alvarenga