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:
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)
#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)
#### 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:
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:
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.
# 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!
Deixe um comentário