37
Hélio Loureiro [helio AT loureiro DT eng DT br] [hloureiro AT dlinkbrasil DT com DT br] PABX IP utilizando Asterisk

PABX IP utilizando Asterisk

Embed Size (px)

DESCRIPTION

A apresentação que fiz pra ministrar um curso de Asterisk no "Maratona HOWTO" (acho que era um evento da 4Linux). Provavelmente em 2005.

Citation preview

Page 1: PABX IP utilizando Asterisk

Hélio Loureiro[helio AT loureiro DT eng DT br]

[hloureiro AT dlinkbrasil DT com DT br]

PABX IPutilizando Asterisk

Page 2: PABX IP utilizando Asterisk

Palestrante

Hélio Loureirohttp://helio.loureiro.eng.brhttp://www.loureiro.eng.br

[helio DT loureiro DT eng DT br]

 Debian desde 2.0 (Hamm) Moderador da lista linux­br

 Instrutor Conectiva Soluções baseadas em *NIX Atualmente em produtos IP (D­Link) Especialista em IN (Pré­Pago) Instalação e integração de redes GSM e xDSL

http://listas.cipsga.org.br/cgi-bin/mailman/listinfo/linux-br

Page 3: PABX IP utilizando Asterisk

Agenda

● Princípios de telecomunicações● Protocolos de comunicações● Protocolos de VoIP● Alternativas● SIP v.2● Asterisk● Configuração● Testes

Page 4: PABX IP utilizando Asterisk

Princípios de telecomunicações

Princípios de telecomunicações

Page 5: PABX IP utilizando Asterisk

● Voz digitalizada com pulsos (PCM – Pulse Coded Modulation)● Banda passante de voz de 4 KHz● Amostragem de 8 Khz (Nyquist – amostragem o dobro da freq.)● Sinal (voz) pode ser reproduzido no receptor● Codificação seguindo: Lei-A (USA) ou Lei-μ (BR)

Transmissão de voz

Page 6: PABX IP utilizando Asterisk

Modulação da voz

Page 7: PABX IP utilizando Asterisk

● Central telefônica – baseada em hardware● Controles e comandos proprietários e incompatíveis● Comutação por circuito● Sinalização por canal comum: SS7

Telefonia convencional

SS7 – Link E1 – 2 Mbps (BR) – 32 canais de 64 Kbps – 0: sincronismo – 16: sinalização

0 1 2 3 16...

Page 8: PABX IP utilizando Asterisk

Protocolos VoIP

Protocolos VoIP

Page 9: PABX IP utilizando Asterisk

● H.323: protocolo desenvolvido pela ITU-T para utilização de comutação por pacotes. Utiliza toda a complexidade do modelo OSI de 7 camadas.

● SIP: protocolo desenvolvido pela IETF com o modelo cliente-servidor.

● MGCP: protocolo que utiliza o princípio da sinalização SS7 diretamente sobre IP.

● MEGACO

Protocolos de VoIP

Page 10: PABX IP utilizando Asterisk

Pilha de protocolos

Page 11: PABX IP utilizando Asterisk

● SIP: 5060/UDP iptables -A INPUT -j ACCEPT -p udp -m udp --dport 5060

● IAX2: 4569/UDPiptables -A INPUT -j ACCEPT -p udp -m udp --dport 4569

● IAX: 5036/UDP

iptables -A INPUT -j ACCEPT -p udp -m udp --dport 5036 ● RTP: 10000-20000/UDP

iptables -A INPUT -j ACCEPT -p udp -m udp --dport 10000:20000

● MGCP: 2727/UDP

iptables -A INPUT -j ACCEPT -p udp -m udp --dport 2727

Regras no firewall

Page 12: PABX IP utilizando Asterisk

Session Initiation Protocol

Session Initiation Protocol

Page 13: PABX IP utilizando Asterisk

A especificação do SIP RFC 3261 divide as funções do SIP Server nas seguintes partes:

• SIP Registrar Server:SIP Registrar Server: verifica mensagens de registro (REGISTER).

• SIP Redirect Server:SIP Redirect Server: retorna respostas “contact this address”.

• SIP Proxy Server:SIP Proxy Server: envia requisições SIP e respostas.

• Back-2-Back User Agent (B2BUA):Back-2-Back User Agent (B2BUA): atua como UA server de um lado e como UA client de outro.

Protocolo SIP

Page 14: PABX IP utilizando Asterisk

Endereçamento padrão InternetEndereçamento padrão InternetSIP utiliza endereçamento IP padrão, com formato de

endereçamento por nome ou endereço, por exemplo:

sip: [email protected]: [email protected]

ouou sip: [email protected]: [email protected]

Session Initiation Protocol

Page 15: PABX IP utilizando Asterisk

• O RTP é o protocolo responsável por entregar o fluxo de dados em “tempo real”.

• Isto torna-se possível uma vez que o RTP tem a capacidade de reconstruir o fluxo de dados nas extremidades, mesmo que a informação chegue atrasada ou fora de ordem.

• O envio de mensagens ocorre sobre UDP.

Comunicação SIPRTP – Real Time Protocol

Page 16: PABX IP utilizando Asterisk

O SDP tem três objetivos principaisO SDP tem três objetivos principais

• Informar para a outra parte qual tipo de mídia deseja-se transmitir (audio, vídeo ou ambos);

• Informar qual CODEC deve ser utilizado;

• Informar em qual endereço e porta a mídia deve ser entregue.

Comunicação SIPSDP – Session Description Protocol

Page 17: PABX IP utilizando Asterisk

• SIP MethodsSIP Methods:: São as mensagens do protocolo.

• INVITEINVITE:: Convida um usuário para uma chamada e estabelece uma nova conexão.

• ACKACK:: Reconhecimento do recebimento de uma mensagem.

• BYEBYE:: Finaliza a conexão entre dois usuários.

• CANCELCANCEL:: Finaliza uma requisição ou procura por um usuário.

• REGISTERREGISTER:: Registra um usuário no SIP Server, fornecendo os dados de localização (IP, número) do mesmo.

• OPTIONSOPTIONS:: Solicita informações para o SIP Server.

Comunicação SIPMétodos SIP

Page 18: PABX IP utilizando Asterisk

• 1xx: Informational1xx: Informational – requisição recebida, continuando processo de requisição.

• 2xx: Success2xx: Success – a ação foi recebida com sucesso, entendida e aceita.

• 3xx: Redirection3xx: Redirection – ações complementares são necessárias a fim de completar a requisição.

• 4xx: Client Error4xx: Client Error – a requisição contém erro de síntaxe ou não pode ser completada neste servidor.

• 5xx: Server Error5xx: Server Error – o servidor falhou para completar uma requisição aparentemente válida.

• 6xx: Global Failure6xx: Global Failure – a requisição não pôde ser completada em nenhum servidor.

Comunicação SIPCódigos de resposta

[*] Baseados em HTTP.

Page 19: PABX IP utilizando Asterisk

Fluxo de mensagens

200 OK

ACK

INVITE sip:[email protected]

host.wcom.com sip.uunet.com

SIPUser Agent

Client

SIPUser Agent

Server

BYE

200 OK

Media Stream

Page 20: PABX IP utilizando Asterisk

Método INVITE

INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP host.wcom.com:5060From: Alan Johnston <sip:[email protected]>To: Jean Luc Picard <sip:[email protected]>Call-ID: [email protected]: 1 INVITEContact: sip:[email protected]: Where are you these days?Content-Type: application/sdp Content-Length: 124

v=0o=ajohnston 5462346 332134 IN IP4 host.wcom.coms=Let's Talkt=0 0c=IN IP4 10.64.1.1m=audio 49170 RTP/AVP 0 3

Page 21: PABX IP utilizando Asterisk

Codec Bit Rate NEBG.711 64 Kbps 87.2 KbpsG.729 8 Kbps 31.2 KbpsG.723.1 6.4 Kbps 21.9 KbpsG.726 32 Kbps 55.2 KbpsG.728 16 Kbps 31.5 KbpsIlbc 15 Kbps 27.7 KbpsGsm 13 Kbps

Codecs e taxas

NEB = Nominal Ethernet Bandwidth

Page 22: PABX IP utilizando Asterisk

Agentes SIP

Agentes SIP – Usuários e servidores

Page 23: PABX IP utilizando Asterisk

● OpenH.323 – desenvolvimento da API para uso de H.323● Vovida.org – softswitch para H.323 e SIP● GnuGk – gatekeeper para H.323 utilizando o OpenH.323● Asterisk – softswitch para SIP e H.323● OpenWengo

Projetos de softswitchesSIP servers

Page 24: PABX IP utilizando Asterisk

• Softphones:– Kphone

– linphone

– xten

• Hardphones:– VoIP Telephone Adapater (TA);DVG-2001S

– VoIP Router (Gateway);DVG-1402S

– VoIP Phone;DPH-140S

User Agent Client

Page 25: PABX IP utilizando Asterisk

Asterisk

Asterisk

Page 26: PABX IP utilizando Asterisk

Asterix ≠ Asterisk

Asterisk

● Desenvolvido e mantido pela empresa Digium.● Digium fornece hardware para conectar o Asterisk com a

rede de telefonia convencional.● Suporte principal sobre Linux, mas com funciona também

em BSDs, *nix flavors e Windows.● Sem GUI para configuração, somente arquivos TXT.● Alto consumo de CPU.

Page 27: PABX IP utilizando Asterisk

● Chamada em espera● Identificação de chamada● Discagem por nome● Máquina anunciadora (IVR)● Música em espera● Transferência de chamada● VoiceMail

AsteriskFuncionalidades

Page 28: PABX IP utilizando Asterisk

● FXO: Foreign eXchange Office – busca tom de discagem. ex: telefone.

● FXS: Foreign eXchange Station – gera tom de discagem, em geral para o FXO. ex: linha fixa.

● PSTN: Public Switched Telephone Network – rede de telefonia pública cabeada.

● Extensions: ramais.● DTMF: Dual Tone Multi Frequency – tom de

discagem multi-freqüencial.

Asterisk: termos

Page 29: PABX IP utilizando Asterisk

Instalação

root@zumbi:~/bin # apt-cache search asteriskasterisk-open-source Private Branch Exchange (PBX)asterisk-chan-capi - Common ISDN API 2.0 implementation for Asteriskasterisk-chan-misdn - mISDN support for Asteriskasterisk-config - config files for asteriskasterisk-dev - development files for asteriskasterisk-doc - documentation for asteriskasterisk-gtk-console - gtk based console for asteriskasterisk-h323 - asterisk H.323 VoIP channelasterisk-prompt-de - German prompts for the Asterisk PBXasterisk-prompt-fr - French voice prompts for Asteriskasterisk-sounds-main - sound files for asteriskasterisk-web-vmail - web based (GCI) voice mail

Page 30: PABX IP utilizando Asterisk

Instalação (cont.)

root@zumbi:~/bin # aptitude -y install asterisk \asterisk-config \asterisk-doc \asterisk-sounds-main

[...]

root@zumbi:~/bin # perl -p -i -e \ “s/RUNASTERISK=no/RUNASTERISK=yes/” \/etc/default/asterisk

Page 31: PABX IP utilizando Asterisk

sip.conf

[general]port = 5060bindaddr = 0.0.0.0disallow=allallow=ulawallow=alawallow=g723.1allow=gsmallow=all

[9373]type=friendhost=dynamicusername=9373secret=9373callerid=Helio Loureiro <9373>mailbox=9373@debianbrcontext=debianbr

Número do ramalConfiguraçõesdo daemon

CODECs

IP dinâmico

Domínios

Page 32: PABX IP utilizando Asterisk

extensions.conf

[debianbr]exten => 9373,1,Dial(SIP/9373,20)exten => 9373,2,VoiceMail(u9373@debianbr)exten => 9373,3,Hangupexten => 9373,102,VoiceMail(b9373@debianbr)exten => 9351,1,Dial(SIP/9351,20)exten => 9351,2,VoiceMail(u9351@debianbr)exten => 9351,3,Hangupexten => 9351,102,VoiceMail(b9351@debianbr)

Domínios

exten => <RAMAL>,<SEQ>,<AÇÃO>

Page 33: PABX IP utilizando Asterisk

Exemplos

Exemplos

Page 34: PABX IP utilizando Asterisk

Perguntas e Respostas

Perguntas e Respostas

Page 35: PABX IP utilizando Asterisk

Bibliografia

Bibliografia

Page 36: PABX IP utilizando Asterisk

Bibliografia

● Asterisk “http://www.asterisk.org”● VoIP – Voice over Internet Protocol – Introdução. Giovani Pacífico; D-Link; 2005.● PABX baseado em código aberto: Asterisk – Utilização, configuração e gerenciamento. Fabrício Tamusiunas; GTER-19; NIC.BR; 2005.● Multimedia 7 - Audio Compression; Dr. Iliya Georgiev.● Lesson 0 – Introduction to Telephony; John K. Scoggin; CISC452-01W; Telecommunication Systems; University of Delaware.●Lesson 6 – Digital Telephony; William Stallings; CISC450; Computer Networks; University of Delaware.

Page 37: PABX IP utilizando Asterisk

Agradecimentos

Obrigado

Hélio [email protected]

http://helio.loureiro.eng.br