O documento discute a configuração do Asterisk para VoIP, cobrindo arquivos de configuração como sip.conf e extensions.conf, além de conceitos como extensões, prioridades, aplicações e contextos que compõem o plano de discagem no Asterisk.
1. VoIP e NGN
Asterisk
Configuração
Frederico Madeira <fred@madeira.eng.br>
www.madeira.eng.br
2. Agenda
➔
Arquivos de Configuração
➔
sip.conf
➔
Plano de Discagem
– Extensões
– Prioridades
– Aplicações
– Contextos
➔
Prática
3. Arquivos de Configuração
➔
O asterisk é controlado por arquivos de texto
localizados em /etc/asterisk
➔
Sessões são chamadas de contextos
➔
Exemplo da Sintaxe:
;
; The first line without a comment should be the session title
;
[Session]
Key = value; Variable designation
[Session 2]
Key => value; Object declaration
4. Arquivos de Configuração
➔
sip.conf
– Configurações do protocolo SIP
– Configurações das extensões e troncos SIP
➔
extensions.conf
– Plano de discagem do asterisk
➔
iax.conf
– Configurações do protocolo IAX
– Configurações das extensões e troncos IAX
5. sip.conf
✔
Arquivo lido de cima para baixo
✔
A primeira sessão é a [general] e possui os
parâmetros globais do SIP
✔
Exemplo:
[general]
bindport = 5060
bindaddr = 192.168.30.10
context = default
disallow = all
allow = ulaw
maxexpirey = 120
defaultexpirey = 80
6. sip.conf
Definições:
✔
allow/disallow: Define qual codec pode ser
utilizado
✔
bindaddr: Endereço que sera utilizado pelo
Asterisk SIP listener. Se for setado com 0.0.0.0
(default) irá utilizar todas as interfaces
✔
context: Configura o contexto padrão para todos
os clientes, a não ser que seja modificado na
sessão de definições do cliente
✔
bindport: Porta UDP SIP que ficará aberta
✔
maxexpirey: Tempo máximo para se registrar
(segundos)
✔
defaultexpirey: Temo padrão para se registro
(segundos)
✔
register: Registra o Asterisk em outro host
7. sip.conf
✔
Após a sessão é a [general] teremos a sessões
para definição dos clientes (extensões)
✔
Exemplo:
[4020]
type=friend
secret=mysecret
host=10.1.30.50
context=trusted
[4021]
type=friend
secret=xlite
host=dynamic
defaultip=10.1.30.17
8. sip.conf
Definições:
✔
[nome]: Quando um dispositivo SIP se conecta ao
Asterisk, ele usa a parte do nome do usuário
retirado do SIP URI para localizar o peer/user.
✔
type: Configura a classe da conexão. Pode ser
peer, user, e friend.
✔
peer: Asterisk envia chamadas para um peer.
✔
user: Asterisk recebe chamadas de um usuário.
✔
friend: os dois anterores ao mesmo tempo
✔
host: Endereco IP ou hostname. A opcão mais
comum é “dynamic”, usado quando um host
registra em um Asterisk.
✔
secret: Password para autenticar um usuário ou
peer.
9. Testando o registro
✔
Configure seu cliente SIP para se registra no
Asterisk
✔
Entre na console do Asterisk e aguarde pela
mensagem de registo:
[root@pbxip asterisk]# /etc/init.d/iptables stop
[root@pbxip asterisk]# /usr/sbin/asterisk -rvvvvvvv
Connected to Asterisk 1.6.2.8 currently running on
pbxip (pid = 2520)
Verbosity was 3 and is now 7
-- Remote UNIX connection
pbxip*CLI>
-- Registered SIP '4550' at 192.168.15.242 port
5060
> Saved useragent "Twinkle/1.4.2" for peer
4550
pbxip*CLI>
10. Plano de discagem (Dialplan)
✔
É o coração do Asterisk
✔
Define com o Asterisk irá tratar com cada chamada
feita ou recebida pelo PBX
✔
Constituída por extensões que são formadas por
instruções as quais o Asterisk executará de forma
sequenciada.
✔
Configurado no extensions.conf
✔
Possui 4 conceitos de maior relevância
✔
Extensões
✔
Prioridades
✔
Aplicações
✔
Contexto
11. Plano de discagem (Dialplan)
✔
Extensões
✔
O plano de discagem é feito por diversas
extensões
✔
É uma string que irá trigar um evento quando
uma chamada for feita
✔
Pode ser literal ou pattern
12. Plano de discagem (Dialplan)
✔
Extensões (exemplos)
exten=>8580,1,Dial(SIP/8580,20)
exten=>8580,2,hangup()
Onde:
✔
Exten : define o próximo passo da chamada
✔
8580 : é o grupo de dígitos que foram discados
(called number)
✔
1 e 2: são prioridades que definem a ordem de
execução
✔
Ao discar 8580, a chamada será encaminhada para
o cliente registrado com o número 8580 e tocará
durante 20s, caso não haja atendimento a chamada
será desligada.
13. Plano de discagem (Dialplan)
✔
Prioridades
✔
São ações numeradas para execução
sequenciada em cada extensão
✔
Cada prioridade chama uma aplicação
✔
Inicia com 1 e é incrementada de 1 a cada linha
da extensão.
✔
Se a numeração não for sequenciada a execução
será abortada
14. Plano de discagem (Dialplan)
✔
Aplicações
✔
Parte fundamental do Asterisk
✔
Lidam com canais de voz, reproduzem
mensagens/tons, lidam com as chamadas e com
a desconexão
✔
Para verificar as aplicações instaladas:
pbxip*CLI> core show applications
-= Registered Asterisk Applications =-
ADSIProg: Load Asterisk ADSI Scripts into phone
AgentLogin: Call agent login.
AGI: Executes an AGI compliant application
AMD: Attempt to detect answering machines.
Answer: Answer a channel if ringing.
Authenticate: Authenticate a user
BackGround: Play an audio file while waiting for
digits of an extension to go to.
15. Plano de discagem (Dialplan)
✔
Contexto
✔
Fundamental para o utilização do Asterisk bem
como para a Segurança
✔
Define um escopo
✔
Permite a separação do plano de discagem em
partes diferentes
✔
Altamente ligado aos canais do Asterisk
✔
Quando o Asterisk recebe uma chamada, ela é
tratada dentro do contexto de entrada daquele
canal.
✔
O contexto de entrada sempre é definido no
arquivo de configuração do canal (iax.conf,
sip.conf)
18. Plano de discagem (Dialplan)
✔
Contexto
✔
Contextos diferentes podem ser criados para
atender a diferentes empresas
✔
Ou diferentes classes de usuários
✔
Ou definir quem pode realizar ligações
internacionas, interurbanas, locais ou apenas
dentro da rede
✔
Tudo isso com os mesmos arquivos de
configuração
✔
Um contexto é criado com um nome entre []
✔
Um contexto é composto por diversas extensões
✔
Ele termina quando o outro inicia
19. Prática
✔
Na empresa temos 4 grupos de ramais
✔
8010 – 8019 (Administração)
✔
8020 – 8029 (RH)
✔
8030 – 8039 (TI)
✔
8040 – 8049 (Financeiro)
1. Crie extensões no contexto [default] para que todos
possam se falar
2. Crie um contexto chamado [simplifica] e crie uma
única extensão que permita falar com todos os
ramais.
3. Uma nova politica foi dada conforme regras abaixo,
crie contextos e extensões que implementem a
mesma.
✗
TI liga para todos os ramais
✗
RH só liga para TI e Financeiro
✗
Admin só liga para TI
✗
Financeiro liga para TI e Admin
20. VoIP e NGN
Asterisk
Configuração
Frederico Madeira <fred@madeira.eng.br>
www.madeira.eng.br