Upload
dangtu
View
220
Download
3
Embed Size (px)
Citation preview
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:[email protected]
• Direkta adresser FQDN (identifierar en terminal)– sip:[email protected]
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