Kamailio - Entendendo a lógica de roteamento.

 



O mercado de VoIP (principalmente VoIP Peering) exige profissionais com expertise em desenvolvimento ToIP. O crescimento contínuo das ITSPs (Internet Telephony Service Provider) no Brasil tem impulsionado uma demanda urgente por desenvolvedores especializados em soluções de Telefonia IP (ToIP), com ênfase em tecnologias robustas e escaláveis como o Kamailio.

Kamailio é hoje uma das ferramentas mais poderosas para desenvolvimento de servidores SIP de alta performance, capazes de gerenciar milhares de chamadas por segundo, com alta confiabilidade, performance e escalabilidade - requisitos essenciais em ambientes de VoIP Peering e Operadoras VoIP (ITSP).

O que o mercado espera desses profissionais ?

  • Domínio no desenvolvimento e customização de soluções com Kamailio.
  • Conhecimento de protocolos SIP, UDP, TCP, SCTP, TLS.
  • SIP-I (SIP for ISUP) e SIP-T (SIP for Telephones).
  • Suporte a NAT Traversal, IPv4/IPv6, failover e load balancing.
  • Implementação de "Kamailio Multi-SIP Interop com Dialplan Database Control - DDC". Que é a ideia de suportar chan_sip, chan_pjsip, SIP-I e SIP-T, e ainda controlar tudo via Banco de Dados.
  • Implementação de interfaces com Banco de Dados (DDC) e RADIUS.
  • Desenvolvimento de soluções com suporte apresença (SIMPLE), dialogue info e CDRs. 
  • Capacidade de integrar e desenvolver com Asterisk, FreeSWITCH e WebRTC.
  • Desenvolvimento completo: Backend e Interface Grafica (GUI) para gestão das soluções.
São poucos os profissionais e empresas no mundo com domínio avançado em Kamailio e outras tecnologias VoIP combinadas. Essa é uma oportunidade de ouro para quem busca se posicionar como especialista em uma área estratégica e carente de talentos.


Se você atua com desenvolvimento VoIP, ou pretende entrar nesse nicho promissor, o momento é agora. O mercado está aquecido e exige profissionais prontos para entregar soluções robustas, escaláveis e personalizadas.

Dito isso, um dos aspectos mais importantes e, ao mesmo tempo difíceis de entender no Kamailio é a lógica de roteamento, pois ela tem muito a ver com o comportamento do protocolo SIP.

Após alguns estudos mais detalhados, resolvi passar aqui a minha visão de entendimento sobre o comportamento do Kamailio, principalmente no kamailio.cfg. E esse vai ser o objetivo deste post, e vou tentar adentrar com mais detalhes no mesmo.

Primeiro vamos dar uma olhada geral no que o arquivo de configuração contém:


Agora, vamos analisar cada ponto:

1. Definições Globais

Variáveis que usaremos em toda a Lógica de Roteamento, que podem se referir a parâmetros de LOG, Endereços IP e Portas nas quais o servidor esturatá (LISTEN) entre outros. Tem o seguinte formato:


2. Seção de Módulos

É aqui que definimos ou carregamos os módulos que estamos usando, por exemplo, o módulo MySQL para salvar registros no Banco De Dados ou o módulo TLS para criptografia de sinais.

Eles têm o seguinte formato:


3. Seção de Configuração de Módulos

Nesta seção, parametrizamos ou configuramos os módulos que carregamos na seção anterior. É muito importante configurá-los adequadamente, pois, em alguns casos, eles são ativados com configurações padrão, o que pode produzir efeitos estranhos no comportamento ao longo da vida útill do servidor SIP.

Eles têm o seguinte formato:


4. Blocos de Rota ou Lógica de Roteamento

Está é a seção chave do arquivo de configuração, pois estabelece todo o caminho que as solicitações SIP que recebemos seguirão. Vale ressaltar que não existe um padrão único aqui, pois você pode tornar sua lógica tão simples ou complexa quanto desejar, ou seja, com mais ou menos blocos de rota. No entanto, existem certos padrões que você sempre respeitará ou encontrará em outros arquivos. Estes são os blocos de rota que você normalmente encontrará:

  • Principal (Main ou request_route).
  • Secundários (REQINIT, WITHINDLG, REGISTER).
  • Falhas/Failure (failure_route).
  • Ramificação/Branch (branch_route).
Este é um diagrama que tenho como padrão para meus projetos, é um esquema de roteamento, pouco complexo, objetivo e prático:


Como você pode ver, tudo começa no bloco PRINCIPAL ou REQUEST_ROUTE  e flui para os outros blocos, cada um com uma finalidade específica para a solicitação SIP recebida.

O bloco REQINIT desempenha um papel muito importante, pois realiza a maioria das verificações de PRÉ-REQUISITOS, como avaliações de segurança, entre outras necessidades de cada cenário. 

Em seguida, os métodos secundários registram, localizam e encaminham as solicitações SIP para outro servidor, como o Asteirsk conforme apropriado.

Fontes:

URL: https://kamailio.org/docs/modules/6.0.x/

URL: https://www.kamailio.org/wiki/tutorials/getting-started/main


Bom, espero que este post amplie sua compreensão de como o Kamailio funciona. Conforme vou conseguindo tempo (para escrever, rsrsr), iremos nos aprofundar em outros aspectos deste software formidável.

Por hoje é só pessoal! 








Nenhum comentário

Toda vez que um homem supera os reveses, torna-se mentalmente e espiritualmente mais forte!

Tecnologia do Blogger.