OpenSIPs e Asterisk

De opensipsbrasil - wiki
Revisão de 00h40min de 1 de agosto de 2013 por Mike (discussão | contribs) (→‎Dependencias)
Ir para navegação Ir para pesquisar

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

Compilando o OpenSIPs

Para manter um padrão onde os dados estao vamos utilizar o diretório /usr/src/ para o download de código fonte.

cd /usr/src/
wget -c http://opensips.org/pub/opensips/1.9.1/src/opensips-1.9.1_src.tar.gz
tar -xzvf opensips-1.9.1_src.tar.gz
cd opensips-1.9.1-tls/
make menuconfig

Neste ponto o sistema irá abrir uma tela com algumas opções para selecionar, Acesse a primeira opção do menu, no submenu acesse a segunda opção ( Configure excluded modules ), selecione os módulos db_mysql , dialplan , mi_xmlrpc e presence.

Agora volte ao submenu, e selecione a opção Save Changes, volte para o menu principal e selecione Compile and Install OpenSips , deixe que o sistema execute suas funções.