Voice over IP / SIP - · PDF file1 K a rl s td Un iv e Datakommunikation II Johan Garcia...

Post on 27-Feb-2018

220 views 3 download

Transcript of Voice over IP / SIP - · PDF file1 K a rl s td Un iv e Datakommunikation II Johan Garcia...

1

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

1

Voice over IP / SIP

Johan Garcia

Baserat på mater ial från Henning Schulzr inne, Columbia University.

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

2

Motivation for VoIP

2

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

3

Internet Telephony as PBX replacement

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

4

Switching Costs

3

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

5

Internet Telephony Modes

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

6

SIPSIP = Session Initiation Protocol

• Registrering / Lokalisering av användaremhaemail-liknandeadress

• Startasession över Internet

• Förhandlaom sessionsparameter från den uppringande (caller) till de uppringda (callees). (Param. kan ändras under sessionen)

• Avslutasession

• Bygger påanvändandet av proxy servrar

• Tillhandahåller personmobilitet => annan terminal, sammaidentifierare. Jmf terminalmobilitet, servicemobilitet

4

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

7

SIP applikationer

• Etablera voice-over-IP samtal, videosamtal, osv

• Sättaupp multimediakonferanser

• Textmeddelanden (chatt,IM)

• Event notification (subscribe/notify);

• Tillgänglighet, närvaro (presence)

• Nya tjänster

• Samverkan med PSTN (telenätet)

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

8

SIP adresser

Exempel:

• Adress-of-record (identifierar en anv) :– sip:johan.garcia@kau.se

• Direkta adresser FQDN (identifierar en terminal)– sip:johan@jglap.cs.kau.se

Utöver sip finns ocksåsips- adresser: TLS över TCP

(jmf http och https)

5

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

9

SIP meddelanden

• Påminner om HTTP 1.1

• Requests och responses är I stort lika,första raden skiljer

• Kan innehålla en body, som vanligtvis är en sessionsbeskrivning

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

10

SIP meddelande

6

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

11

Metoder

MESSAGE transport of an instant message body

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

12

Media negotiation

7

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

13

ResultatkoderInformational

Server Failure

Request FailureRedirectionSuccess

Global Failure

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

14

SIP proxy mode

8

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

15

SIP redirect mode

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

16

För att hittaanvändare

9

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

17

DNS SRV

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

18

SIP request forking

10

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

19

SIP sequential request forking

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

20

11

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

21

Comparison with H.323• H.323 is another signaling

protocol for real-time, interactive

• H.323 is a complete, vertically integrated suite of protocols for multimedia conferencing: signaling, registration, admission control, transport and codecs.

• SIP is a single component. Works with RTP, but does not mandate it. Can be combined with other protocols and services.

• H.323 comes from the ITU (telephony).

• SIP comes from IETF: Borrows much of its concepts from HTTP. SIP has a Web flavor, whereas H.323 has a telephony flavor.

• SIP uses the KISS principle: Keep it simple stupid.

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

22

Service CreationMany possible approaches to create services:

• Functionality in calling UA

• Functionality in called UA

• Functionality in server:– CPL Call processing Language

– SIP CGI

– SIP Servlets

– JAIN & Parlay

– Server specific programming

12

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

23

CPL exempel<?xml ver si on=“ 1. 0” ?>

<! DOCTYPE cpl PUBLI C “ - / / I ETF/ / DTD RFCxxxx CPL 1. 0/ / EN” “ cpl . dt d” >

<cpl >

<i ncomi ng>

<adr ess- swi t ch f i el d=“ or i gi n” subf i el d=“ user ” >

<adr ess i s=“ svar mor ” >

<r ej ect st at us=“ r ej ect ” >

r eason=“ Kan i nt e pr at a j ust nu” / >

</ adr ess>

</ adr ess- swi t ch>

</ i ncomi ng>

</ cpl >

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

24

CPL taggar• cpl st ar t at cpl scr i pt

• i ncomi ng i nkommande samt al

• out goi ng ut gående samt al

• l ocat i on speci f i cer ar URL

• l ookup Skapar act i on f r ån på l ookupr esul t at

• r emove- l ocat i on Tar bor URL f r ån mängd

• pr oxy pr oxi ar samt al t i l l nya l ocat i ons

• r edi r ect r edi r ect ar samt al t i l l nya l ocat i ons

• r ej ect r ej ect ar samt al

13

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

25

CPL taggar (forts)• mai l sänder emai l t i l l speci f er ad adr ess

• l og ser ver n l oggar speci f er ad i nf or mat i on

• subact i on def i ni er ar subact i on ( subr ut i n)

• sub anr opar subr ut i n

• adr ess- swi t ch val ber oende av adr ess

• st r i ng- swi t ch val ber oende av st r äng

• t i me- swi t ch val ber oende av t i d

• pr i or i t y- swi t ch val ber oende på pr i or i t y- header n

• anci l l ar y f ör f r amt i da ut ökni ngar

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

26

Serverspecifik programmeringVi kommer att användaSER servern, och ändradess

konfigureringsscript för att skapaen ny tjänst.

Exempel påkommandon:exec_msg St ar t a ext er nt pr ogr am, ski cka header i st di n

exec_dset St ar t a ext er n pr ogr am, ski cka ur i i s t di n och

skr i v över den med st dout

i f ( ur i =~” 020123456” ) { }

l et ar ef t er mat chni ng i ur i : n

sl _send_r epl y ( “ 302” , ” Moved t empor ar i l y” )

ski ckar angi vet svar ( t i l l s t åndsl öst )

14

Johan GarciaDatakommunikation IIKarlstads UniversitetDatavetenskap

27

Lab 3 tjänstekonstruktion• Ni skall implementeraen SIP-tjänst som är tänkt att samverkamed

telefonnätet via en PSTN gateway.• Två telefonnummer skall hanteras speciellt

– 020100100 Numret till kundtjänst som kunder ringer– 020100200 Numret som personal ringer för att bli vidarekopplde

till kunder som ringt tidigare

• När kund ringer skall Contact: fältet sparas ner i en köfil• När en personal ringer skall vidarekoppling ske till den kund som

ligger överst i köfilen• Sålunda, tvåprogram/script skall skapas:

– Läs från stdin, spara ner uri från Contact: rad till köfil– Läsöversta raden från köfil, ta bort den och skicka den till stdout