asterisk avancado
TRANSCRIPT
-
8/18/2019 Asterisk Avancado
1/34
Asterisk ® PBX
na práticaAvançado
-
8/18/2019 Asterisk Avancado
2/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 2/34 -
Índice
Capítulo 1 – Revisão: DialPlan – SIP – Links E1 – Macros ......................................................................3 Capítulo 2 – Asterisk Extension Language ................................................................................................7
Capítulo 3 – Asterisk Database (AstDB) / Aplicação MySQL()................................................................9 Capítulo 4 – Trunks IAX2 ........................................................................................................................13 Capítulo 5 – Servidor de Faxes com HylaFAX + IAXModem ................................................................15 Capítulo 6 – ARA - Asterisk RealTime Architecture...............................................................................18 Capítulo 7 – Verbio ..................................................................................................................................20 Capítulo 8 – DUNDi.................................................................................................................................25 Capítulo 9 – Filas de Atendimento (DAC) e QueueMetrics.....................................................................28 Capítulo 10 – Asterisk2Billing .................................................................................................................30 Capítulo 11 – HeartBeat e DNS RR .........................................................................................................32
-
8/18/2019 Asterisk Avancado
3/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 3/34 -
Capítulo 1 – Revisão: DialPlan – SIP – Links E1 – Macros
!"#$%"&'%($ *
Neste laboratório será feita a instalação do Asterisk, drivers para as placas de comunicação da
Digivoice e os arquivos de som em português brasileiro.
1. Download dos arquivoscd /usr/src/
mkdir fontes
cd fontes
wget http://ip fornecido pelo instrutor/asterisk/1.6/asterisk-1.6.0-current.tar.gz
wget http://ip fornecido pelo instrutor/asterisk/1.6/libpri-1.4-current.tar.gz
wget http://ip fornecido pelo instrutor/asterisk/DAHDI/dahdi-linux-current.tar.gzwget http://ip fornecido pelo instrutor/asterisk/DAHDI/dahdi-tools-current.tar.gz
wget http://ip fornecido pelo instrutor/asterisk/1.6/asterisk-addons-1.6.0-current.tar.gz
wget http://ip fornecido pelo instrutor/asterisk/DigiVoice/voicerlib-4.2.0.0.tar.gz
wget http://ip fornecido pelo instrutor/asterisk/DigiVoice/dgvchannel-1.0.4.tar.gz
wget http://ip fornecido pelo instrutor/treinamento/fontes/sounds-1.0-pt_BR.tar.gz
2. Descompactar os arquivoscd /usr/src/
tar xvzf fontes/dahdi-linux-current.tar.gz
tar xvzf fontes/dahdi-tools-current.tar.gz
tar xvzf fontes/libpri-1.4-current.tar.gz
tar xvzf fontes/asterisk-1.6.0-current.tar.gz
tar xvzf fontes/asterisk-addons-1.6.0-current.tar.gz
mkdir dgv
cd dgv
tar xvzf /usr/src/fontes/voicerlib-4.2.0.0.tar.gz
tar xvzf /usr/src/fontes/dgvchannel-1.0.4.tar.gz
3. Compilar e instalar
DAHDI
• Antes de compilar o DAHDI, deve-se comentar o arquivo Kbuild , localizado na pasta/usr/src/dahdi-linux/drivers/dahdi, a linha que termina com tor2. Para fazer o comentáriobasta inserir o caractere # no início da linha.
cd /usr/src/dahdi-linux-versão
make install
cd /usr/src/dahdi-tools-versão
./configure
make install
-
8/18/2019 Asterisk Avancado
4/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 4/34 -
LibPRI:
ln –s /usr/src/libpri-versão /usr/src/libpri
cd /usr/src/libpri
make install
Asterisk:
cd /usr/src
ln –s /usr/src/asterisk-versão /usr/src/asterisk
cd /usr/src/asterisk
./configure
make menuselect
make install
make samples
make config
Asterisk-AddOns:
cd /usr/src/asterisk-addons-versão
./configure
make menuselect
make install
make samples
Digivoice:
cd /usr/src/dgv/voicerlib-4.2.0.0
make install
cd /usr/src/dgv/dgvchannel-1.0.4
make install
make install_config
Arquivos de som para o Asterisk em português brasileiro (pt_BR)
cd /var/lib/asterisk
tar xvzf /usr/src/fontes/sounds-1.0-pt_BR.tar.gz
-
8/18/2019 Asterisk Avancado
5/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 5/34 -
4. Inicializar os arquivos de configuração do Asteriskecho dahdi_dummy >> /etc/modules
cd /etc/asterisk
> dundi.conf
> extconfig.conf
> extensions.conf
> extensions.ael
> iax.conf
> queues.conf
> cdr_mysql.conf
> res_mysql.conf
> sip.conf
> voicemail.conf
5.
Agora reinicie o computador para que o sistema carregue o Asterisk automaticamente
!"#$%"&'%($ +
Neste laboratório será feita a configuração completa de um servidor IPBX.
1. Configure o seu servidor Asterisk de acordo com as instruções a seguir:
a . Crie ramais SIP referentes a faixa DDR 9001 até 9009:
• Todos os ramais podem ligar para quaisquer destinos.
b .
Todos os ramais podem capturar chamadas de todos os outros ramais.c . As regras de discagem entre os ramais deverão ser colocadas no contexto ramais.
d . Todas as chamadas externas devem ser gravadas.
e . Devem ser criados contextos distintos para cada um dos destinos possíveis, como porexemplo LOCAL FIXO, LOCAL MÓVEL, DDD FIXO, DDD MÓVEL e DDI.
f . Os números de serviço, 0300, 0800 e 0900 devem estar em um contexto separado sendoterminados pelo link E1.
g . As chamadas LOCAL e DDD Fixo serão terminadas via Link E1, com saída redundante pelo provedor VoIP. A operadora PSTN (link E1) exige a entrega das ligações nos formatos:
• 099 + DDD + número, como por exemplo: 0994730565620 para destinos interurbanos.
• número, como no exemplo: 40639374 para os destinos locais.
h . As chamadas DDD Móvel e DDI serão terminadas via provedor VoIP. O provedor VoIPexige a entrega das ligações no formato:
• 55 + DDD + número, como por exemplo: 554784046006 para destinos DDD Móvel.
• PAÍS + número, como no exemplo: 13458763646 para destinos DDI.
-
8/18/2019 Asterisk Avancado
6/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 6/34 -
i . Configure a conexão com o provedor VoIP de acordo com as informações a seguir.[asteriks]
context = entradaSIP
type = friend
defaultuser = cliente
secret = senha
fromuser =
host =
insecure = invite,port
qualify = yes
port = 5060
nat = yes
disallow = all
allow = gsm
allow = g729dtmfmode = rfc2833
canreinvite = no
-
8/18/2019 Asterisk Avancado
7/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 7/34 -
Capítulo 2 – Asterisk Extension Language
Neste laboratório será feita a construção de uma URA no modo de programação AEL.
1.
Adicione as linhas a seguir ao contexto ramais:
9000 => goto ura,s,1;
2. Adicione as linhas a seguir ao arquivo /etc/asterisk/extensions.ael:
context ura {
s => {
Answer;
Set(TIMEOUT(response)=4);
Set(TIMEOUT(digit)=2);
BackGround(menuprincipal);
}
// Opcao para digitar o ramal desejado
//
_90XX => goto ramais,${EXTEN},1;
// Opcao invalida, desvia para correio de voz
//
i => goto correiotelefonista,s,1;
// Nao digitou nada, desvia para o ramal 9002
//
t => goto ramais,9002,1;
// Opcao 1 - Comercial
//
1 => {
Dial(SIP/9002&SIP/9003,15,tT);
goto correiotelefonista,s,1;}
// Opcao 2 - Atendimento a Clientes
//
2 => {
Dial(SIP/9007,15,tT);
Dial(SIP/9004,15,tT);
goto correiotelefonista,s,1;
}
-
8/18/2019 Asterisk Avancado
8/34
-
8/18/2019 Asterisk Avancado
9/34
-
8/18/2019 Asterisk Avancado
10/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 10/34 -
!"#$%"&'%($ +
Neste laboratório será feita o desenvolvimento de uma função para o bloqueio do envio de ligações,
baseados em uma tabela no banco de dados MySQL utilizando ODBC.
1. Criar a base de dados de números de telefones proibidos.cd /usr/src
wget http://ip fornecido pelo instrutor/treinamento/fontes/proibidos.sql
mysql -p < proibidos.sql
2. Configurar o ODBC
• Adicione as linhas a seguir ao arquivo /etc/odbcinst.ini para a configuração do conector do banco de dados com o UnixODBC.
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/odbc/libmyodbc.so
Setup = /usr/lib/odbc/libodbcmyS.so
FileUsage = 1
• Digite odbcinst -q -d para verificar se o conector está adequadamente configurado.
• Adicione as linhas a seguir ao arquivo /etc/odbc.ini para a configuração do arquivo dereferência entre o Asterisk o UnixODBC.
[asterisk-mysql]
Description = MySQL Asterisk
Driver = /usr/lib/odbc/libmyodbc.so
SERVER = localhost
PORT = 3306
DATABASE = proibidos
OPTION = 3
USER = root
PASSWORD =
• Digite isql -v asterisk-mysql a fim de verificar se o conector está adequadamente configurado.
-
8/18/2019 Asterisk Avancado
11/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 11/34 -
3. Configurar o Asterisk para conectar-se ao ODBC
• Adicione as linhas a seguir ao arquivo /etc/asterisk/res_odbc.conf [asterisk]
enabled => yes
dsn => asterisk-mysql
username => root
password =>
pre-connect => yes
idlecheck => 3600
• Para ativar as alterações, recarregue o módulo ODBC através da console do Asterisk com ocomando module reload res_odbc.so
• Verifique se tudo funcionou adequadamente com o comando de console do Asterisk odbcshow
*CLI> odbc show
ODBC DSN Settings
-----------------
Name: ipbx
DSN: ipbx-mysql
Pooled: No
Connected: Yes
4. Para que o Asterisk acesse a base de dados MySQL, deve-se criar funções ODBC para a seleção,
atualização, exclusão ou inserção de informações.• Adicione as linhas a seguir ao arquivo /etc/asterisk/func_odbc.conf e digite module reloadfunc_odbc.so na console do Asterisk para ativar as alterações.
[INSEREPROIBIDO]
dsn=ipbx
writesql=INSERT INTO telefones SET callerid = '${SQL_ESC(${ARG1})}'
[EXCLUIPROIBIDO]
dsn=ipbx
writesql=DELETE FROM telefones WHERE callerid = '${SQL_ESC(${ARG1})}'
[EXISTEROIBIDO]
dsn=ipbx
readsql=SELECT count(callerid) FROM telefones WHERE callerid = '${SQL_ESC(${ARG1})}'
-
8/18/2019 Asterisk Avancado
12/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 12/34 -
5. Adicione as linhas a seguir ao arquivo /etc/asterisk/extensions.ael, dentro do contexto aplicacoes. Noteque para cadastrar um número que será bloqueado deve-se discar o código 60 seguido do númerocompleto de telefone no formato DDD + número. E para a liberação de um número de telefone, ouseja a sua exclusão da base de dados, deve-se usar o código 61 seguido do número completo de
telefone no formato DDD + número.
// Cadastra numeros de telefone proibidos
_60ZZNXXXXXXX => {
Set(ODBC_INSEREPROIBIDO(${EXTEN:-10})=1;
PlayBack(auth-thankyou);
HangUp;
}
// Remove numeros de telefone proibidos
_61ZZNXXXXXXX => {
Set(ODBC_EXCLUIPROIBIDO(${EXTEN:-10})=1;
PlayBack(auth-thankyou);
HangUp;
}
6. Agora altere o plano de discagem de acordo com as linhas a seguir:// Bloqueia o envio da chamada baseado no numero de destino
macro proibidos (DESTINO) {
Set(ACHOU=${ODBC_EXISTEROIBIDO(${DESTINO});
if (${ACHOU} > 0) {PlayBack(tt-monkeys);
HangUp;
}
Return;
}
// Fim da MACRO proibidos
// Faz a terminação da chamada
macro externas (TERMINACAO, PREFIXO, DESTINO) {
// Checa se o número de destino é permitido
Gosub(proibidos,s,1(${DESTINO}));
// Inicia gravação da chamada
Gosub(gravachamada,s,1(${DESTINO}));
// Executa a chamada
Dial(${TERMINACAO}/${PREFIXO}${DESTINO},,tT);
HangUp;
}
// Fim da MACRO externas
-
8/18/2019 Asterisk Avancado
13/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 13/34 -
Capítulo 4 – Trunks IAX2
Neste laboratório será feita a integração de todos os servidores da sala de aula através da utilização de
Trunks IAX2.• A seguir está um exemplo de interligação de duas filiais, uma localizada no Rio de Janeiro e outra em
São Paulo. Tomando como base este exemplo, monte a estrutura de Trunks IAX2 com todos os
servidores da sala de aula.
• Supondo-se que o endereço IP do servidor da filial de São Paulo é 200.1.1.1 e o endereço IP do
servidor da filial do Rio de Janeiro é 200.2.2.2.
Filial SP (11)
• Arquivo /etc/asterisk/iax.conf: ; Contas para os servidores das filiais. Envio de chamadas
[RJ]
username = SP-RJ
secret = senhaSP
host = 200.2.2.2 ; Coloque aqui o endereço IP do servidor RJ
qualify = yes
type = peer
disallow = all
allow = gsm
trunk = yes
requirecalltoken = no
; Contas para os servidores das filiais. Recebimento de chamadas
[RJ-SP]
context = entradafiliais
secret = senhaRJ
type = user
disallow = all
allow = gsm
trunk = yes
requirecalltoken = no
• Note que na criação da conta para o recebimento das chamadas, [RJ-SP], o próprio nome da conta
funciona como nome do usuário para a autenticação.
• Arquivo /etc/asterisk/extensions.ael, contexto ramais:_02190XX => Dial(IAX2/RJ/${EXTEN:3},30,tT);
context entradafiliais {
includes {
ramais;}
}
-
8/18/2019 Asterisk Avancado
14/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 14/34 -
Filial RJ (21)
• Arquivo /etc/asterisk/iax.conf: ; Contas para os servidores das filiais. Envio de chamadas
[SP]
username = RJ-SP
secret = senhaRJ
host = 200.1.1.1 ; Coloque aqui o endereço IP do servidor SP
qualify = yes
type = peer
disallow = all
allow = gsm
trunk = yes
requirecalltoken = no
; Contas para os servidores das filiais. Recebimento de chamadas
[SP-RJ]
context = entradafiliais
secret = senhaSP
type = user
disallow = all
allow = gsm
trunk = yes
requirecalltoken = no
• Note que na criação da conta para o recebimento das chamadas, [SP-RJ], o próprio nome da conta
funciona como nome do usuário para a autenticação.
• Arquivo /etc/asterisk/extensions.ael, contexto ramais:_01190XX => Dial(IAX2/SP/${EXTEN:3},30,tT);
context entradafiliais {
includes {
ramais;
}
}
-
8/18/2019 Asterisk Avancado
15/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 15/34 -
Capítulo 5 – Servidor de Faxes com HylaFAX + IAXModem
Neste laboratório será implementada a função de envio e recepção de faxes através do Asterisk.
1.
Instalaraptitude install hylafax-server iaxmodem
2. Configurar
HylaFAX:
• Crie o arquivo /etc/hylafax/config.ttyIAX e adicione as linhas a seguir:CountryCode: 55
AreaCode: 011
FAXNumber: 1140049090
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules
ServerTracing: 0xFFF
SessionTracing: 0xFFF
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
RingsBeforeAnswer: 2
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"LocalIdentifier: "IAXmodem"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "De %%l|%c|Pagina %%P de %%T"
MaxRecvPages: 200
ModemType: Class1
Class1AdaptRecvCmd: AT+FAR=1
Class1TMConnectDelay: 400
ModemResetCmds: AT+VCID=1
PagerTTYParity: none
CallIDPattern: "NMBR="
CallIDPattern: "NAME="
CallIDPattern: "ANID="
CallIDPattern: "NDID="
• Para encaminhar os faxes recebidos para um endereço de e-mail altere o arquivo/var/spool/hylafax/etc/FaxDispatch conforme o exemplo a seguir:
FILETYPE=pdf:
-
8/18/2019 Asterisk Avancado
16/34
-
8/18/2019 Asterisk Avancado
17/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 17/34 -
• Enviando um fax. Edite o arquivo /etc/asterisk/extensions.ael e adicione as linhas a seguir:context enviafax {
includes {
ddi;
}}
• Adicionar um usuário para o envio de faxes pelos clientes do HylaFAX:faxadduser fax
Iniciando os serviços:
/etc/init.d/iaxmodem stop
/etc/init.d/iaxmodem start
/etc/init.d/hylafax stop
/etc/init.d/hylafax start
• Digite faxstat para checar se todos os serviços estão rodando corretamente:
Exemplo:asteriks:~# faxstat
HylaFAX scheduler on asteriks: Running
Modem ttyIAX (+47 33676271): Running and idle
-
8/18/2019 Asterisk Avancado
18/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 18/34 -
Capítulo 6 – ARA - Asterisk RealTime Architecture
!"#$%"&'%($ *
Neste laboratório será feita a migração dos arquivos de configuração dos seus ramais SIP para o
servidor de banco de dados MySQL.
MySQL:
• Criar as tabelas no servidor MySQLcd /usr/src
wget http://www.asteriks.com.br/livro/fontes/realtime.sql
mysql –p < realtime.sql
Asterisk:
3. Alterar o mapeamento dos arquivos para o banco de dados
• Edite o arquivo /etc/asterisk/extconfig.conf e adicione as linhas a seguir:
[settings]
sippeers => mysql,realtime,sip
sipusers => mysql,realtime,sip
iaxpeers => mysql,realtime,iax
iaxusers => mysql,realtime,iax
voicemail => mysql,realtime,voicemail
extensions => mysql,realtime,dialplan
queues => mysql,realtime,queues
queue_members => mysql,realtime,queue_member
4. Conectar o Asterisk ao MySQL
• Edite o arquivo /etc/asterisk/res_mysql.conf
e altere de acordo com o exemplo a seguir:
[general]
dbhost = localhost
dbname = realtime
dbuser = root
dbpass =
dbport = 3306
dbsock = /var/run/mysqld/mysqld.sock
-
8/18/2019 Asterisk Avancado
19/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 19/34 -
5. Preparação dos arquivos de ramais
• Edite o arquivo /etc/asterisk/sip.conf e comente todas as linhas de configuração dos seus ramais, para
que apenas os ramais cadastrados no Realtime sejam usados pelo sistema.
6.
Cadastrando os ramais no banco de dados
• Acesse o endereço HTTP://localhost/phpmyadmin e cadastre os seus ramais na tabela sip.
7. Testar
• Reinicie o Asterisk para ativar as alterações
!"#$%"&'%($ +
Neste laboratório será feita a migração das regras do contexto ramais para o servidor de banco de
dados MySQL.
• Migre todas as extensões do contexto ramais para o Banco de Dados.
• Edite o arquivo /etc/asterisk/extensions.ael, comente todas as extensões do contexto ramais, e insira as
linhas a seguir para que o Asterisk utilize as regras inseridas no Banco de Dados.
switches {
Realtime/ramais@extensions;
}
-
8/18/2019 Asterisk Avancado
20/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 20/34 -
Capítulo 7 – Verbio
!"#$%"&'%($ *
Neste laboratório será instalado o software de reconhecimento da fala (ASR) e de conversão de texto
para falar (TTS) Verbio.
Instalar e configurar:
1. Baixar e descompactar
mkdir –p /usr/src/verbio
cd /usr/src/verbio
wget http://ip fornecido pelo instrutor/treinamento/fontes/verbio/verbio-engines-8.0.deb
wget http://ip fornecido pelo instrutor/treinamento/fontes/verbio/verbio-clients-8.0.deb
wget http://ip fornecido pelo instrutor/treinamento/fontes/verbio/verbio-tts-julia-pt-brpa-8.0.deb
wget http://ip fornecido pelo instrutor/treinamento/fontes/verbio/verbio-asr-pt-br-8.0.deb
wget http://ip fornecido pelo instrutor/treinamento/fontes/verbio/verbio-asterisk-3.0.tar.bz2
wget http://ip fornecido pelo instrutor/treinamento/fontes/verbio/app_verbio_speech.c
2. Instalar os pacotes
cd /usr/src/verbio
tar xvjf verbio-asterisk-3.0.tar.bz2
dpkg -i verbio-engines-8.0.deb
dpkg -i --force-overwrite verbio-clients-8.0.deb
dpkg -i --force-overwrite verbio-tts-julia-pt-brpa-8.0.deb
dpkg -i --force-overwrite verbio-asr-pt-br-8.0.deb
3. Configurar. Edite o arquivo /etc/software-verbio-server e altere os parâmetros a seguir:
string VERBIO_ASR_CONF = "pt-br,";
string VERBIO_START_CONF = "pt-br,";string VERBIO_START_LANG = "pt-br";
string VERBIO_TTS_SPK = "pt-brPA,";
string VERBIO_START_SPK = "pt-brPA,";
-
8/18/2019 Asterisk Avancado
21/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 21/34 -
Integrar o Verbio ao Asterisk:
1. Preparando a compilação do módulo do Verbio
cd /usr/src/verbio
cp app_verbio_speech.c /usr/src/asterisk/apps/
2. Recompilar o Asterisk. Edite o arquivo /usr/src/asterisk/apps/Makefile e insira as linhas abaixo antesda instrução all: _all
MENUSELECT_DEPENDS_app_verbio_speech+=VOX
VOX_LIB=-lvoxlib
cd /usr/src/asterisk
makemake install
3. Ativar o Verbio.
! Criar as pastas para o funcionamento do Verbio com o Asterisk
mkdir –p /var/lib/asterisk/verbio/text
mkdir –p /var/lib/asterisk/verbio/gram
mkdir –p /var/lib/asterisk/verbio/audio
! Copiar arquivo de configuração do Verbio para a pasta correta.
cd /usr/src/verbio
cp verbio-asterisk-3.0/verbio.conf /etc/asterisk
! Setar o idioma para português brasileiro. Edite o arquivo /etc/asterisk/verbio.conf e altere os parâmetros a
seguir:
[tts]
default_language = pt-br
default_speaker = julia
[asr]
default_config = pt-br
default_language = pt-br
-
8/18/2019 Asterisk Avancado
22/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 22/34 -
4. Iniciar o Verbio.
! Digite a instrução a seguir na console do Linux para iniciar o Verbio em modo demonstração. Neste
modo o Verbio irá rodar por aproximadamente 30 minutos.
verbiod –e
5. Ativar os módulos do Verbio para o Asterisk.
! Na console do Asterisk digite module load app_verbio_speech.so e verifique se as aplicações do Verbio foram
ativadas corretamente, como no exemplo a seguir:
*CLI> module load app_verbio_speech.so
== Parsing '/etc/asterisk/verbio.conf': == Found
== Registered application 'VerbioInfo'
== Registered application 'VerbioLastErr'
== Registered application 'VerbioFreeChannel'
== Registered application 'VerbioLoadVcb'
== Registered application 'VerbioUnloadVcb'
== Registered application 'VerbioRec'
== Registered application 'VerbioStreamAndRec'
== Registered application 'VerbioPrompt'
== Registered application 'VerbioPromptAndRec'
Loaded app_verbio_speech.so => (Verbio Speech Technologies Applications)
!"#$%"&'%($ +
Neste laboratório será implementada uma regra de discagem para teste de conversão de texto para
fala (TTS) do Verbio.
1. Edite o arquivo /etc/asterisk/extensions.ael e adicione as linhas a seguir ao contexto ramais.
9998 => {
Answer;
VerbioPrompt("Teste de conversão de texto para fala do Verbio com o Asterisk.”,1500,100,,,,,,dvg);
HangUp;
}
-
8/18/2019 Asterisk Avancado
23/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 23/34 -
!"#$%"&'%($ ,
Neste laboratório será modificada a URA para a utilização das tecnologias de (ASR) e de conversão
de texto para fala (TTS) do Verbio.
1. Edite o arquivo /var/lib/asterisk/verbio/gram/asr.txt e adicione as linhas a seguir.
1 Comercial
2 Atendimento
3 Transportes
2. Edite o arquivo /etc/asterisk/extensions.ael e altere o contexto ura de acordo com o exemplo a seguir.
s => {
Answer;
VerbioLoadVcb(asr.txt,isolated,,,v);
VerbioPromptAndRec("Diga ou digite o ramal desejado\, ou tecle para Departamento Comercial 1\,
atendimento a clientes 2\, Transportes 3 ou aguarde para ser atendido pelo ramal 9002”,1500,100,,,,,,dvg);
if (${VDTMF_DETECTED} = TRUE) {
goto ${VDTMF_RESULT},1;
}
if (${VASR_WORDS} > 0) {
goto ${VASR_RESULT0},1;}
} // Fim da extensão s
// Opcao invalida, desvia para correio de voz
i => {
VerbioPrompt(Opcao inválida.);
goto correiotelefonista,s,1;
}
// Nao digitou nada, desvia para o ramal 9002
t => {
VerbioPrompt(Não pressionou nada.);
Gosub(discaramal,s,1(SIP,9002));
}
// Opcao 1 - Comercial
1 => {
VerbioPrompt(Opção Departamento Comercial.);
Dial(SIP/9002&IAX2/9003,15,tT);
Goto(correiotelefonista,s,1);
}
-
8/18/2019 Asterisk Avancado
24/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 24/34 -
// Opcao 2 - Atendimento a Clientes
2 => {
VerbioPrompt(Opção Atendimento a Clientes.);
Dial(SIP/9007,15,tT);
Dial(SIP/9004,15,tT);Goto(correiotelefonista,s,1);
}
// Opcao 3 - Transportes
3 => {
VerbioPrompt(Opção Transportes.);
Dial(SIP/9006,15);
Voicemail(9006);
}
-
8/18/2019 Asterisk Avancado
25/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 25/34 -
Capítulo 8 – DUNDi
Neste laboratório será habilitado o protocolo de pesquisa de rotas DUNDi, para que os servidores da
sala de aula compartilhem rotas entre si.• A seguir está um exemplo de compartilhamento de rotas entre dois servidores, um localizado no Rio de
Janeiro e outro em São Paulo. Tomando como base este exemplo, monte a estrutura de
compartilhamento de rotas para as chamadas locais com todos os servidores da sala de aula.
• Supondo-se que o endereço IP do servidor da filial de São Paulo é 192.168.250.250 e o endereço IP do
servidor da filial do Rio de Janeiro é 192.168.250.251.
Filial SP (11)
• Arquivo /etc/asterisk/iax.conf:
[contaparadundi]
type = friend
dbsecret = dundi/secret
context = ramais
disallow = all
allow = gsm
• Arquivo/etc/asterisk/dundi.conf:
[general]
department = TI
organization = Empresa SP
locality = Sao Paulo
stateprov = SP
country = BR
phone = 1140049000
bindaddr = 0.0.0.0
port = 4520
entityid = 00:1d:60:a0:6b:3c
cachetime = 5
ttl = 2
autokill = yes
-
8/18/2019 Asterisk Avancado
26/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 26/34 -
[mappings]
local-dundi => local-asterisk,0,IAX2,contaparadundi:${SECRET}@192.168.250.250/${NUMBER:3}
[00:0c:29:a1:3e:98]
model = symmetrichost = 192.168.250.251
inkey = chaveparadundi
outkey = chaveparadundi
include = local-dundi
permit = all
qualify = Yes
• Arquivo /etc/asterisk/extensions.ael. Adicione o contexto a seguir ao seu plano de discagem.
// Regras publicadas para a malha DUNDi
context local-asterisk
{
_01190XX => NoOp;
}
• Arquivo /etc/asterisk/extensions.ael. Adicione as linhas a seguir ao contexto ramais:
// Envia para o DUNDi
switches {
DUNDi/local-dundi;
}
Filial RJ (21)
• Arquivo /etc/asterisk/iax.conf:
[contaparadundi]
type = friend
dbsecret = dundi/secret
context = ramais
disallow = all
allow = gsm
-
8/18/2019 Asterisk Avancado
27/34
-
8/18/2019 Asterisk Avancado
28/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 28/34 -
Capítulo 9 – Filas de Atendimento (DAC) e QueueMetrics
Neste laboratório será instalado o software de gerenciamento de filas de atendimento (DAC)
QueueMetrics.
Instalar e configurar:
1. Baixar e descompactar o QueueMetrics e seus componentes
mkdir –p /usr/src/queuemetrics
cd /usr/src/queuemetrics
wget http://ip fornecido pelo instrutor/treinamento/fontes/queuemetrics/QueueMetrics-1.5.2-trial.tar.gz
wget http://ip fornecido pelo instrutor/treinamento/fontes/queuemetrics/mysql-connector-java-5.1.7-bin.jar
wget http://ip fornecido pelo instrutor/treinamento/fontes/queuemetrics/queuemetrics.sql
aptitude install sun-java6-jdk
aptitude install tomcat5.5
2. Criar a base de dados do QueueMetrics
cd /usr/src/queuemetrics
mysql –p < queuemetrics.sql
3. Configurando o Tomcat. Edite o arquivo /etc/default/tomcat5.5 de acordo com o exemplo a seguir:
JAVA_HOME=/usr/lib/jvm/java-6-sun
JAVA_OPTS="-Xms256M -Xmx512M"
TOMCAT5_SECURITY=no
4. Instalar o QueueMetrics
cd /var/lib/tomcat5.5/webapps/
tar xvzf /usr/src/queuemetrics/QueueMetrics-1.5.2-trial.tar.gz
5. Instalar o conector do Tomcat com o MySQL
cp /usr/src/queuemetrics/mysql-connector-java-5.1.7-bin.jar queuemetrics-1.5.2/WEB-INF/lib/
-
8/18/2019 Asterisk Avancado
29/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 29/34 -
6. Configurar o qloader. Edite o arquivo /var/lib/tomcat5.5/webapps/queuemetrics-1.5.2/WEB-INF/mysql-utils/qloader/qloader.pl de acordo com as informações a seguir:
my $mysql_host = $options{h} || "localhost";
my $mysql_db = $options{d} || "queuemetrics";
my $mysql_user = $options{u} || "queuemetrics";
my $mysql_pass = $options{p} || "javadude";
7. Configurar a execução automática do qloader.
• Edite o arquivo /var/lib/tomcat5.5/webapps/queuemetrics-1.5.2/WEB-INF/mysql-utils/qloader/Other-
initscripts/qloaderd de acordo com as informações a seguir:
qloader=/var/lib/tomcat5.5/webapps/queuemetrics-1.5.2/WEB-INF/mysql-utils/qloader/qloader.pl
• Execute as instruções a seguir para a execução do qloaderd na inicialização do servidor:
cd /var/lib/tomcat5.5/webapps/queuemetrics-1.5.2/WEB-INF/mysql-utils/qloader/
chmod a+x qloader.pl
cd /var/lib/tomcat5.5/webapps/queuemetrics-1.5.2/WEB-INF/mysql-utils/qloader/Other-initscripts
dos2unix qloaderd
chmod a+x qloaderd
cp qloaderd /etc/init.d
update-rc.d qloaderd defaults
Iniciando os serviços:
/etc/init.d/qloaderd restart
/etc/init.d/tomcat5.5 restart
Testar o funcionamento:
1. Acesse o endereço http://localhost:8180/queuemetrics-1.5.2/. Utilize para o logon as informações aseguir:
login = demoadmin
senha = demo
-
8/18/2019 Asterisk Avancado
30/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 30/34 -
Capítulo 10 – Asterisk2Billing
Neste laboratório será instalado o software de tarifação Asterisk2Billing (A2Billing).
Instalar e configurar:
1. Baixar e descompactar
mkdir –p /usr/src/a2billing
cd /usr/src/a2billing
wget http://ip fornecido pelo instrutor/treinamento/fontes/a2billing/A2Billing_1.3.4.tar.gz
wget http://ip fornecido pelo instrutor/treinamento/fontes/a2billing//a2billing.sql
tar xvzf A2Billing_1.3.4.tar.gz
2. Criar as bases de dados no MySQL
cd /usr/src/a2billing
mysql –p < a2billing.sql
3. Alterar o arquivo de configuração do A2Billing. Edite o arquivo /usr/src/a2billing/a2billing.conf ealtere o parâmetro dbtype para mysql.
4. Instalar o A2Billing: GUI, AGIs e sons em português brasileiro.
cd /usr/src/a2billing
cp a2billing.conf /etc/asterisk
ln -s /usr/src/a2billing/A2Billing_UI /var/www/a2billing
ln -s /usr/src/a2billing/A2BCustomer_UI /var/www/a2billingcustom
cd /usr/src/a2billing/A2Billing_AGI
cp a2billing.php /var/lib/asterisk/agi-bin/
cp -rf libs_a2billing /var/lib/asterisk/agi-bin/
chmod +x /var/lib/asterisk/agi-bin/a2billing.php
cd /usr/src/a2billing
cp -rf addons/sounds/br/* /var/lib/asterisk/sounds/pt_BR/
-
8/18/2019 Asterisk Avancado
31/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 31/34 -
Preparar o Asterisk para funcionar com o A2Billing:
5. Configurar uma conta AMI para o A2Billing. Edite o arquivo /etc/asterisk/manager.conf e adicione aconta a seguir:
[myasterisk]
secret = mycode
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
6. Alterar o plano de discagem. Crie o contexto a seguir para que as chamadas sejam tratadas peloA2Billing.
context a2billing {
_X. => {Answer;
Wait(1);
AGI(a2billing.php);
Wait(1);
Hangup;
}
}
7. Faça o include do contexto criado no item anterior no contexto ramais.
Testar o funcionamento:
8. Acesse o endereço http://localhost/a2billing. Utilize para o logon as informações a seguir:
login = root
senha = myroot
-
8/18/2019 Asterisk Avancado
32/34
Asterisk ® PBX na Prática Avançado_V.2.5
http://www.asteriks.com.br Todos os direitos reservados a Asteriks (Alexandre Keller) - 27/1/2010- 32/34 -
Capítulo 11 – HeartBeat e DNS RR
-."%."&
Usado para construir clusters de altíssima disponibilidade. Trabalha enviando um ‘heartbeat’ entre
duas máquinas, uma primária ou master e outra secundário ou slave. Em caso de falha, a máquina
configurada como secundária irá assumir os serviços que estavam rodando na máquina primária.
Os clientes acessam os serviços rodando no cluster através de um endereço IP único, publicado pela
máquina considerada primária. Em caso de queda ou falha na máquina primária, este endereço IP é
automaticamente assumido pela máquina secundária, que neste momento passa a ser o servidor master do
cluster.
A configuração do Heartbeat envolve três aquivos, que devem ser duplicados em ambos os servidores.
! /etc/heartbeat/authkeys: arquivo da chave e forma de autenticação usada pelos nodos. Pode-se usar CRC,
MD5 ou SHA1. Para a sua correta leitura e processamento deve possuir os direitos 600. O comando do
Linux que altera essa propriedade é o chmod 600 /etc/heartbeat/authkeys.
Exemplo:auth 1
1 crc
2 sha1
3 md5
! /etc/heartbeat/haresources: especifica os serviços compartilhados e o host primário do cluster.
Sintaxe: IPaddr::
Exemplo:servidorPRIMARIO IPaddr::192.168.0.10 asterisk mysql
! /etc/heartbeat/ha.cf: lista dos nodos do cluster, topologia de comunicação e as funcionalidades habilitadas
na configuração.
! "#$%&'()#* +,-%(./ /0"# +1 2#01+ "# "#$%& 1#,3/ &,+.+"+14
! )/&'()#* +,-%(./ /0"# +1 "#2+(1 2#01+ 1#,3/ &,+.+"+14
! 5##6+)(.#* 7#26/ "# #0.(/ "/ 8#+,7$#+7 #07,# /1 0/"/1 "/ 9)%17#,4
! "#+"7(2#* -%+07/ 7#26/ "# (0+7(.("+"# 6+,+ "#9)+,+, / 0/"/ 9/2/ (0+7(./4
! :+,07(2#* -%+07/ 7#26/ +07#1 "# #0.(+, / ;)7(2/ +.(1/ "# 8#+,7$#+7 6+,+ /1 0/"/1 "/ 9)%17#,4
! (0(7"#+"*
-
8/18/2019 Asterisk Avancado
33/34
-
8/18/2019 Asterisk Avancado
34/34
Asterisk ® PBX na Prática Avançado_V.2.5
/01 22
DNS Round-Robin é a implementação do servidor DNS onde são resolvidos diferentes endereços IP
para a mesma identificação de host. Comumente utilizado para a distribuição de processamento entre
diferentes servidores. Seu maior problema é não ter nenhum critério de balanceamento de carga e/ouperformance para a distribuição dos endereços IP.
Exemplo:ipbx A 192.168.0.11
192.168.0.12
192.168.0.13
M(&%,+ R* OP#26)/ "# (26)#2#07+>3/ "# FST U/%0"VU/$(0
M(&%,+ W* OP#26)/ "# +6)(9+>3/ 9/2 Q#+,7$#+7 # FST U/%0"VU/$(0