OpenSIPs e Asterisk
Este tutorial é estritamente baseado num tutorial similar porém utilizando Kamailio, se quiser verificar o tutorial original acesse http://kb.asipto.com/freeswitch:kamailio-3.1.x-freeswitch-1.0.6d-sbc.
Para esta implementação utilizamos Debian 7.0 amd64 , OpenSIPS 1.9 e FreeSwitch XXXx ( coloco a versão logo mais )
Funcionalidades
Este tutorial tem por objetivo atingir as seguintes funcionalidades.
- Autenticação de usuário
- Registro de usuário
- Localização de usuário (encaminhamento de chamadas)
- Roteamento de chamadas
- Mensagens instantânea e presença (PRESENCE)
Através do FreeSwitch estenderemos estas funcionalidades agregando.
- Correio de voz (Voicemail)
- Conferencia
- SBC ( Pode ser utilizado para transcoding, esconder topologia, play de mensagens e tarifação )
- Outros serviços de media (Anuncios, Ura's e coisas do tipo)
Definições
Para um melhor entendimento da solução vamos expor aqui algumas definições de nosso sistema.
- Usuários locais terão ramais com 3 digitos (ex: 101, 102, 103)
- Identidade do correio de voz será o mesmo do ramal
- Serviços de media (acesso a voicemail e outros) receberão rotas de 4 digitos
- Opensips e Freeswitch utilizarão o mesmo servidor (Neste caso IP: 10.254.254.6)
- Os serviços rodarão nas portas 5060 (opensips) , 5090 (Freeswitch (perfil interno)) e 5092 (Freeswitch (Perfil externo))
Funcionamento
A autenticação do usuário será realizada pelo OpenSIPs, quando uma chamada é autenticada então ela serguirá:
- Se o usuário de destino não está online a chamada será enviada para o FreeSwitch para função de correio de voz
- Se o usuário está online a chamada será encaminhada para o Freeswitch, dest forma é possivel acionar funcionalidades como anuncios, definição de tempo de chamada, forçar codecs e outras funcionalidades.
- FreeSwitch envia a chamada novamente para o OpenSIPs que verificará no location e entregará a chamada para o usuário.
- Se a chamada não for atendida o Freeswitch enviará a chamada para o correio de voz.
OpenSIPs
Vamos iniciar o processo de instalação com o OpenSIPs, siga os procedimentos abaixo para evitar qualquer dificuldade.
Dependencias
Execute o comando abaixo para instalar todas as dependencias necessárias
apt-get install gcc make libncurses5-dev libnewt-dev libxml2-dev unixodbc unixodbc-dev libmysqlclient15-dev libxmlrpc-c3-dev libexpat1-dev zlib1g-dev m4 bison flex libpcre3-dev mysql-server vim apache2-mpm-prefork libapache2-mod-php5 php5-mysql php5-xmlrpc php-pear ngrep