terça-feira, 7 de julho de 2020

ATA SPA3102 (ou SPA3000) com FreePBX

O SPA3102 e o SPA3000, ambos da Linksys, são adaptadores para converter o sinal de telefonia analógica em dados (VoIP - Voice over IP).

SPA3012

São o que se chama de ATA ou "Analog Telephone Adapter".

Com esse adaptador, é possível, por exemplo, inserir sua linha telefônica analógica em um servidor PBX (FreePBX, Elastix, Issabel etc.) e, assim, ganhar sobre ela todo o controle e liberdade que um PBX VoIP pode fornecer (caixa postal, redirecionamento de chamadas, ramais, fila de atendimento, menu de auto atendimento etc.).



Isso pode ser feito, também, com um interfone de casa ou do prédio que ofereça o mesmo padrão de telefonia analógica ou de um "ramal".

Para tudo isso, o ATA precisa ter uma porta FXO, que é a porta que recebe o sinal de telefonia analógica.

Também é possível transformar seus aparelhos telefônicos analógicos em ramais VoIP. Embora seja cada vez menos usado, pode ser opção interessante para quem quiser ter os benefícios de um PBX VoIP mas sem investir em telefones IP.

Para isso, o ATA precisará ter uma ou várias portas do tipo FXS, que vai emitir o sinal de telefonia analógica a ser recebido pelo aparelho telefônico tradicional.

Após experimentar um SPA3102 com o FreePBX, os resultados foram surpreendentes, dada a estabilidade do adaptador, mesmo em se tratando de um equipamento antigo, mas que tem um custo / benefício excelente.

Até que fosse possível configurá-lo corretamente, no entanto, foram gastas algumas horas com pesquisa e tentativas. Então, para poupar o leitor de enfrentas as mesmas dificuldades, aí vão as dicas para uma configuração bem fácil de fazer.

Primeiro, algumas dicas sobre o SPA (o modelo usado foi o 3102, mas é praticamente idêntico ao modelo 3000).

Uma característica interessante é a possibilidade de conectar um telefone analógico à porta FXS e fazer configurações iniciais pelo telefone.

Configurações no FreePBX para integrar o SPA


Antes de mais nada, insira o IP do seu SPA à whitelist (lista branca) do FreePBX, para evitar que qualquer tentativa de autenticação sem sucesso ocasione o bloqueio do IP no FreePBX:

Admin > System Admin > Intrusion Detection > Whitelist

Inserir o número do IP, exemplo, 192.168.1.5/32

Configuração da linha de telefonia analógica (porta FXO)

Criar um tronco do tipo PJSIP

(OBS: o driver pjsip é mais eficiente do que o antecessor chan_sip, então sempre que possível deve-se tentar usá-lo)

Connectivity > Trunks > Add Trunk > Add SIP (chan_pjsip) Trunk

Aba General

Trunk Name pstn
Outbound CallerID <1122222222>  (pode ser o número da linha telefônica)
Maximum Channels 1

Aba pjsip Settings

Authentication None
Registration None
SIP Server 192.168.1.5  (IP do seu SPA)
SIP Server Port 5060

Advanced tab

Match (Permit) 192.168.1.5 (IP do seu SPA)

Adicionar uma rota de saída (Outbound route)

Connectivity > Outbound Routes > Add Outbound Route

Route Name Saida
Trunk Sequence for Matched Routes pstn

Dial Patterns tab

match pattern X.

(Atenção: esse padrão (X.) vai coincidir com qualquer número discado. Para testes, ok, mas depois o administrador deverá alterar esse padrão para permitir somente números desejados, por exemplo, evitando ligações para números internacionais etc., conforme a necessidade)

Adicionar uma rota de entrada (Inbound route)

Connectivity > Inbound Routes > Add Inbound Route

Description Entrada
DID Number 1122222222  (esse valor precisa ser idêntico ao que constar no Dial Plan 2 no SPA, abaixo)
Destination Extensions > 222 (defina um ramal existente para receber as ligações por padrão)

Após criado o tronco e aplicadas as alterações, o SPA deverá ser configurado para usar o FreePBX como rota de ligações.

Configuração inicial no SPA

Para entrar no menu de configuração, basta digitar **** (quatro asteriscos) no telefone e aguardar o menu de voz.

Para restaurar o SPA ao padrão de fábrica

****  (para entrar no menu)
73738# (para restaurar ao padrão de fábrica)
1 (para confirmar a operação)
Desligar (após desligar o telefone, aguarde o reinício do SPA)

Para habilitar a configuração do SPA via navegador web

****
7932#
1#
1
Desligar

Após habilitar o acesso via web, basta digitar o endereço IP do SPA no navegador e será possível continuar a configuração pela interface web.

Configurar a porta FXO ("line") no SPA

Atenção para o uso da porta 5060.

Admin Login > advanced

Voice > PSTN Line

Line Enable yes
SIP Port 5060
Proxy 192.168.1.200:5060   (endereço IP do seu FreePBX)
Register no  (O Led da porta FXO ficará apagada e só acenderá quando a linha for usada)
Make Call Without Reg yes
Ans Call Without Reg yes
Display name deixar em branco
User ID deixar em branco
Password deixar em branco
Dial Plan 2 (S0<:1122222222>)   (Aqui é um número arbitrário, pode ser o número de telefone da linha, mas precisa igual ao campo "DID Number" no FreePBX)
PSTN Ring Thru Line 1 no
PSTN CID For VoIP CID yes
PSTN Caller Default DP 2 (Esse é o número do Dial Plan padrão para ser usado, ou seja, o 2)
PSTN Answer Delay 1
Disconnect Tone 425@-30,425@-30; 2(0.25/0.25/1+2)
Line-In-Use Voltage 6 (Verifique esse valor em Voice > Info > Line Voltage - quando estiver usando a linha telefônica - ignore os sinais + ou -)

Grave as alterações e, se quiser, pode até reiniciar o SPA digitando esse caminho no navegador

http://192.168.1.5/admin/reboot   (troque o IP pelo endereço do seu SPA)

Com isso, você já pode testar o recebimento e a realização de chamadas no seu FreePBX.

Se quiser inserir um telefone analógico como ramal, basta adicionar um ramal (extension) do tipo legado chan_sip. Não foi possível adicionar um ramal do tipo pjsip, então ficamos com chan_sip mesmo.

Configuração da extensão de telefonia analógica (porta FXS)

Adicionando uma extensão ao FreePBX

Applications > Extensions > Add Extension > Add New SIP (Legacy) [chan_sip] Extension

Insira um número de ramal e demais configurações, lembrando que os campos "User Extension" e "Secret" deverão ser inseridos igualmente no SPA.

Grave e aplique as alterações.

Configurando um ramal (extension) analógico no SPA (Porta FXS ou "phone")

Atenção que aqui será usada a porta 5160.

Voice > Line 1

Line Enable yes
SIP Port 5160
Proxy 192.168.1.200:5160
Register yes   (O LED vai ficar aceso com após o registro com sucesso)
Display Name 222
User ID 222 (aqui é o númeor do ramal ou User Extension do FreePBX)
Password algumasenha (aqui é o campo "Secret" da extensão do FreePBX)

Grave as alterações e, se quiser, pode até reiniciar o SPA digitando esse caminho no navegador

http://192.168.1.5/admin/reboot   (troque o IP pelo endereço do seu SPA)

Pronto, agora já é possível testar o uso do telefone analógico conectado à porta FXS ("phone") do seu SPA.

terça-feira, 27 de setembro de 2016

Como gerenciar nobreak no Ubuntu e CentOS

Se você tem um pequeno servidor em casa ou no trabalho, seguramente não vai querer que quedas repentinas de energia estraguem ou façam com que você perca seus arquivos ou danifique seu sistema operacional.


Hoje em dia, com sistemas de arquivos com "journaling" (log de todas as alterações antes de escrever os dados no disco), como é o caso do ext4 e outros, é difícil que os dados sejam corrompidos em razão de travamento ou quedas de energia. Difícil, mas não impossível.

Por isso, é interessante ter o servidor ou mesmo seu NAS (Network-Attached Storage) ligado a um nobreak. Mas a não ser que você esteja por perto quando acabar a energia, para que possa fazer o desligamento manual do computador, pode não adiantar muito, ainda que você tenha um nobreak, porque assim que acabar a bateria do nobreak o computador será desligado abruptamente.

Além disso, esse esgotamento da bateria não é nem um pouco saudável para ela, que por conta de sucessivos "esgotamentos" terminará exigindo substituição rapidamente. Por isso, você deve evitar ao máximo que sua bateria seja completamente esgotada.



Para tanto, mesmo com nobreaks não profissionais, como por exemplo um antigo APC Back UPS ES 600, desde que tenha porta de comunicação, é possível configurar seu servidor para desligar automaticamente (e suavemente), tão-logo seja detectada queda de energia pelo nobreak.

O nobreak citado, por exemplo, já vem com um cabo USB para fazer a conexão com o computador.



O daemon (ou "serviço") que se encarregará da tarefa no seu servidor é o apcupsd.

Para instalar no Ubuntu:
apt-get install apcupsd
No CentOS, você precisará do repositório EPEL. Instruções aqui.

Depois:
yum install apcupsd usbutils
chkconfig apcupsd on
Após conectar o nobreak com o cabo USB, veja se ele é reconhecido:
me@myserver:~$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Em caso positivo, ele será identificado por um dispositivo em /dev/usb:
me@myserver:~$ ls -l /dev/usb
total 0
crw------- 1 root root 180, 0 Sep 27 19:04 hiddev0
Agora edite o arquivo de configuração (Ubuntu e CentOS):
nano /etc/apcupsd/apcupsd.conf
E ajuste, no mínimo, as seguintes opções:
UPSNAME NomeDoNobreak
UPSCABLE usb
UPSTYPE usb
DEVICE /dev/usb/hiddev0
POLLTIME 60
No Ubuntu:
nano /etc/default/apcupsd
E ajuste a seguinte opção:
ISCONFIGURED=yes
Agora assegure-se de que o serviço está sendo executado:

No Ubuntu e CentOS:
service apcupsd start
Se tudo correu bem, você já conseguirá exibir o status do nobreak pelo comando:
me@myserver:~$ apcaccess status
APC      : 001,036,0910
DATE     : 2016-09-27 22:15:24 -0300 
HOSTNAME : mtserver
VERSION  : 3.14.10 (13 September 2011) debian
UPSNAME  : BackUPS600
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2016-09-27 19:05:06 -0300 
MODEL    : Back-UPS ES 600P 
STATUS   : TRIM ONLINE 
LINEV    : 225.0 Volts
LOADPCT  :  17.0 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :   2.8 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 11 Seconds
SENSE    : Medium
LOTRANS  : 176.0 Volts
HITRANS  : 264.0 Volts
ALARMDEL : 30 seconds
BATTV    : 13.8 Volts
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x0700000A Status Flag
SERIALNO : 5B1217T06246 
BATTDATE : 2012-04-25
NOMINV   : 220 Volts
NOMBATTV :  12.0 Volts
NOMPOWER : 360 Watts
FIRMWARE : 897.Q3 .D USB FW:Q3
END APC  : 2016-09-27 22:15:55 -0300
A princípio, já está tudo funcionando. É só tirar o nobreak da tomada e fazer o teste.

Para conseguir fazer o teste rapidamente, pode ser que seja necessário alterar a opção abaixo, a fim de que o nobreak dispare a ordem para o computador desligar mais rapidamente:

Arquivo /etc/apcupsd/apcupsd.conf:
TIMEOUT 1
Isso significa que após 01 segundo da notícia do desligamento da energia do nobreak, o apcupsd já iniciará o processo de desligamento do computador.

Aliás, dependendo do seu nobreak, se ele for bem simples mesmo e não forneça informações sobre a percentagem da bateria etc., pode ser que você precise deixar essa opção TIMEOUT habilitada permanentemente, obviamente na quantidade de segundos desejada.
Ao fazer o teste de queda de energia, você poderá acompanhar os eventos recebidos pelo serviço apcupsd com:
tail -f /var/log/apcupsd.events
Quando o nobreak for desconectado da energia, já aparecerá:
2016-09-27 19:01:40 -0300  Power failure.
E assim que for esgotado o tempo limite da bateria ou algum outro critério definido no arquivo de configuração, o serviço dirá:
2016-09-27 19:01:46 -0300  Reached remaining time percentage limit on batteries.
2016-09-27 19:01:46 -0300  Initiating system shutdown!
E pronto, seu computador será desligado suavemente.

Após o desligamento do computador, o próprio nobreak será totalmente desligado, a fim de preservar a bateria. É a chamada "operação killpower", cuja ordem é enviada para o nobreak durante o processo de desligamento do computador.

Ao ser conectada a energia novamente ao nobreak, depois de alguns segundos ele ligará novamente e, consequentemente, o computador também (desde que no BIOS o computador esteja ajustado para "Power on" na opção "Restore on AC/Power Loss"  - o nome da opção pode variar no BIOS).

Também é possível testar a comunicação com o nobreak e até promover calibragem e autotestes nele. Para tanto, é preciso desabilitar o serviço apcupsd:
sudo service apcupsd stop
E então executar o teste:
gerente@mserver:~$ sudo apctest

2016-09-27 23:01:14 apctest 3.14.10 (13 September 2011) debian
Checking configuration ...
Attached to driver: usb
sharenet.type = Network & ShareUPS Disabled
cable.type = USB Cable
mode.type = USB UPS Driver
Setting up the port ...
Doing prep_device() ...

You are using a USB cable type, so I'm entering USB test mode
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing USB UPSes.

Getting UPS capabilities...SUCCESS

Please select the function you want to perform.

1)  Test kill UPS power
2)  Perform self-test
3)  Read last self-test result
4)  View/Change battery date
5)  View manufacturing date
6)  View/Change alarm behavior
7)  View/Change sensitivity
8)  View/Change low transfer voltage
9)  View/Change high transfer voltage
10) Perform battery calibration
11) Test alarm
12) View/Change self-test interval
 Q) Quit

Select function number:

Depois que fizer os testes, não se esqueça de habilitar o serviço novamente:
sudo service apcupsd start

sábado, 27 de fevereiro de 2016

Ajustar a velocidade de rolagem do mouse no Linux

Pelo menos desde 2007 existe reclamação quanto à impossibilidade de ajustar ou configurar a velocidade de rolagem no Ubuntu e derivados. O bug reportado até hoje permanece sem solução.

Pelo visto, essa funcionalidade não será implementada tão cedo.

Então então vai a dica para você conseguir alterar a velocidade de rolagem (scroll) do seu mouse.

Instale o imwheel:

sudo apt-get install imwheel

Agora crie um arquivo chamado ".imwheelrc" na sua pasta pessoal.

gedit ~/.imwheelrc

Copie e cole o seguinte conteúdo no arquivo:

".*"
None,      Up,   Button4, 3
None,      Down, Button5, 3
Control_L, Up,   Control_L|Button4
Control_L, Down, Control_L|Button5
Shift_L,   Up,   Shift_L|Button4
Shift_L,   Down, Shift_L|Button5

Observe que o número 3 ao final da segunda e terceira linhas será exatamente o que controlará a velocidade da rolagem do mouse (na verdade, esse número representa a quantidade de linhas a serem movidas para cima ou para baixo quando você girar a rodinha do mouse).

Altere esse número na segunda e terceira linha para algo como 5 ou 6 e depois de iniciar o imwheel veja se a nova velocidade o agrada.

A primeira linha (".*") representa o nome da aplicação à qual serão aplicadas essas configurações. O ".*" indica que as configurações serão aplicadas em todo lugar.

As duas últimas linhas garantem que a funcionalidade de clicar com o ctrl / shift apertados (por exemplo, para zoom) funcione normalmente.

Caso queira definir a rolagem por aplicação, primeiro descubra a string referente ao programa:

xprop WM_CLASS | grep -o '"[^"]*"' | head -n 1

A execução irá parar após você clicar na janela desejada para identificar a string.

Agora você pode definir as velocidades por janelas, por exemplo:

"^google-chrome$"
  None,      Up,   Button4, 6
  None,      Down, Button5, 6

"^Navigator$"
  None,      Up,   Button4, 6
  None,      Down, Button5, 6

".*"
  None,      Up,   Button4, 3
  None,      Down, Button5, 3
  Control_L, Up,   Control_L|Button4
  Control_L, Down, Control_L|Button5
  Shift_L,   Up,   Shift_L|Button4
  Shift_L,   Down, Shift_L|Button5

Agora execute o imwheel:

imwheel

OBS: Se você tiver botões de navegação "voltar / avançar" no mouse, inicie o imwheel com o seguinte comando, caso contrário essa funcionalidade não estará presente:

imwheel -b "4 5"

Caso queira mudar as configurações, edite o arquivo de configurações (~/.imwheelrc) e depois execute:

imwheel --kill

Para continuar com a funcionalidade após reiniciar o computador, adicione o comando imwheel à aplicações que são iniciadas automaticamente com a sua sessão (por exemplo, no Unity, Startup Applications > Add).

segunda-feira, 15 de fevereiro de 2016

Apt-get travando em 0%. Como resolver?

O gerenciador de pacotes do Ubuntu (e derivados como Linux Mint, Elementary OS etc.) anda travando em 0% ao tentar baixar e instalar algum pacote. Somente depois de muito tempo ele "destrava" e continua a instalação.

apt-get install travado em 0%
O problema é que alguns ISPs (Internet Service Providers), como a NET, por exemplo, provavelmente estão configurando uma rede IPv6 interna, como forma de preparação para permitir conexões IPv6 no futuro. Como resultado, os servidores agora tentam conectar em br.archive.ubuntu.com, como no exemplo acima, por meio do endereço IPv6. Daí a demora, até que ele tente o próximo método de requisição, que é o IPv4.

A solução então é habilitar a linha precedence ::ffff:0:0/96 100 no arquivo de configuração do getaddrinfo (/etc/gai.conf), de modo que as requisições prefiram primeiro o protocolo IPv4.

$ sudo nano /etc/gai.conf

Agora remove a hashtag (#) da linha 54. Vai ficar assim:

#
#    For sites which prefer IPv4 connections change the last line to
#
precedence ::ffff:0:0/96  100

Grave o arquivo e pronto. Agora você poderá voltar a usar o apt-get sem passar nervoso com a demora.

segunda-feira, 12 de outubro de 2015

Adaptação do tema One Dark para NetBeans

Logo que baixei o editor Atom fiquei bem impressionado com o tema de cores padrão, chamado "One Dark".

Ele parece uma espécie de variação do tema Wombat.

O tema padrão do Atom tem um aspecto azulado bem suave, que torna a leitura bastante fácil. Os olhos agradecem.


Editor de texto Atom com o tema One Dark

Achei o tema One Dark tão bacana que resolvi fazer uma adaptação para o NetBeans, que é meu IDE favorito.

Nem tudo foi possível fazer exatamente igual, mas no geral o NetBeans, que é sofrível no aspecto "temas", ficou bem mais agradável depois dessa adaptação.

Chamei o tema de DuliDark.


Tema DuliDark no NetBeans


Download


Faça o download do tema DuliDark para NetBeans aqui.

Instalação do tema


Para importar o tema no NetBeans, vá em Ferramentas -> Opções -> Importar... -> Procurar... e selecione o arquivo ZIP baixado.

Se gostar, compartilhe!

terça-feira, 31 de março de 2015

Obtendo informações sobre seu hardware no Linux

Nem sempre é tão fácil verificar o fabricante ou o tipo e especificações do hardware que você tem no seu computador com Linux.

Aqui vão algumas dicas de excelentes programas que executam a tarefa muito bem, de fora bem simples pela linha de comando:

1 - inxi


Embora pouco conhecido, o INXI é excelente script para exibir, com formatação muito bem organizada e legível, as informações sobre o seu hardware.

Aqui estão as instruções para instalar na sua distro.



Alguns comandos do Inxi:

Informações resumidas:

inxi

Informações básicas:

inxi -b

Obtendo as partições do HD:

inxi -p

Informações sobre o tamanho e modelo do HD:

inxi -D

Informações sobre a placa de som e placa de vídeo:

inxi -AG

Para obter o relatório completo (Full):

inxi -F

Outros programas simples e interessantes


2 - lscpu


Fornece informações sobre sua CPU e unidades de processamento.

3 - lshw


Fornece informações detalhadas ou resumidas sobre diversos itens de hardware, como cpu, memória, disco, interfaces de rede etc.

4 - lspci


Esse talvez seja o mais conhecido e comum. Lista todas as interfaces PCI e detalhes sobre os dispositivos que estão conectadas a elas.

5 - lsscsi


Lista os dispositivos (discos rígidos / drives óticos) do tipo scsi/sata.

6 - lsblk


Lista todos os dispositivos de blocos (HDs) e suas partições.



7 - df


Dá informações sobre as particões, pontos de montagem e espaço disponível/usado.

É muito comum o uso com as opções df -Th (tipo da partição e tamanho em bytes/megabytes/gigabytes/etc e não em blocos).

8 - mount


Sem nenhum parâmetro, o comando irá exibir os pontos atualmente montados.

9 - free


Exibe o total de memória RAM usada e livre.

É comum usar o comando com o parâmetro -m, para exibir as quantidades em megabytes.

sábado, 28 de fevereiro de 2015

Zoneminder no CentOS 6 - método fácil com zmrepo

Sobre o ZoneMinder


Nesse post foi demonstrado como instalar o ZoneMinder no Ubuntu Server. Se quiser informações sobre a instalação das câmeras IP e sobre o que é o ZoneMinder, abra o link já referido.

Instalando no CentOS


Segue agora o passo a passo para instalar o poderoso sistema de vigilância no CentOS 6 (Versão 6.6, arquitetura x86_64).

Ainda não há método estável para instalar no CentOS 7 por meio de repositório. Portanto, use o CentOS 6 por enquanto.

OBS: Todos os comandos aqui descritos foram executados como root.


Instale o CentOS.

Após o primeiro boot, habilite a interface de rede e defina o IP da máquina.
nano /etc/sysconfig/network-scripts/ifcfg-eth0
Para IP dinâmico, simplesmente altere a opção ONBOOT conforme abaixo e reinicie o sistema:
ONBOOT="yes"
Para IP estático, faça as alterações necessárias para ficar assim:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=208.67.222.222
Para evitar lentidão ao conectar via ssh:
nano /etc/ssh/sshd_config
E deixe as seguintes opções conforme abaixo:
UseDNS no
GSSAPIAuthentication no
Reinicie os serviços de rede e do servidor ssh:
service network restart
service sshd restart
Atualize o sistema
yum update -y
Desabilite o SELINUX
setenforce 0

nano /etc/selinux/config

SELINUX=disabled

Instale o repositório Zmrepo:
yum install wget


wget http://zmrepo.connortechnology.com/el/6/i386/zmrepo-6-4.el6.noarch.rpm


yum install --nogpgcheck zmrepo-6-4.el6.noarch.rpm -y
Certifique-se de que o repositório foi corretamente instalado:
yum repolist
Instale o zoneminder:
yum install zoneminder -y
Agora você deve completar os passos descritos no aquivo abaixo para concluir a instalção:
less /usr/share/doc/zoneminder-*/README.CentOS
Em suma, você deverá fazer o seguinte. Inicie o serviço mysqld:
chkconfig mysqld on

service mysqld start
Agora conclua a instalação segura do mysqld. Quando for perguntada a senha atual do usuário "root", aperte a tecla Enter, pois ainda não há uma senha configurada (por se tratar de uma nova instalação). Quanto às outras opções, pode responder sempre o padrão:
/usr/bin/mysql_secure_installation
Agora você deverá criar o banco de dados para o ZoneMinder usar. Ao ser perguntado, digite a senha de root que você definiu no passo anterior:
mysql -uroot -p  

create database zm;

grant select,insert,update,delete,lock tables,alter on zm.* to 'zmuser'@localhost identified by 'zmpass';

quit;

mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

mysqladmin -uroot -p reload
(OBS: Se você escolheu outros usuário e senha para o bando de dados zm no item anterior, então edite o arquivo /etc/zm.conf e faça os ajustes em ZM_DB_USER e ZM_DB_PASS)

Ajuste o timezone da sua localidade nas configurações do php, exemplo:
nano /etc/php.ini
date.timezone = America/Sao_Paulo
Habilite a interface web do ZoneMinder (ela vem desabilitada por padrão):
nano /etc/httpd/conf.d/zoneminder.conf
Apague ou comente (com um #) a linha "Deny from all # DELETE THIS LINE".

Alguns ajustes para evitar mensagens de erro do apache (altere conforme suas configurações):
echo "ServerName localhost" > /etc/httpd/conf.d/fqdn.conf
Inicie o servidor web (apache) e configure-o para iniciar automaticamente a cada boot:
service httpd start
chkconfig httpd on
Abra as portas necessárias no firewall (iptables) do CentOS:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

service iptables save

iptables -L -v
Ou, se quiser fazer por interface gráfica:
yum install system-config-firewall
system-config-firewall
# Personalizar
# Marque as opções
WWW (HTTP)
WWW Seguro (HTTPS) (caso você queira habilitar acesso criptografado)
Fechar
Ok

Reinicie o sistema
reboot
ou
init 6
No seu navegador, aponte para http://<ip da máquina>/zm

Se quiser habilitar SSL (navagação segura):
yum install mod_ssl openssl
Gere a nova chave (auto-assinada) e novo certificado:
openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 730 -in ca.csr -signkey ca.key -out ca.crt
Mova para os lugares corretos
mv -f ca.crt /etc/pki/tls/certs/localhost.crt
mv -f ca.key /etc/pki/tls/private/localhost.key
Reinicie o servidor apache (web)
service httpd restart
No seu navegador, aponte para https://<ip da máquina>/zm

ALGUMAS DICAS DE PERFORMANCE


O servidor ZoneMinder não pode ficar com um "load" muito alto. Se isso ocorrer, você terá instabilidade e perderá alguns "frames" de imagens.

A seguir algumas dicas para tentar melhorar a performance.

1. Para sistemas de arquivos Ext4, adicione as seguintes opções no /etc/fstab:
noatime,nodiratime,commit=120,data=writeback

Exemplo
UUID=ba4acd10-ae6d-465c-82fe-9752017480ee /var/lib/zoneminder     ext4    defaults,noatime,nodiratime,commit=120,data=writeback        0 2
2. Habilite nas opções do ZoneMinder o CPU_EXTENSIONS, para obter vantagem das extensões SSE2/SSE3 do processador.

3. Habilite FAST_IMAGE_BLENDS. Esse tipo de blend é extremamente rápido e não envolve multiplicação ou divisão, o que pode impactar a performance.

4. Desabilite COLOUR_JPEG_FILES a não ser que realmente precise disso. Essa opção converte imagens em grayscale para cor antes de armazená-las como jpegs. Isso impacta a performance e usa mais espaço no seu disco, então o melhor é deixar desabilitado.

5. Desabilite CREATE_ANALYSIS_IMAGES se você usa motion detection com Blob, mas não precisa das imagens de análise.

6. Tenha certeza que desabilitou RECORD_DIAG_IMAGES.

7. Para câmeras locais (não IP): Habilite ZM_V4L_MULTI_BUFFER se puder. Tente fazer correspondência entre a paleta de caputra (Capture Palette) e o colorspace alvo (Target Colorspace), para evitar a necessidade de conversão de formato.

8. Se estiver usando Motion Detection (Modect) para as câmeras, quanto menos zonas, mais rápido será o sistema. Antes de ficar criando zonas, pense se realmente você tem necessidade de mais de uma zona.

9. Experimente usar a opção 8 bit grayscale nas câmeras (Target Colorspace), em vez de cores 24 ou 32 bits. Além de as imagens ficarem menores, o processamento e análise delas será mais rápido. Você realmente precisa registrar imagens coloridas? Faça opção consciente.

10. Quantos quadros por segundo (frames per second - FPS) você realmente precisa nas câmeras? Pense nisso. Não há qualquer razão para caputar o vídeo a 20 fps se você não tem qualquer necessidade específica para isso. 5 fps são suficientes para a maioria dos casos e produz bons vídeos.

11. Use a libjpeg-turbo. A instalação pelo método descrito neste post se encarregará disso.

12. Ajuste as opções "Reference Image Blend %ge" e "Alarm Reference Image Blend %ge" de cada monitor apropriadamente. Quanto à primeira, use 6.25% para câmeras internas e 12.5% para externas. Quando à segunda, experimente deixar todas as câmeras em 6.25%. Trata-se de nova funcionalidade da versão do ZoneMinder 1.26.5. Antes de ajustar essa opção alguns eventos estavam ficando quase infinitos (disparava o alarme do modect e não parava mais de gravar).

ATENÇÃO


As opções Maximum FPS e Alarm Maximum FPS são apenas para câmeras analógicas. Não use essas opções para câmeras remotas IP, caso contrário você terá falhas na visualização "ao vivo" e durante as gravações dos eventos. A implementação para câmeras remotas ainda não foi realizada.