• Nenhum resultado encontrado

Só na 4Linux o aluno aprende MUITO MAIS!

N/A
N/A
Protected

Academic year: 2021

Share "Só na 4Linux o aluno aprende MUITO MAIS!"

Copied!
160
0
0

Texto

(1)
(2)

www.4linux.com.br 2

Só na 4Linux o aluno

aprende

(3)

3

1 - Bem-vindo

INSTRUTORES

➢ Felipe R. Pasa

➢ Flávio Henrique Somensi HORÁRIOS

08:30 as 12:00

➢ Intervalo para cofee-break (15 minutos) ➢ 13:30 as 18:00

(4)

4

A Dexter – plano de ação

➢ Ramais ➢ Troncos ➢ Interligação c/ filiais ➢ Interligação c/ operadoras ➢ Chamadas internas ➢ Chamadas externas ➢ Estacionamento ➢ Correio de Voz ➢ Não perturbe ➢ Siga-me ➢ Filas ➢ Segurança ➢ Interface gráfica

(5)

5

(6)

6

Objetivos da Aula

➢ Conceituar telefonia básica

➢Explicar o que é o Asterisk e a sua relação com outros projetos

➢ Descrever qual o papel da Digium neste ecosistema ➢ Reconhecer a arquitetura do Asterisk

➢ Conceituar VoIP

(7)

7

O

 Asterisk

 e

 um

 toolkit

 que

 transforma

 um

 PC
 


ordinário

 em

 uma

 poderosa

 central

 telefônica



multi-protocolo
com
recursos
avançados.



(8)

8

Porque utilizar o Asterisk

➢ Sistema aberto ➢ Redução de custos ➢ Controle total ➢ Aumento de produtividade ➢ Melhoria no atendimento ➢ Roda no Linux

(9)

9

O papel da Digium

➢ Mantenedora oficial do projeto Asterisk

➢ Fundada por Mark Spencer (atual CTO da Empresa) ➢ Desenvolve hardware para Asterisk

➢ Também comercializa versões especiais do Asterisk ➢ Asterisk GPL

➢ Asterisk Business Edition ➢ Asterisk OEM

(10)

10

(11)

11

Arquitetura do Asterisk

CANAIS

➢ TDM: DAHDI, KHOMP, DGV

➢ IP ou VoIP: SIP, H323, IAX2

➢ ESPECIAIS: Agent, Console, Local

CODEC'S

➢ GSM, G711, G729, iLBC, etc

APLICAÇÕES

(12)

12

VoIP

É um conjunto de tecnologias utilizadas em redes IP com o objetivo de realizar comunicação de voz e vídeo.

Principais benefícios:

➢ Redução de custo com infra estrutura ➢ Flexibilidade

(13)

13

VoIP - Implementação

DIFICULDADES

➢ Protocolo UDP ➢ Roteamento de Tráfego ➢ Firewalls, NAT

DESAFIOS

➢ Latência ➢ Perda de Pacotes ➢ Jitter ➢ QoS ➢ Segurança

(14)

14

Cenários de uso

(15)

15

Cenários de uso

(16)

16

Cenários de uso

(17)

17

Cenários de uso

(18)

18

Cenários de uso

(19)

19

Cenários de uso

(20)

20

Cenários de uso

(21)

21

(22)

22

Objetivos da Aula

➢ Dimensionar o hardware necessário para o Asterisk ➢ Instalar o Linux e as bibliotecas necessárias

➢ Fazer o download do Asterisk ➢ Compilar o Asterisk

➢ Iniciar o Asterisk na carga do sistema

(23)

23

Dimensionar hardware

CANAIS

➢ Quantos e quais telefones serão utilizados? ➢ Quantas linhas externas, qual tipo?

➢ Quantas chamadas simultâneas?

➢ Quais CODECs serão empregados? ➢ Será necessário transcodificação?

(24)

24

Dimensionar hardware

RECURSOS

➢ Cancelamento de eco ➢ Correio de voz ➢ Conferência ➢ Gravação ➢ Fax

(25)

25

Definir hardware

Item Levar em consideração Até 5 canais Até 10 canais Até 15 canais

Processador

- Número de chamadas simultâneas

- Gravação das chamadas - codec's utilizados - Funcionalidades utilizadas x86 400 Mhz x86 1 Ghz x86 3 Ghz Memória RAM - Número de chamadas simultâneas - Gravação de chamadas - codec's utilizados 256Mb 512Mb 1 Gb

Disco Rígido - Gravação de Chamadas - Sem gravação: 10 Gb- Com gravação: 10 Gb para SO e 1,2 Mb por minuto gravado (WAV)

Placa mãe - Placas de telefonia x Slots PCI disponíveis Sistema

(26)

26

Sistema Operacional

SISTEMA OPERACIONAL

➢ GNU/Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Solaris.

BIBLIOTECAS

➢ As bibliotecas necessárias para a compilação e

instalação do Asterisk dependem dos módulos que se deseja utilizar.

(27)

28

Compartilhamento de IRQ

➢ O hardware de telefonia é muito sensível em questões relacionadas a temporização

➢ Caso um dispositivo não consiga acessar um IRQ

dentro de um espaço de tempo determinado, pode haver problemas com a qualidade da voz

➢ É interessante que as placas de telefonia não

(28)

29

Compilar e instalar o Asterisk

DOWNLOAD ➢ http://downloads.asterisk.org → /usr/src COMPILAR ➢ cd /usr/src/asterisk ➢ ./configure ➢ make menuselect ➢ make INSTALAR ➢ make install ➢ make config ➢ make samples

(29)

30

Iniciando o Asterisk

BACKGROUND

# service asterisk start

FOREGROUND

# asterisk -vvvgc

onde:

➢ c: habilita o modo console

➢ v: Aumenta a verbosidade na CLI

(30)

31

Parando o Asterisk

BACKGROUND

# service asterisk stop

gracefully *CLI> core stop now

when convenient

FOREGROUND

gracefully *CLI> core stop now

(31)

32

Estrutura do Asterisk

DIRETÓRIOS ➢ /etc/asterisk ➢ /var/log/asterisk ➢ /var/lib/asterisk ➢ /var/spool/asterisk

Importante: Estes diretórios são configuráveis no

(32)

33

Estrutura do Asterisk

ARQUIVOS (/etc/asterisk) ➢ extensions.conf ➢ sip.conf ➢ iax.conf ➢ features.conf ➢ modules.conf ➢ cdr.conf ➢ voicemail.conf ➢ queues.conf

(33)

34

Laboratório

Objetivos:

➢ Baixar o Asterisk

➢ Compilar e instalar o Asterisk ➢ Compilar e instalar bibliotecas ➢ Gerenciar o processo

(34)

35

(35)

36

Objetivos da Aula

➢ Conhecer os tipos de sinalização ➢ Diferenciar interfaces FXS de FXO

➢ Conhecer canais digitais e seus protocolos

(36)

37

Tipos de sinalização

SUPERVISÃO ➢ On-hook ➢ Off-hook ➢ Ringing ENDEREÇAMENTO ➢ TOM (dtmf) ➢ PULSO (decádico) INFORMAÇÃO ➢ Tom de discagem ➢ Sinal de ocupado

➢ Tom de retorno (ringback)

➢ Congestionamento

➢ Número inválido

(37)

38

Interfaces analógicas FX

FXO (foreign exchange office)

➢ Se comunica diretamente com a operadora FXS (foreign exchange station)

(38)

39

Canais digitais

Utilizado quando o número de linhas telefônicas necessárias é muito grande ( geralmente > 10 ).

(39)

40

Sinalização digital

MFC/R2 ou R2

➢ Também chamada de CAS (sinalização associada ao canal)

➢ Muito comum no Brasil ISDN ou RDSI

➢ Também chamada de CCS (sinalização comum de canal)

➢ Mais rápido - utiliza um canal exclusivo para sinalização

(40)

41

Hardwares de telefonia

(41)

42

Hardwares de telefonia

(42)

43

Hardwares de telefonia

(43)

44

Hardwares de telefonia

(44)

45

Hardwares de telefonia

(45)

46

(46)

47

Objetivos da Aula

➢ Entender e editar os arquivos de configuração ➢ Instalar softphones baseados em SIP

➢ Configurar um plano de discagem simples ➢ Discar entre ramais

➢ Discar para uma mensagem gravada ➢ Apresentando a interface gráfica SNEP

(47)

48

Plano de Discagem

CONCEITOS

➢Lista de instruções que o Asterisk deve seguir para processar as chamadas

➢ Disparadas a partir dos dígitos recebidos

➢ Configuradas em /etc/asterisk/extensions.conf ➢ Módulos de Planos de Discagem

➢ LUA (pbx_lua.so) ➢ AEL (pbx_ael.so)

(48)

49

Plano de discagem

LÓGICA HIERÁRQUICA

Contexto

 Extensão

 Prioridade

 Aplicação

Exemplo: [default] exten => _XXXX,1,Dial(SIP/2000) [default] exten => _XXXX,1,Dial(SIP/2000)

(49)

50

Plano de discagem

CONTEXTOS

➢ Definem o escopo

➢ Permitem criar diferentes classes de ramais ➢ Estão relacionados diretamente aos canais ➢ São o ponto de entrada de uma chamada

Sintaxe:

(50)

51

Plano de discagem

EXTENSÕES

➢ Regras de discagem declaradas dentro do contexto

➢ Podem ser definidas de 3 maneiras:

➢ Numérica → exten => 9052

➢ Numéricas com callerid → exten => 9052/32009000

➢Alfanuméricas → exten => ura32

Máscaras baseadas em ER

(51)

52

Plano de discagem

EXPRESSÃO REGULAR

E.R. Função Exemplo

X Qualquer número de 0 a 9 _XX → qualquer número de 00 a 99

Z Qualquer número de 1 a 9 _ZZ → qualquer número de 11 a 99 – exceto (20,30,40,...)

N Qualquer número de 2 a 9 _NN → qualquer número de 22 a 99 – exceto (20,21,30,31,...)

[e] Lista de opções

_[0-9] → um número entre 0 e 9 - é equivalente a X _[15-7] → um número da lista: 1 ou 5 até 7.

_[13457] → um número da lista: 1 ou 3 ou 4 ou 5 ou 7. _[a-zA-Z] → uma letra maiúscula/minúscula do alfabeto. . Qualquer carácter, infinitas vezes _0800. → Expressão regular que vale para qualquer número que inicie com _0800 + qualquer outro carácter,

infinitas vezes.

! Coringa inclusivo _0800! → funciona como um ponto, mas trata de forma diferente, testando todas as outras possibilidades primeiro.

(52)

53

Plano de discagem

EXPRESSÃO REGULAR - Exemplo

Antes Depois [ramais] exten => 2000,1,Dial(SIP/2000) exten => 2001,1,Dial(SIP/2001) exten => 2002,1,Dial(SIP/2002) [ramais] exten => _200X,1,Dial(SIP/${EXTEN})

(53)

54

Plano de discagem

PRIORIDADES

➢ Definem a ordem de execução de uma extensão ➢ Podem ser: ➢ Numéricas exten => 2000,1,Dial(SIP/2000) exten => 2000,2,Voicemail(2000,u) exten => 2000,3,Hangup() exten => 2000,1,Dial(SIP/2000) exten => 2000,2,Voicemail(2000,u) exten => 2000,3,Hangup()

(54)

55

Plano de discagem

PRIORIDADE

➢ Próxima (n – next)

➢ Próxima (n – next) com rótulo

exten => 2000,1,Dial(SIP/2000) exten => 2000,n,Voicemail(2000,u) exten => 2000,n,Hangup() exten => 2000,1,Dial(SIP/2000) exten => 2000,n,Voicemail(2000,u) exten => 2000,n,Hangup() exten => 2000,1,Dial(SIP/2000) exten => 2000,n,GotoIf($[${VAR}=BUSY]?ocupado:desliga) exten => 2000,n(ocupado),Voicemail(2000,b) exten => 2000,n(desliga),Hangup() exten => 2000,1,Dial(SIP/2000) exten => 2000,n,GotoIf($[${VAR}=BUSY]?ocupado:desliga) exten => 2000,n(ocupado),Voicemail(2000,b)

(55)

56

Plano de discagem

APLICAÇÕES

➢ É o destino final da execução de uma extensão ➢ Cada aplicação tem uma finalidade EXCLUSIVA ➢ O Asterisk possui mais de 150 aplicações

➢ Exemplos: ➢ Dial

➢ Hangup

➢ MixMonitor ➢ MeetMe

(56)

57

Canais SIP

CONCEITOS

➢ Um canal pode ser interpretado como um uma conexão de E/S de uma chamada no Asterisk

➢ SIP é o canal mais comum dentre os canais IP ➢ É configurado em /etc/asterisk/sip.conf

(57)

58

/etc/asterisk/sip.conf

[general] udpbindaddr=0.0.0.0:5060 context=default disallow=all allow=ulaw,alaw,gsm directmedia=no ;---;Comentarios iniciam com “;” ;---[2000] type=friend secret=2000 dtmfmode=rfc2833 host=dynamic [general] udpbindaddr=0.0.0.0:5060 context=default disallow=all allow=ulaw,alaw,gsm directmedia=no ;---;Comentarios iniciam com “;” ;---[2000] type=friend secret=2000 dtmfmode=rfc2833 host=dynamic

(58)

59

Laboratório

Objetivos:

➢ Configurar ramais SIP

➢ Criar um plano de discagem

(59)

60

Interface Gráfica SNEP

CONCEITUALMENTE

É um PBX IP completo de grande porte e recursos que fornece Suporte à Telefonia Convencional e Telefonia IP e é baseado em GNU/Linux e Asterisk.

TECNICAMENTE

É um Interface de administração, configuração e monitoramento que agrega Inteligência ao Asterisk.

(60)

61

Interface Gráfica SNEP

ESTRUTURA LÓGICA:

A instalação do SNEP sempre está baseada em um “Core”, ou sistema base, e a ela são adicionados módulos que dão ao “Core” funcionalidades adicionais. Este “core” é o Snep Livre.

SNEP

Módulo A Módulo B Módulo C

(61)

62

Interface Gráfica SNEP

RAMAIS

Os Ramais definem os membros dos sistemas SNEP que estarão habilitados ou não a fazer / receber chamadas.

O SNEP também usa como conceito que: ”todo ramal é igualmente um “usuário” da Interface e tem suas permissões/restrições definidas pelo Administrador do Sistema”. Ramais podem usar tecnologia:

➢ IP ( SIP / IAX )

➢ Virtual

(62)

63

Interface Gráfica SNEP

EBS-FXS Ramais Khomp Ramais Khomp Ramais Virtuais Ramais Virtuais Conexão LAN Conexão WAN Conexão Cabo

(63)

64

Laboratório

Objetivos:

➢ Baixar e instalar o SNEP

(64)

65

(65)

66

Objetivos da Aula

➢ Entender arquitetura de redes voltadas a VoIP ➢ Conhecer os protocolos VoIP

➢ Conhecer e analisar a aplicação de Codec's ➢ Entender os tipos de registros SIP/IAX

(66)

67

Análise de rede

➢ Até o começo da década de 1990 haviam dois tipos bem distintos de rede pública :

➢ Rede de telefonia (PSTN)

➢ Rede de computadores (Internet)

(67)

68

(68)

69

Definindo um protocolo

SIP

Pontos fortes: padrão da IETF, larga adoção do mercado

Pontos fracos: problemas no uso do NAT, uso da banda com

RTP é alto

IAX2

Pontos fortes: eficiência em banda passante, segurança e facilidade com NAT

(69)

70

Definindo um protocolo

H323

Pontos fortes: larga adoção do mercado, padronização pela

ITU

Pontos fracos: complexo, pouco adotado em telefonia IP em

(70)

71

Definindo um protocolo

Quadro comparativo

Protocolo Mantenedor Utilização

IAX2 Digium - Troncos entre servidores Asterisk- Terminais atrás de NAT - Conexão com provedores de serviço

SIP IETF - Telefones IP- Conexão com provedores de serviço

H323 ITU-T - Telefones H323- Gateways H323

(71)

72

Definindo um CODEC

➢ São utilizados para codificar / decodificar um sinal analógico em digital

➢ São originados a partir do PCM (Pulse Code Modulation) ➢ Diferentes equipamentos utilizam diferentes CODEC's

➢ Ao estabelecer uma sessão estes equipamentos negociam um CODEC entre si

TRANSCODIFICAÇÃO

➢ Conversão dos pacotes de voz de um CODEC para outro.

(72)

73

CODEC's

G.711 G.729 G.723 GSM iLBC Largura de Banda (Kbps) 64 8 5,3 ou 6,3 13 13,3 ou 15 Complexidade (Mips) 0,35 13 19 5 18 Resistência a perda de pacotes ——- 3% 3% 3% 5% ou 7% MOS 4,41 4,14 3,79 3.7 4,07 QUADRO COMPARATIVO

(73)

74

Overhead, payload e banda

OVERHEAD

➢ É a soma dos cabeçalhos dos pacotes PAYLOAD

➢ Quantidade de media inserida em um determinado pacote

CÁLCULO DE BANDA

(74)

75

Cálculo de banda

Codec Link Cálculo Resultado

G.711

Ethernet Ethernet + IP + UDP + RTP + g.711 95.2 Kbps (x1.48) PPP PPP + IP + UDP + RTP + g.711 82.4 Kbps (x1.28) Frame Relay FR + IP + UDP + RTP + g.711 82.8 Kbps (x1.29)

G.729

Ethernet Ethernet + IP + UDP + RTP + g.729 39.2 Kbps (x4.9) PPP PPP + IP + UDP + RTP + g.729 26.4 Kbps (x3.3) Frame Relay FR + IP + UDP + RTP + g.729 26.8 Kbps (x3.35)

(75)

76

(76)

77

Laboratório

Objetivos:

(77)

78

(78)

79

Objetivos da Aula

➢ Conhecer os métodos de autenticação ➢ Visualizar alguns cenários de uso

➢ Utilizar o IAX2 em modo trunked

➢ Determinar a banda passante utilizada pelo IAX ➢ Configurar o iax.conf

(79)

80

IAX2 - Conceitos

➢ É um protocolo desenvolvido pela Digium com o objetivo de estabelecer comunicação entre servidores Asterisk

➢ Definido na RFC 5456

➢ Transporta sinalização e media e uma única porta : 4569 ➢ IAX2 é a segunda versão do protocolo IAX

➢ Provê transparência ao NAT ➢ Suporta o modo trunked

(80)

81

IAX2 – Métodos de Autenticação

plaintext – Texto puro, esse método é o padrão e oferece pouca segurança pelo fato da senha passar em texto puro na rede e que pode ser facilmente identificado

md5 – Hash MD5 oferece uma segurança extra, ele opera de forma semelhante ao SIP, fazendo um processo conhecido como Three-Way-handshake

rsa – Par de chaves de criptografia RSA. É método mais seguro pois utiliza as chaves para autenticação. Necessita de configuração em ambos servidores

(81)

82

O arquivo /etc/asterisk/iax.conf

[general] bindport=4569 bindaddr=0.0.0.0 disallow=all allow=ulaw,alaw,g729 ;---;Primeira filial ;---[filial-01] type=user context=from-filiais secret=filial-01 callerid=”Filial-01” <1000> trunk=yes [general] bindport=4569 bindaddr=0.0.0.0 disallow=all allow=ulaw,alaw,g729 ;---;Primeira filial ;---[filial-01] type=user context=from-filiais secret=filial-01 callerid=”Filial-01” <1000> trunk=yes

(82)

83

IAX2 – Cenários de uso

CLIENTE IAX

➢ Asterisk suportando conexões de telefones via protocolo IAX.

➢ Exemplo de configuração no iax.conf: [8035] type=friend context=default auth=md5 secret=senha notransfer=0 callerid=<8035> host=dynamic allow=gsm [8035] type=friend context=default auth=md5 secret=senha notransfer=0 callerid=<8035> host=dynamic allow=gsm

(83)

84

IAX2 – Cenários de uso

PROVEDOR IAX

(84)

85

IAX2 – Cenários de uso

ENTRONCAMENTO IAX

➢ Servidores Asterisk se conectando através do protocolo IAX.

(85)

86

IAX2 – Comandos da CLI>

Comando Finalidade

iax2 show netstats Exibe estatísticas sobre os pacotes IAX

iax2 show peers Exibe uma lista de todos os “peers” IAX2 configurados no sistema (troncos e ramais)

iax2 show channels Exibe uma lista de todos os “canais” IAX2 no servidor

iax2 show registry Exibe todos os registros feitos pelo servidor

(86)

87

Laboratório

Objetivos:

➢ Entrocar pelo menos uma filial usando IAX ➢ Discar para o ramal da filial

(87)

88

Interface Gráfica SNEP

TRONCOS

➢ Os Troncos definem as rotas de Entrada e Saída das ligações que passam pelo SNEP.

➢ Podem ser considerados Troncos: ➢ Link E1 Digital

➢ Linha Analógica

➢ CHIP de Operadora GSM

➢ Conta em um Provedor VOIP

(88)

89

Laboratório

Objetivos:

(89)

90

(90)

91

Objetivos da Aula

➢ Entender a teoria de operação do SIP ➢ Entender as características do protocolo ➢ Entender o fluxo das mensagens SIP

➢ Conhecer os tipos de NAT (problemas e soluções) ➢ Configurar um tronco com uma operadora VoIP ➢ Entender o processo de registro do SIP

(91)

92

Protocolo SIP

PONTOS FORTES

➢ Protocolo maduro e padronizado

➢ É o protocolo padrão do mercado

➢ SIP Proxies tem grande escalabilidade

➢ Sinalização e mídia são tratados separadamente

PONTOS FRACOS

➢ Dificuldades com travessia de NAT

➢ Dificuldades com bilhetagem

➢ Uso de banda

(92)

93

(93)

94

(94)

95

(95)

96

SIP com B2BUA

(96)

97

SIP com B2BUA

(97)

98

SIP e NAT

NAT FULL CONE

➢ O mapeamento é bem estabelecido e qualquer um da Internet pública que queira alcançar um cliente atrás do NAT, precisa apenas saber o esquema de mapeamento de forma a mandar pacotes para ele.

(98)

99

SIP e NAT

NAT PORT RESTRICTED

➢ É quase idêntico ao “Restricted Cone”, mas neste caso o NAT irá bloquear todos os pacotes a menos que o cliente tenha

previamente enviado um pacote para o IP e porta que está enviando para o NAT.

(99)

100

SIP e NAT

NAT CONE RESTRICTED

➢ O par IP/Porta externo só é aberto uma vez que o computador interno envie dados para o endereço de destino IP específico.

(100)

101

SIP e NAT

NAT SIMÉTRICO

➢ Um mapeamento específico do IP:Porta para um NAT público IP:Porta é dependente do endereço de destino para o qual o pacote é enviado.

(101)

102

SIP e NAT - Soluções

ASTERISK ATRÁS DE NAT

/etc/asterisk/sip.conf [general] externip = 200.84.7.1 localnet = 192.168.1.0/255.255.255.0 [general] externip = 200.84.7.1 localnet = 192.168.1.0/255.255.255.0

CLIENTE ATRÁS DE NAT

/etc/asterisk/sip.conf [2000] nat = yes directmedia = no qualify = yes [2000] nat = yes directmedia = no qualify = yes

(102)

103

SIP e dtmf

info: Os dígitos serão enviados dentro do pacote SIP ➢ rfc2833: Os dígitos são enviados dentro do cabeçalho

do pacote RTP

inband: Os dígitos são enviados dentro do payload de voz

auto: O Asterisk tenta enviar os dígitos via rfc2833, em caso de falha envia inband

(103)

104

/etc/asterisk/sip.conf

[general] register => asteriskNN:senhaNN@EnderecoIPdoProvedorVoIP [operadora_voip] type=peer fromuser=usuario fromdomain=IPdoServidor defaultuser=asteriskNN secret=senhaNN context=default host=IPdoServidor dtmfmode=rfc2833 directmedia=no insecure=port,invite qualify=yes [general] register => asteriskNN:senhaNN@EnderecoIPdoProvedorVoIP [operadora_voip] type=peer fromuser=usuario fromdomain=IPdoServidor defaultuser=asteriskNN secret=senhaNN context=default host=IPdoServidor dtmfmode=rfc2833 directmedia=no insecure=port,invite qualify=yes

(104)

105

SIP - Comandos da CLI>

Comando Finalidade

sip show peers Exibe todas as contas do tipo peer incluindo friends sip show registry Exibe o estado de registro do servidor

sip set debug Habilita o debug SIP

sip reload Recarrega o módulo SIP do Asterisk sip show settings Exibe as configurações

(105)

106

Laboratório

Objetivos:

➢ Entrocar com um provedor VoIP ➢ Fazer chamadas externas

(106)

107

(107)

108

Objetivos da Aula

➢ Reconhecer e aprender a trabalhar com o arquivo extensions.conf

➢ Configurar um plano de discagem simples

➢ Compreender os padrões (máscaras) utilizadas em um plano de discagem

➢ Descrever variáveis, funções e aplicações ➢ Compreender Macros

(108)

109

/etc/asterisk/extensions.conf

SEÇÃO: [general] ➢ static ➢ writeprotect ➢ extenpatternmatchnew ➢ autofallthrough ➢ clearglobalvars Exemplo: [general] static=yes writeprotect=no [general] static=yes writeprotect=no

(109)

110

/etc/asterisk/extensions.conf

SEÇÃO: [globals]

➢ Onde são declaradas as variáveis globais, que também podem ser declaradas através da função GLOBAL.

➢ Variáveis globais podem ser acessadas a partir de qualquer ponto do plano de discagem

Exemplo: [globals] ENTRADA=DAHDI/g1 TELEFONISTA=SIP/4000 [globals] ENTRADA=DAHDI/g1 TELEFONISTA=SIP/4000

(110)

111

/etc/asterisk/extensions.conf

EXTENSÕES

➢ São responsáveis por disparar um evento no Asterisk, determinando o fluxo das chamadas. No arquivo de

configuração possuem basicamente o formato:

➢ Podem ser:

➢ Numéricas: exten => 0800 ...

➢ Expressões regulares exten => _0[38]XX. …

➢ Conter símbolos exten => 12#89*

exten=> numero(nome), prioridade, aplicacao.

(111)

112

/etc/asterisk/extensions.conf

EXTENSÕES ESPECIAIS

i (invalid): Quando um cliente pressiona uma tecla inválida dentro

do comando background() ou waitExten() é direcionado para esta extensão

s (start): Usado quando o Asterisk não recebe o número de B

h (hangup): Executada quando a chamada é encerrada

t (timeout): Executada quando ocorre o timeout nas aplicações

background() ou waitExten()

T (absolute timeout): Executada quando ocorre o timeout de uma chamada

(112)

113

/etc/asterisk/extensions.conf

VARIÁVEIS DE CANAL

➢ Estão associadas a um canal e só podem ser acessadas a partir do mesmo

➢ Para visualizar as variáveis associadas a um canal podemos utilizar a aplicação DumpChan()

➢ Algumas aplicações preenchem variáveis de canais quando o seu processamento é encerrado, dentre elas podemos citar: queue()e dial()

(113)

114

/etc/asterisk/extensions.conf

VARIÁVEIS DE AMBIENTE

➢ O Asterisk pode acessar variáveis de ambiente do sistema operacional

➢ Para acessar uma variável utilizamos a função ENV()

Exemplo:

exten=> _4XXX,1,set(ENV(LANG)=en_US)

(114)

115

/etc/asterisk/extensions.conf

EXPRESSÕES

➢ São declaradas da seguinte maneira:

$[var1 oper var2]

➢ Os operadores possíveis são:

➢ Matemáticos: +, ‐, *, / e % (modulo)

➢ Lógicos: & (and), | (or), ! (negação)

➢ Comparação: =, <, >, >=, <=, !=

➢ Operação condicional: $[expr1? expr2: expr3]

exten => 2000,n,GotoIf($[${VAR}=BUSY]?ocupado:desliga)

(115)

116

/etc/asterisk/extensions.conf

MANIPULAÇÃO DE STRINGS

➢ Retornar o comprimento de uma string:

${LEN(<string>)}

➢ Operar uma substring:

${<String>[:index][:length]} Exemplos: var1=1234567890; ${var1:5} => retorna: 67890 ${var1:4:2} => retorna: 56 ${var1: 4} => retorna: 7890 var1=1234567890; ${var1:5} => retorna: 67890 ${var1:4:2} => retorna: 56 ${var1: 4} => retorna: 7890

(116)

117

/etc/asterisk/extensions.conf

FUNÇÕES

➢ Permitem um processamento mais sofisticado de variáveis

➢ Podem ser visualizadas através do comando:

*CLI> core show functions

➢ Exemplos:

exten => 100,1,NoOp(${LEN(Fruta)})

exten => s,1,Set(foo=${IFTIME(*|mon|8-15|nov?Bom:Ruim)})

exten => 100,1,NoOp(${LEN(Fruta)})

(117)

118

/etc/asterisk/extensions.conf

APLICAÇÕES BÁSICAS

➢ set(): Atribui um valor a uma variável

➢ NoOp(): Imprime o valor do argumento na CLI do Asterisk

➢ hangup(): Encerra a chamada

➢ gotoIf(): goto condicional

➢ disa(): Gera um segundo tom de discagem para o usuário

(118)

119

/etc/asterisk/extensions.conf

INCLUSÃO DE CONTEXTOS

➢ São responsáveis pela organização e segurança do dialplan

➢ Permitem separar partes diferentes do plano de discagem

➢ Estão ligados diretamente aos canais

[2000] context = ramais ... [2001] context = fixo ... [2002] context = celular ... [ramais] exten => 20XX,1,Dial(${EXTEN},60,tT) [fixo] exten => _[2-5]XXXXXXX,1,Dial(SIP/VONO),60,T) include => ramais [celular] exten => _[6-9]XXXXXXX,1,Dial(SIP/VONO),60,T) include => fixo sip.conf extensions.conf

(119)

120

/etc/asterisk/extensions.conf

ROTEAMENTO BASEADO EM HORÁRIO ; horario comercial

[ENTRADA]

include =>aberto|08:00-18:00|mon-fri|*|* ; depois do horario comercial

include=>fechado|18:01-23:59|*|*|* include=>fechado|00:00-07:59|*|*|* include=>fechado|*|sat-sun|*|* [aberto] exten=s,1,goto(ura,s,1) [fechado] exten=s,1,Playback(afterhoursmessage) exten=s,n,Dial(SIP/${SECURITY}) exten=s,n,Voicemail(u${OPERATOR}) ; horario comercial [ENTRADA] include =>aberto|08:00-18:00|mon-fri|*|* ; depois do horario comercial

include=>fechado|18:01-23:59|*|*|* include=>fechado|00:00-07:59|*|*|* include=>fechado|*|sat-sun|*|* [aberto] exten=s,1,goto(ura,s,1) [fechado] exten=s,1,Playback(afterhoursmessage) exten=s,n,Dial(SIP/${SECURITY}) exten=s,n,Voicemail(u${OPERATOR})

(120)

121

Laboratório

Objetivos:

➢ Testar aplicações e funções

➢ Fazer chamadas para números externos

(121)

122

/etc/asterisk/extensions.conf

MACROS

➢ Macros são declaradas dentro do plano de discagem, como um contexto.

➢ A declaração da macro deve ser feita da seguinte maneira:

[macro-NomeDaMacro]

➢ Para disparar uma macro utilizamos a aplicação macro()

➢ Podemos passar argumentos para a macro:

exten=>_4XXX,1,macro(teste,1234,teste)

(122)

123

/etc/asterisk/extensions.conf

MACROS - VARIÁVEIS

➢ Podemos acessar as seguintes variáveis dentro de uma macro:

➢ MACRO_CONTEXT ➢ MACRO_EXTEN

➢ MACRO_OFFSET ➢ MACRO_PRIORITY

(123)

124

/etc/asterisk/extensions.conf

MACROS - EXEMPLO [interno] ... [ramais] exten=> _4XXX,1,macro(disca,SIP/${EXTEN},20,tT) ... [macro-disca] exten=> s,1,dial(${ARG1},${ARG2},${ARG3}) exten=> s,n,goto(${DIALSTATUS}) exten=> s,n,hangup() exten=> s,n(BUSY),voicemail(${MACRO_EXTEN},b) [interno] ... [ramais] exten=> _4XXX,1,macro(disca,SIP/${EXTEN},20,tT) ... [macro-disca] exten=> s,1,dial(${ARG1},${ARG2},${ARG3}) exten=> s,n,goto(${DIALSTATUS}) exten=> s,n,hangup() exten=> s,n(BUSY),voicemail(${MACRO_EXTEN},b)

(124)

125

AstDB

➢ Base de dados padrão Berkley DB

➢ Pode ser usado para armazenar dados temporários do Asterisk

➢ Os dados são agrupados em famílias e identificados com uma chave

Família

Chave = Valor Chave = Valor

(125)

126

AstDB

FUNÇÕES

DB Escreve e lê dados em uma determinada família/chave DB_DELETE Apaga dados de uma determinada chave DB_EXISTS Verifica se existe um valor dentro de uma família/chave

APLICAÇÕES DBdeltree Remove uma família ou uma árvore inteira de chaves

COMANDOS DA *CLI>

database del Apaga dados de uma determinada chave database deltree Remove uma família ou uma árvore inteira de chaves database put Adiciona ou atualiza uma entrada em uma

família/chave

database show Exibe todas as informações do AstDB e seus valores database showkey Exibe o valor de uma família/chave

(126)

127

Laboratório

Objetivos:

➢ Criar uma macro para

(127)

128

(128)

129

Objetivos da Aula

➢ Implementar uma URA para recepção de chamadas; ➢ Implementar o voicemail

➢ Implementar siga‐me

➢ Implementar não perturbe

➢ Implementar estacionamento

➢ Implementar captura de chamadas

(129)

130

URA

APLICAÇÕES

answer()

➢ Atende o canal e sincroniza o audio entre servidor e cliente

Background(arquivo, opções)

➢ Toca um áudio e aguarda por um entrada DTMF

waitExten(<sec>)

➢ Aguarda <sec> segundos por uma entrada do usuário

Goto (contexto, extensão, prioridade)

➢ Desvia a chamada para um deterinado ponto no plano de discagem

(130)

131

URA

EXEMPLO [entrada] exten => s,1,goto(menu,s,1) [menu] exten=> s,1,background(menu) exten=> s,n,waitExten(3) exten=> 1,1,goto(vendas,s,1) exten=> 2,1,goto(suporte,s,1) exten=> 3,1,goto(treinamento,s,1) exten=> i,1,playback(invalid) exten=> I,n,goto(s,1) exten=> t,1,dial(${TELEFONISTA},20) [vendas] exten=> s,1,dial(${VENDAS}) [suporte] exten=> s,1,dial(${SUPORTE}) [treinamento] exten=> s,1,dial(${TREINAMENTO})

(131)

132

Estacionamento

ONDE CONFIGURAR /etc/asterisk/features.conf /etc/asterisk/extensions.conf parkext=>700 parkpos = >701 -720 context=>parkedcalls parkingtime=>45 [ramais] include=>parkedcalls

(132)

133

Transferências

DIRETA

➢ Quando o usuário só transfere a ligação e não há interação. Por padrão o dígito # realiza esta transferência.

ONDE CONFIGURAR

/etc/asterisk/features.conf

ou

blindxfer => #

(133)

134

Transferências

ASSISTIDA ➢ Quando
há
interação
do
usuário
que
vai
receber
a
ligação. ONDE CONFIGURAR/etc/asterisk/features.conf atxxfer => *2

(134)

135

Transferências

PLANO DE DISCAGEM

➢ É necessário habilitar a transferência nos canais de comunicação, colocando as opções t e/ou T.

t - habilita a transferência para o lado destino da chamada.

T - habilita a transferência para o lado originador da chamada.

ONDE CONFIGURAR

/etc/asterisk/extensions.conf

(135)

136

Voicemail

➢ As configurações relativas ao voicemail são feitas no arquivo voicemail.conf

➢ As aplicações relacionadas ao voicemail são:

➢ voicemail(<mbox1>[@ctx1][&mbox2] [@<ctx2],opt)

(136)

137

/etc/asterisk/voicemail.conf

[general] format=wav49|gsm|wav attach=yes delete=no serveremail=asterisk

emailsubject=[Voip 4Linux]: Nova Mensagem ${VM_MSGNUM} na caixa postal ${VM_MAILBOX}

emailbody=Caro(a) ${VM_NAME}:\n\nvoce tem nova mensagem de voz.\nDuracao:${VM_DUR}.\nEnviado por: ${VM_CALLERID}, em $ {VM_DATE}.\n Para ouvir sua caixa postal disque para

9900.\n\nObrigado!\n\n\tDexter\n\twww.dexter.com.br\n\t\n\n emaildateformat=%A, %B %d, %Y at %r

[default]

9001 => 1234,Dexter Clem,root@localhost, delete=yes

(137)

138

/etc/asterisk/voicemail.conf

CAIXAS DE VOZ

➢ Podemos associar um canal com uma caixa de voz com o parâmetro mailbox nos arquivos de canal

➢ A sintaxe para a definição das caixas de voz é a seguinte:

(138)

139

Conferência

➢ Permite que 3 ou mais ramais conversem simultaneamente

➢ Utiliza a aplicação MeetMe

ONDE CONFIGURAR /etc/asterisk/meetme.conf /etc/asterisk/extensions.conf [general] audiobuffers =32 [rooms] conf => 5001 conf => 5002 ,123456 exten=>5001,1,MeetMe(5001)

(139)

140

Captura

➢ Permite capturar uma chamada de um colega no mesmo grupo de chamadas. ONDE CONFIGURAR /etc/asterisk/features.conf /etc/asterisk/sip.conf /etc/asterisk/extensions.conf pickupexten=>*8 callgroup = xx pickupgroup = xx exten => _33900X,1,Pickup(${EXTEN:2}@treinamento)

(140)

141

DND – Não perturbe

;---;ATIVAR o DND ;---exten => *41*,1,Set(DB(dnd/${CALLERID(num)})=${EXTEN:4}) exten => *41*,n,playback(dndEnabled) exten => *41*,n,Hangup() ;---;CANCELAR o DND ;---exten => *42*,1,DBdel(dnd/${CALLERID(num)}) exten => *42*,n,playback(dndDisabled) exten => *42*,n,Hangup()

(141)

142

Siga-me imediato

;---;ATIVAR o SIGA-ME ;---exten => _*21*XXXX,1,Set(DB(CFIM/${CALLERID(num)})=$ {EXTEN:4}) exten =>_*21*XXXX,n,playback(callForwardEnabled) exten => _*21*XXXX,n,saydigits(${EXTEN:4}) exten => _*21*XXXX,n,Hangup() ;---;CANCELAR o SIGA-ME ;---exten => *22*,1,DBdel(CFIM/${CALLERID(num)}) exten => *22*,n,playback(callForwardDisabled) exten => *22*,n,Hangup()

(142)

143

Siga-me se Ocupado

;---;ATIVAR o SIGA-ME ;---exten => _*31*XXXX,1,Set(DB(CFBS/${CALLERID(num)})=$ {EXTEN:4}) exten => _*31*XXXX,n,playback(callForwardBusyEnabled) exten => _*31*XXXX,n,saydigits(${EXTEN:4}) exten => _*31*XXXX,n,Hangup() ;---;CANCELAR o SIGA-ME ;---exten => *32*,1,DBdel(CFBS/${CALLERID(num)}) exten => *32*,n,playback(callForwardBusyDisabled) exten => *32*,n,Hangup()

(143)

144

Siga-me / DND - Implementando

[macro-stdexten] exten=> s,1,gotoIf(${DB_EXISTS(dnd/${ARG1})}?dnd) exten=> s,n,gotoIf(${DB_EXISTS(CFIM/${ARG1})}?cfim) exten=> s,n(dial),dial(SIP/${ARG1},20) exten=> s,n,goto(${DIALSTATUS}) exten=> s,n,hangup() exten=> s,n(BUSY),gotoIf(${DB_EXISTS(CFBS/$ {ARG1})}?cfbs:end) exten=> s,n(cfbs),dial(SIP/${DB(CFBS/${ARG1})},20) exten=> s,n,hangup() exten=> s,n(cfim),dial(SIP/${DB(CFIM/${ARG1})},20) exten=> s,n,hangup() exten=> s,n(dnd),playback(doNotDisturb) exten=> s,n(end),hangup()

(144)

145

(145)

146

Objetivos da Aula

➢ Entender os conceitos do DAC

➢ Conhecer as estratégias de distribuição ➢ Diferenciar agentes de ramais

(146)

147

Princípio de funcionamento

➢ As chamadas de entrada são colocadas na fila

➢ Uma estratégia de distribuição de chamadas é acionada ➢ Membros da fila atendem

➢ O usuário ouve uma música enquanto espera ➢ São feitos anúncios para usuários e atendentes

(147)

148

DAC - Filas

➢ São definidas no arquivo queues.conf

➢ Os agentes fazem login na fila para poder receber as chamadas destinadas a mesma

➢ A estratégia de distribuição é definida no parâmetro strategy

➢ São úteis para:

➢ Call Centers receptivos

➢ Serviço de Atendimento ao Consumidor

➢ Estatísticas de atendimento: TMA, TME, TMC

(148)

149

DAC - Estratégias de distribuição

Ringall - todos os telefones tocam ao mesmo tempo

Leastrecent – enviada para o agente que recebeu a chamada mais antiga

Fewestcalls – para o agente que recebeu menos chamadas

Random – de forma aleatória

Rrmemory – de forma igual para todos

Rrordered – idem ao rrmemory, respeitando no arquivo de

configuração

Linear – na ordem em está no arquivo de configuração, exceto

quando os membros são dinâmicos – ordem e login

(149)

150

DAC - Configurando

GRAVAÇÃO DE CHAMADAS

➢Para realizar a gravação das chamadas é necessário configurar os parâmetros monitor-format, monitor-type

AGENTES

➢ Os agentes são definidos no arquivo agents.conf

➢ A sintaxe é agent => id,pass[,name]

➢Agentes são um canal de proxy

PENALTY

➢ Da prioridade de atendimento a um certo grupo de membros.

➢ No queue.conf : member=TEC[,penalty][,nome];

(150)

151

Aplicação queue()

➢Coloca a chamada dentro de uma fila ➢Tem a seguinte sintaxe:

queue(qname[|opt[|url]][|override][|timeout][|AGI])

O parâmetro opt é uma string que recebe uma série de opções

Se URL for definida, ela será enviada ao agente que receberá a chamada;override sobreescreve o anúncio default da fila

timeout é o timeout da fila;

AGI define um script AGI para ser executado quando a ligação for atendida

por um agente

➢Quando a aplicação termina é atribuída à $QUEUE um dos seguintes valores: TIMEOUT, FULL, JOINEMPTY, LEAVEEMPTY, JOINUNAVAIL e LEAVEUNAVAIL.

(151)

152

Agentes e Filas

LOGIN DO AGENTE

➢ Aplicação: agentLogin() ➢ Tem a seguinte sintaxe:

agentLogin([agentId][|opt])

ADICIONAR MEMBROS NA FILA

➢ Adiciona uma interface (SIP, IAX2, DAHDI, etc) a uma fila; ➢ Tem a seguinte sintaxe:

addQueueMember([qName]|[interface][|penalty]

REMOVER MEMBRO DA FILA

➢ Remove uma interface (SIP, IAX2, DAHDI, etc) de uma fila ➢ Tem a seguinte sintaxe

(152)

153

(153)

154

Objetivos da Aula

➢ Conhecer as melhores práticas na configuração de um PABX-IP

➢ Ajustar permissões de arquivos e diretórios ➢ Implementando o Fail2ban

(154)

155

Processo do Asterisk

➢ Padrão

➢ Usuário : root

➢ Grupo de Usuário: root ➢ Melhor prática

➢ Usuário : asterisk

(155)

156

Permissões

Diretórios (755)

➢ Dono: Ler, escrever e executar (7)

➢ Grupo: Ler e executar (5)

➢ Outros: Ler e executar (5)

Arquivos (644)

➢ Dono: Ler, escrever (6)

➢ Grupo: Ler (4)

(156)

157

Rejeitar autenticação

Padrão

➢ O asterisk aceita chamadas vindas de qualquer peer

Melhor prática /etc/asterisk/sip.conf [general] Allowguest=no Autocreatepeer=no alwaysauthreject = yes call-limit=1 deny =0.0.0.0/0.0.0.0 permit =192.168.0.0/255.255.255.0 alwaysauthreject=yes realm=sip.4linux.com.br domain=sip.4linux.com.br

(157)

158

Fail2Ban

➢ Monitora os logs de diversos serviços

➢ Cria regras de controle sobre serviços

➢ Diversas tentativas de acesso em um determinado serviço são bloqueadas de acordo com as regras criadas

Mantém uma black-list dos IP's que tentaram acessar serviços e não tiveram sucesso

Utiliza o iptables do linux como ferramenta para criar os bloqueios

(158)

159

Recomendações

Criptografia ● SIP : siptls ● RTP: srtp ● Testes de invasão ● http://blog.sipvicious.org

(159)

160

CONTATOS

Felipe Pasa

pasa.felipe@gmail.com

Skype: pasa.felipe

Flavio H Somensi

fsomensi@gmail.com

Skype: flaviosomensi

(160)

Referências

Documentos relacionados

Como dizia o Cronista Ivan Lessa: 'A cada 15 anos, o Brasil esquece os últimos 15'. Gostamos do paradoxo de cultivar uma espécie de memória do esquecimento. Agora, por exemplo,

CENTRO DE REFERÊNCIA, ESTUDOS E AÇÕES SOBRE CRIANÇAS E ADOLESCENTES (CECRIA).. (Relatório de

01 A poesia do Trovadorismo português tem íntima relação com a música, pois era composta para ser entoada ou cantada, sempre acompanhada de instrumental, como o alaúde, a viola,

• Ao mudar a fonte de entrada para HDMI ou VGA (utilizando PC Tudo Em Um como monitor LCD), o ecrã táctil, a câmara Web e as portas USB traseiras serão controlados pelo

Caso a Partição de Recuperação esteja danificada, utilize o dispositivo de armazenamento USB para restaurar o sistema para a partição predefinida ou os dados de ambiente

Pressionar a ponta do lápis levemente na tela, ativa completamente a funcionalidade de caneta para a escrita, a seleção de opções, e assim por diante. Portanto, tal como

O trabalho teve como meta, a caracterização geológica e geomorfológica da escarpa de linha de falha erosiva do sitio arqueológico Cemitério Caixa d’Água, localizado no

Nossa linha é completa e vai de produtos mais básicos até os nobres, com maior valor agregado, que, comprovada- mente, dão excelência à nutrição animal. Neste material, conheça