Instalar e configurar OpenSIPs 1.10.1 Ubuntu Server 12.04

Informação: Este tutorial esta sendo atualizado para a versão 1.10.1 do OpenSIPs para resolver alguns problemas de segurança e rendimento do SER, mais informações pode ser obtidas aqui.

Neste oportunidade vamos ver como instalar e configurar o OpenSIPs 1.10.1 (anteriormente OpenSER, que foi dividido em dois seguimentos de pesquisas, um deles é o OpenSIPs) e como fazer para os usuários se autenticarem em uma base de dados MySQL.

OpenSIPs é um servidor SIP, e serve como elemento principal de qualquer solução VoIP/ToIP e ITSP baseado em SIP. Tem um sistema de roteamento muito flexível e robusto, totalmente configurável. Tem capacidade de unificar os serviços de voz, vídeo, mensagens instantâneas e presença. É modular e graças ao seu alto desempenho suporta soluções empresariais e carrier-class.

Neste caso estou instalando sobre o Ubuntu Server 12.04 LTS com o MySQL 5.

Instalando OpenSIPs: Vou partir do ponto que você já tem o sistema operacional instalado com as configurações mínimas, incluindo acesso a Internet. Também recomendo que este servidor seja exclusivo para o SER. O primeiro passo é comprovar se nosso sistema operacional está atualizado e instalar os pacotes necessários para compilar e instalar o OpenSIPs. Lembre-se que temos que executar todos os comandos como usuario administrador do SO, ou seja, ROOT!

# apt-get update && apt-get upgrade
# apt-get dist-upgrade   
# apt-get autoclean
# apt-get autoremove
# apt-get install build-essential openssl bison flex

Com estes comandos já temos o sistema base para a instalação do OpenSIPs. Como a base de dados vai estar no mesmo servidor do SER vamos proceder a instalação do MySQL.

# apt-get install mysql-server libmysqlclient18 libmysqlclient-dev

Uma vez instalado vamos mudar a senha de acesso root.
  
# mysqladmin -u root password novopassword

Lembre-se de onde está escrito novopassword colocar sua senha.

Agora vamos baixar a última versão do OpenSIPs (no momento deste tutorial era a 1.10):

# cd /usr/src
# wget http://opensips.org/pub/opensips/1.10.1/src/opensips-1.10.1_src.tar.gz
# tar -xvzf opensips-1.10.1_src.tar.gz
# mv opensips-1.10.1-tls opensips
# cd opensips

Compilar o OpenSIPs: Para compilar o OpenSIPs com todos os módulos disponiveis devemos executar o seguinte comando:

# make all include_modules="db_mysql" modules 
# make install  include_modules="db_mysql" modules
Agora vamos copiar o arquivo de default (padrão) e init para que cada vez que iniciar o servidor o OpenSIPs seja iniciado automaticamente:

# cp -a /usr/src/opensips/packaging/debian/opensips.default /etc/default/opensips 

# cp -a /usr/src/opensips/packaging/debian/opensips.init /etc/init.d/opensips

Motificando os arquivos:

# vim /etc/default/opensips

E vamos trocar as seguintes linhas: 

RUN_OPENSIPS=yes 
# User to run as 
USER=opensips 
# Group to run as 
GROUP=opensips 
# Amount of memory to allocate for the running OpenSIPS server (in Mb) 
MEMORY=128

A quantidade de memoria destinada para OpenSIPs por padrão é de 64 Mb, dependendo das capacidades e necessidades do seu servidor pode variar este parâmetro.

Agora vamos modificar o outro arquivo:

# vim /etc/init.d/opensips

E vamos trocar a linha onde informa sobre DAEMON=/usr/sbin/opensips por:

DAEMON=/usr/local/sbin/opensips

Vamos agora dar atribuições de execução do arquivo:

# chmod +x /etc/init.d/opensips

Agora nos resta criar o usuario "opensips" no sistema operacional e o diretorio de trabalho do mesmo:

# adduser opensips

Vamos criar o diretorio abaixo:

# mkdir /var/run/opensips

Pronto temos neste ponto o OpenSIPs instalado, vamos passar para a configuração.

Configurando o OpenSIPs:  Primeiro temos que modificar o arquivo "opensipsctl" que se encontra em: 

# vim /usr/etc/opensips/opensipsctlrc

É vamos modificar as seguintes linhas:

SIP_DOMAIN=localhost 
DBENGINE=MYSQL 
DBHOST=localhost 
DBNAME=opensips 
DBRWUSER=opensips 
DBRWPW="opensipsrw" 
DBROUSER=opensipsro 
DBROPW=opensipsro 
DBROOTUSER="root" 
USERCOL="username" 
INSTALL_EXTRA_TABLES=ask 
INSTALL_PRESENCE_TABLES=ask 
INSTALL_SERWEB_TABLES=ask 
CTLENGINE="FIFO" 
OSIPS_FIFO="/tmp/opensips_fifo"


Agora vamos criar os bancos de dados necessarios executando o seguinte comando:

# opensipsdbctl create

Vai ser solicitado a senha do root, logo depois vai ser solicitado se queremos criar as bases de dados, para todas as perguntas responderemos sim (Yes).

Neste momento temos uma configuração basica no OpenSIPs. Agora vamos proceder para que o mesmo tenha o suporte ao MySQL.

Configurando Suporte ao MySQL:  Para isto iremos ter que modificar o arquivo de configuração do OpenSIPs.

# vim /usr/etc/opensips/opensips.cfg

listen=udp:192.168.20.20:5060   # CUSTOMIZE ME (linha 45

#Meus Modulos (linha 58)
loadmodule "db_mysql.so" (linha 59)
loadmodule "auth.so" (linha 60)
loadmodule "auth_db.so"  (linha 61)

#### USeR LOCation module (linha 97)
loadmodule "usrloc.so" (linha 98)
modparam("usrloc", "nat_bflag", "NAT") (linha 99)
#modparam("usrloc", "db_mode",   0) (linha 100)
ESTA LINHA IREMOS COMENTAR 

modparam("usrloc", "db_mode", 2) (linha 101)
modparam("usrloc", "db_url", "mysql://opensips:opensipsrw@localhost/opensips") (linha 102)

# ----- auth_db params ----- (linha 104)
/* uncomment the following lines if you want to enable the DB based authentication */  (linha 105)
modparam("auth_db", "calculate_ha1", yes)  (linha 106)
modparam("auth_db", "password_column", "password") (linha 107) modparam("auth_db", "db_url", "mysql://opensips:opensipsrw@localhost/opensips") (linha 108)

Agora podemos adicionar um usuario em nossa base de dados:

# opensipsctl add nome_usuario senha_acceso

Vamos usar a sitaxe acima para criar um usuario que queremos, vamos supor que seja "8000" então executamos:

[00:52:20] root@ser [~]# opensipsctl add 8000 8000
new user '8000' added
[00:52:46] root@ser [~]# opensipsctl add 8001 8001
new user '8001' added
[00:53:12] root@ser [~]#


Com este comando o enginer do SER vai lhe informar que foi criado um usuario.

Para remover um usuário a sintaxe é a abaixo informada:

# opensipsctl rm nomeusuario

Para alterar a senha de um usuário  use a sintaxe abaixo informada:

# opensipsctl passwd nomeusuario nova_senha

Chegou a hora de testar nosso SER.

Iniciando o OpenSIPs: Depois de todas as configurações que realizamos o SER está configurado para rodar junto com o inicio do SO. E se necessitar de controlar o mesmo, podemos fazer com uso dos comandos abaixo:

1. # /etc/init.d/opensips start | stop
2. # opensipsctl start | stop

Lembrando que você só pode utilizar um dos comandos acima. E também não pode terminar o serviço com a primeira e iniciar com a segunda.

A primeira opção utilizamos para iniciar o OpenSIPs para produção.

A segunda opção utilizamos para testar nosso SER quando estamos modificando arquivos de configuração e queremos ter mais detalhes do servidor.

Vamos testar nosso SER.

# opensipsctl start

Deve aparecer algo assim:

[01:04:15] root@ser [~]# opensips start
Listening on
             udp:
192.168.20.20 [192.168.20.20]:5060
Aliases:

[01:04:24] root@ser [~]#


Para comprovar que realmente o SER esta rodando execute o seguinte comando:

# ps aux | grep opensips

Devera aparecer varios processos mostrando que o SER esta rodando.

[01:52:01] root@ser [~]# ps aux | grep opensips
root      7610  0.0  0.5 166796  5448 ?        S    11:04   0:00 opensips start
root      7612  0.0  0.1 166800  1568 ?        S    11:04   0:00 opensips start
root      7613  0.0  0.1 166796  1332 ?        S    11:04   0:00 opensips start
root      7615  0.0  0.1 166796  1332 ?        S    11:04   0:00 opensips start
root      7617  0.0  0.1 166796  1332 ?        S    11:04   0:00 opensips start
root      7619  0.0  0.1 166796  1332 ?        S    11:04   0:00 opensips start
root      7621  0.2  0.0 166796   924 ?         S    11:04   0:12 opensips start
root      7622  0.0  0.1 166796  1336 ?        S    11:04   0:01 opensips start
root      7843  0.0  0.5 166796  5448 ?        S    11:07   0:00 opensips start
root      7846  0.0  0.1 166800  1568 ?        S    11:07   0:00 opensips start
root      7847  0.0  0.2 166796  2800 ?        S    11:07   0:00 opensips start
root      7849  0.0  0.2 166796  2568 ?        S    11:07   0:00 opensips start
root      7851  0.0  0.2 166796  2560 ?        S    11:07   0:00 opensips start
root      7852  0.0  0.2 166796  2564 ?        S    11:07   0:00 opensips start
root      7855  0.2  0.0 166796   924 ?         S    11:07   0:12 opensips start
root      7856  0.0  0.1 166796  1816 ?        S    11:07   0:01 opensips start
root     12092  0.0  0.0   9392   940 pts/0    S+   12:36   0:00 grep --color=auto opensips
[02:36:45] root@ser [~]#

Para ver se está chegando requisição em seu servidor use o TSHARK.

# tshark -R sip -i any

Lembrando que este comando está antes do seu Firewall localhost. Se esta chegando e não consegue autenticar reveja seu Firewall.

Você pode conectar seu usuário utilizando um softphone como o X-Lite ou 3CX Phone ou ainda o Zoiper.

Este tutorial é uma atualização do "Instalación de OpenSER 1.3.2 postado em Tribulinux realizado pelo usuário May.

Espero que ajude a quem esta inicializando neste novo mundo, o do SER!


 

Nenhum comentário

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

Tecnologia do Blogger.