Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione...

29
1 Progettazione di un centralino software su IP basato su Asterisk Relatore: Alessio Rugo

Transcript of Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione...

Page 1: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

1

Progettazione di un centralino software su IP basato su Asterisk

Relatore: Alessio Rugo

Page 2: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

2

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP

Dimensionamento Sistema

Asterisk PBX Amministrazione in remoto

Client

FOIP

OverviewOverview

Page 3: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

3

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP (1/2)“Tecnologia che rende possibile effettuare una conversazione telefonica su una rete a commutazione di pacchetto che sfrutta il protocollo IP”

Pacchetti di dati vocali codificati digitalmente (codec)

Semplicità e compatibilità con la rete Internet/LAN

Eliminazione distinzione chiamate locali/lunga distanza

Vantaggi:➔ Costo della chiamata minore, specie per chiamate a lunga distanza (internazionali)

➔ Maggiore flessibilità nell'architettura di rete e nella gestione (software!)

➔ Rete già esistente e consolidata

➔ Maggiore sicurezza (segretezza), in prospettiva

➔ Disponibilità di funzionalità avanzate

Page 4: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

4

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP (2/2)Caratteristiche di internet poco adeguate alle applicazioni audio/video interattive

Ritardo e2e Perdita pacchetti Jitter di rete

QoS?

(1) IntServ - Prenotazione delle risorse

(2) DiffServ – Marcatura di priorità

(3) Laissez-faire!

Page 5: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

5

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

I protocolli del VOIP – SIP (1/2)A livello “application” (session) ci sono diversi protocolli per il VOIP

SIP caratteristiche:

Session Initiation Protocol (1996) – segue il paradigma KISS

* protocollo di “segnalazione”: call setup e gestione della chiamata* indipendente dal protocollo di trasporto, ma usa UDP

Porta default: 5060

* protocollo orientato alla mobilità (proxy, user agent, ...)

Il suo successo è dovuto alla semplicità di implementazione e gestione della chiamata, oltre alla flessibilità delle impostazioni real-time. Possibile anche utilizzare i potenti strumenti messi a disposizione per effettuare

dell'Ingegneria del traffico, sfruttando anche i messaggi di segnalazione diagnostica.

* Molte funzioni di gestione chiamate

sip:[email protected]

Page 6: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

6

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

I protocolli del VOIP – SIP (2/2)Vediamo le fasi di un possibile “call setup”, ad alto livello

Porta default: 5060

SIP signaling (invite) - Wikipedia

* User location: determinazione degli end system usati nella comunicazione

* User availability: identificazione della disponibilitàdelle parti ad impegnarsi in una comunicazione

* User capabilities: identificazione di media eparametri utilizzati

* Session setup: avviso, instaurazione dei parametri di una sessione su chiamate

* Session management: trasferimento e terminazione di una sessione, modifica dei parametri della sessione, e invocazione dei servizi

Page 7: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

7

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

I protocolli del VOIP – RTP/RTCPtransport/application layer protocol – aggiunge un header al pacchettoapplicativo, per predisporlo ad applicazioni (quasi) real-time come quelle multimediali

RTPcaratteristiche:Real-Time (transport) Protocol

identificazione del tipo di paylod (spesso di codifica)

aggiunge il numero di sequenza

aggiunge il timestamp

Il pacchetto applicativo viene fornito di header addizionale (RTP) ed a sua volta viene incapsulato dentro il pacchetto UDP, a strato di trasporto. La natura del pacchetto applicativo e dell'header RTP è trasparente per tutti gli altri strati della pila ISO/OSI e verrà

usato SOLO a livello applicativo

identifica la sorgente mittente

RTCP aggiunge il supporto per il controllo, sempre a livello applicazioneNB: problemi di scalabilità

Page 8: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

8

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP

Dimensionamento Sistema

Asterisk PBX Amministrazione in remoto

Client

FOIP

OverviewOverview

Page 9: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

9

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Dimensionamento del serverL'analisi delle caratteristiche e necessità aziendali rappresenta la prima (e fondamentale) fase per l'implementazione del server Asterisk

● numero di utenti● “traffico offerto” A

o [Erlang] nell'ora di punta

● esigenze di qualità (codec) e funzioni (es: applicazioni, toni DMTF, ...)● tipo di dispositivi telefonici (endpoint) supportati● tipo di connettività aziendale

Esigenze (e quindi costi) piuttosto contenuti quindi per il server. Occorre però considerare:

- banda (upload/download) internet a disposizione. Caso LAN più semplice- robustezza del sistema (backup, RAID, ...)- uso della voicemail e del recording (hard-disk)

Page 10: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

10

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP

Dimensionamento Sistema

Asterisk PBX Amministrazione in remoto

Client

FOIP

OverviewOverview

Page 11: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

11

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Asterisk PBX (1/3)E' un PBX (Private Branch Exchanger) software per telefonia VOIP (open source!) creato e mantenuto per conto della Digium

✔ Completo e maturo (come PBX)✔ Molte funzioni extra✔ Molta documentazione disponibile✔ Open source e gratuito✔ Stabile ed affidabile

Disponibile per il download da sorgente dal sito ufficiale http://www.asterisk.org e spesso anche come pacchetto precompilato per le più diffuse distribuzioni

Distribuzioni con Asterisk integratoAsteriskNow / Asterisk@Home / TrixboxUbunterisk, CentPBX, ...

Page 12: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

12

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Asterisk PBX (2/3)Asterisk viene configurato come un normale servizio su un server

Una volta installato correttamente, è già funzionante e pronto per essere avviato

Passi di configurazione

1.Configurazione utenti SIP (così come per altri protocolli)2.Configurazione dialplan3.Configurazione applicazioni (voicemail, conference, ...)4.Configurazione firewall, shell remota, avvio, log, ...

1. sip.conf 2. extension.conf 3. voicemail.conf, ...

4. Ssh, iptables, ...

Page 13: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

13

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Asterisk PBX (3/3)Vediamo come configurare due dispositivi SIP e far sì che possano chiamarsi

sip.conf

extension.conf

Si definiscono tutti gli utenti come sezioni,e le opzioni per ciascuno. La sezione “general”racchiude le opzioni valide per ogni utente

(la configurazione del canale SIP)

Si definiscono le azioni ed I comportamenti del centralinoa seguito di un evento (ad esempio la digitazione di cifreoppure il timeout). Diviso in sezioni, permette di limitare

il tipo di chiamate per ogni utente SIP

Page 14: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

14

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Account SIPApprofondiamo la conoscenza del file sip.conf

sip.conf

È possibile eseguire la stessa configurazione usando unainterfaccia grafica con Asterisk GUI

Il file è diviso dal punto di vista logico in due parti: quella “generale”, per le opzioni condivise da tutti gli account, e quella dei singoli account utente

Page 15: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

15

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Dialplan (extension.conf) 1/2Approfondiamo la conoscenza del file extension.conf

extension.conf

Anche il dialplan è diviso in due parti: “general” o “globals”, per le opzioni condivise da tutti gli

account, ed altre definite dall'amministratore

Page 16: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

16

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Dialplan (extension.conf) 2/2Approfondiamo la conoscenza del file extension.conf

extension.conf

Impiegati

Chiamate interneChiamate PSTN

ItaliaTest e

registrazioniChiamate

internazionali

Ospiti Direzione

Employee Command

Page 17: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

17

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Applicazioni (1/4)Alcune principali funzioni, disponibili senza configurazioni di eccessiva difficoltà

IVR

Voicemail

MeetMe

Video

Logger

Call parking

Interactive voice response – esempio alla prossima pagina

Segreteria telefonica per ogni utente – esempio a pagina tre

Stanza per conferenze (custom) supervisionata

Supporto per codec video HQ e videosessione

Stanza per conferenze (custom) supervisionata

Log delle chiamate e degli eventi custom

Più telefonate su linee diverse, con attesa e TRASFERIMENTO

Page 18: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

18

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Applicazioni (2/4)Esempio di attivazione di un centralino IVR

IVR

“Interactive voice response” (IVR) – è possibile trovare IVR già realizzati sulla rete (anche integrati già in altre applicazioni, come ad esempioper “Voicemail”)

Page 19: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

19

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Applicazioni (3/4)Esempio di attivazione segreteria telefonica (o Voicemail)

Voicemail

L'applicazione permette di lasciare un messaggio (file wave), che viene allegato ad una email e spedito verso una casella specificata

extension.conf

voicemail.conf

password Indirizzo email dove inviare i messaggi

utente voicemail

gruppo

Page 20: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

20

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Applicazioni (4/4)Esempio di attivazione Conference Room

MeetMe

Una Conference Room è una applicazione che permette a più persone di parlare contemporaneamente ed ascoltare.

extension.conf

Applicazione ConferenceInterno per accedere alla conferenzaFlags * M: Moderator (presently same as speaker) * S: Speaker (listens too - do not specify both) * L: Listener * T: "Telephone caller" (just for stats?). * V: Do VAD on this caller * D: Use Denoise filter on this caller.

Semplice alternativa a MeetMe, che non richiede una sorgente per il timing

Nota: Non prevede controllo degli accessi, ma può essere implementato nel dialpaln

Page 21: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

21

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP

Dimensionamento Sistema

Asterisk PBX Amministrazione in remoto

Client

FOIP

OverviewOverview

Page 22: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

22

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Gestione remota del serverSaper configurare Asterisk utilizzando i suoi file di configurazione permette di gestire il server in remoto in modalità console

SSH port

Protocollo (SSH)Porta SSH

SSH (Secure SHell, shell sicura) è un protocollo che permette di stabilire una sessione remota cifrata ad interfaccia a linea di

comando con un altro host.

vim /etc/ssh/ssh_config

Indirizzo del serverssh -p 2345 [email protected]

Page 23: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

23

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP

Dimensionamento Sistema

Asterisk PBX Amministrazione in remoto

Client

FOIP

OverviewOverview

Page 24: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

24

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Client (1/3)

Il client permette di utilizzare le funzionalità del centralino, come un normale telefono collegato alla PSTN

Un “Client” è un qualunque software o dispositivo hardware per la telefonia VOIP che supporti il protocollo SIP

Nota: spesso anche i normali telefoni cellulari hanno il supporto per la connettività ed il SIP

Tipi di Client

Page 25: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

25

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Client (2/3) Vediamo alcuni softphone disponibili in rete

EkigaGià presente nelle più diffuse distribuzioni linux, è il softphone opensource più diffuso.Utilizza I protocolli SIP e H.323 e permette sia chiamate che videoconferenze. Ottimo supporto di codec e comprovata compatibilità con Asterisk (compresa la “presenza”)

GizmoRecente progetto opensource volto ad unire il VOIP su SIP all'instant messaging multiprotocollo. Fornisce Voicemail integrata ed una tariffazione interna per le chiamate. Chiamate gratuite verso I fissi (PSTN) iscritti al progetto Gizmo.

X - LiteSoftware proprietario freeware per il VOIP su protocollo SIP. Supporta la videoconferenza (se attivata), due linee contemporaneamente, gestisce più account e codec. Molto intuitivo e stabile, disponibile sia per Windows che per Linux.

Page 26: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

26

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Client (3/3) Configurazione per la registrazione dell'utente presso il server Asterisk

Utilizziamo Ekiga per fornire un esempio, valido con poche modifiche specifiche anche per altri softphone (e hardphone)

Counterpath X-lite Ekiga

Page 27: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

27

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

Introduzione al VOIP

Dimensionamento Sistema

Asterisk PBX Amministrazione in remoto

Client

FOIP

OverviewOverview

Page 28: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

28

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

FOIP (Fax Over IP)Mandare FAX sulla rete IP è un operazione non completamente affidabile

“FAXing over VoIP networks doesn't work. You can sometimes arrange things so a fairly high percentage of FAXes get through OK. You can occassionally create setups that work 100% of the time. These are rare and unrepeatable setups. You need to use a proper FAX over IP protocol, such as T.38, to achieve consistent reliable FAXing across IP networks”(Soft-Switch.org report)

1) Il fax non ama la “relatività” (delay variabili e ritardi)2) la rete è progettata per trasportare segnali vocali

3) Il fax non ama la “silence suppression”4) Il fax non è fault tolerant (nessuna perdita)

5) Algoritmi di codifica per segnali lenti (codec distorsion)

Mail2Fax?

Page 29: Progettazione di un centralino software su IP basato su ...€¦ · 3 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk Introduzione al VOIP (1/2) “Tecnologia

29

Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk

DomandeDomande&&

RisposteRisposte