IETF SIP arhitektura -...

Preview:

Citation preview

IETF SIP arhitektura

Mr Nenad KrajnovićE-mail: krajko@etf.bg.ac.rs

2

Zašto nova arhitektura?

H.323 arhitektura suviše složena i ne uklapa se dovoljno lako sa Internet protokolimaIETF pokrenuo radnu grupu koja se bavila uvođenjem nove mrežne arhitekture

http://www.ietf.org/html.charters/sip-charter.html

3

SIP (Session Initiation Protocol)

definisan u RFC-u 3261 kao protokol aplikativnog sloja;koristi se za uspostavu sesije između korisnika;ne definiše tip sesije koja se uspostavlja (interaktivno kockanje ili audio/video konferencija);SIP je klijent-server protokol, baziran na protokolima HTTP (HyperText Transport Protocol) i SMTP (Simple Mail Transfer Protocol);klijent generiše request i šalje ga serveru, koji mu odgovara (response);

request + response = transaction

4

SIP – 5 osnovnih funkcija

Lociranje korisnika – određivanje krajnjeg sistema koji će se koristiti za komunikacijuRaspoloživost korisnika – određuje da li krajnji sistem želi ili ne da učestvuje u toj sesijiKarakteristike sagovornika – određuje medijum i parametre medija koji su bitni za komunikacijuUspostava sesije – razmena parametara za uspostavu sesijeUpravljanje sesijama – razmena podataka vezanih za uspostavu, raskid i održavanje sesija

5

SIP + ...SIP protokol se koristi zajedno sa drugim protokolima na Internetu u cilju formiranja arhitekture koja omogućava multimedijalnu komunikacijuRTP (Real-time Transport Protocol) – RFC 1889RTSP (Real Time Streaming Protocol) –RFC 2326 –kontrola isporuke medijuma koji se šaljeMEGACO (Media Gateway Control protocol) – RFC 3015 – namenjen upravljanju gateway-ima koji se koriste za vezu sa javnom telefonskom mrežomSDP (Session Description Protocol) – RFC 2327 –namenjen definisanju multimedijalne sesije

6

Adresiranje

Adrese su istog tipa kao i standardno korišćene na Internetu, tj:sip:user@domainsip:user@IP_addresssip:user@host ilisip:phone-number@gateway

Olakšano DNS pretraživanje zbog adresa prilagođenih Internetu;Ovakve adrese se lako transformišu u URL - mogu se umetnuti na Web stranu, u potpis na e-mail poruci...;Adresni prostor je praktično neograničen

7

Adresiranje

Struktura adresa obezbeđuje globalnu vidljivostPrilikom registracije korisnika na SIP registration serveru uspostavlja se veza između SIP adrese i stvarne IP adrese korisnika

8

SIP i DNS

U okviru RFC-a 2782 definisano je kako se može koristiti DNS za distribuciju informacija o SIP serverima.Uveden je SRV Resource Record za opisivanje servisa u mreži i odgovarajućih servera:

_Service._Proto.Name TTL Class SRV Priority Weight Port Target

Primer:_sip._udp.etf.bg.ac.yu. IN SRV 20 0 5060 call.etf.bg.ac.yu.

9

SIP komponente:user agent (softver kojim čovek komunicira sa sistemom). Sadrži dve komponente:

UAC (user agent client) - šalje request;UAS (user agent server) - prima request i šalje response(prihvata poziv, preusmerava ga ili odbija);

network servers:registration server - sadrži informacije o trenutnim lokacijama korisnika;proxy server - prima request i šalje ka sledećem serveru (proxy,UAS,redirect); može i ka više servera odjednom;redirect server - prima request, ali umesto da ga prosledi dalje, on vraća adresu next-hop servera klijentu;

Proxy i redirect server vrše rutiranje.

10

Stateless ili statefull

proxy i redirect server mogu biti potpuno stateless: nakon što proxy primi i procesira zahtev, može da potpuno zaboravi na njega;poruke sadrže sve informacije koje su potrebne da bi ih stateless proxy prihvatio i rutirao; administrator odlučuje da li će server biti stateless ili statefull (čak i za vreme trajanja transakcije);ova osobina omogućava skalabilnost i pouzdanost SIP servera (pri prestanku rada veza neće biti ugrožena prelaskom na backup server)

11

Format SIP poruke

SIP poruka može da bude upit (request) od klijenta ka serveru ili odgovor (response) od servera ka klijentuU oba slučaja formati poruka su u skladu sa RFC 2822 (Internet Message Format) s tom razlikom da je sintaksa pojedinih polja različitaNajveći deo polja u zaglavlju SIP poruke je sličan sa HTTP/1.1 formatom zaglavlja (RFC 2616)

12

Format SIP poruke

Prema standardu, poruka ima sledeći format:

generic-message = start-line

message-header

CRLF

[ message-body ]

start-line

= Request-Line / Status-Line

13

Format SIP poruke

Kod upita (request) format prve linije je:

Request-Line = Method SP

Request-URI SP

SIP-Version CRLF

SP

single space karakter

Primer:

INVITE sip:bob@biloxi.com SIP/2.0

14

SIP poruka – metode (RFC 3261)

INVITEINVITE – uspostava vezeBYEBYE - završatak veze učesnika u pozivu;OPTIONSOPTIONS - traži informacije o osobinama UA;ACKACK - za pouzdanu razmenu poruka;CANCELCANCEL - otkazuje se poslednji request (ne važi za BYE);REGISTERREGISTER - traži informaciju o lokaciji korisnika u registration server-u; prijavljuje se serveru sa svojim podacima

15

SIP poruke – metode (dodatne)Dodatne metode su definisane u drugim RFC-ovima i draft IETF dokumentima:INFOINFO – transport mid-call signaling (RFC 2976)COMETCOMET – precondition met (draft-ietf-sip-manyfolks-resource)PRACKPRACK - provisional reliable responses acknowledgement (RFC 3262)UPDATEUPDATE – (RFC 3311)REFERREFER – (RFC 3515) – signalizira da primalac treba da kontaktira nekog trećeg čiji su podaci dati u zahtevuSUBSCRIBE SUBSCRIBE -- (RFC 3265) – prijavljivanje za korišćenje novog servisa (npr. message waiting indication)NOTIFY NOTIFY -- (RFC 3265) – prijava promene u okviru servisa (npr. “new Voicemail”)MESSAGEMESSAGE – (draft-rosenberg-impp) – kreira Instant messaging sesiju

16

Format SIP poruke

Kod odgovora (response) format prve linije je:

Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF

Primer:

SIP/2.0 200 OK

17

Odgovoriporuke koje generiše UAS ili SIP server da odgovori na zahtev generisan od strane UAC-a;statusni kod određuje klasu SIP odgovora; postoji šest klasa SIP odgovora;klase su predstavljene statusnim kodom koji se predstavlja sa tri cifre i indicira ishod pokušaja da se razume i zadovolji zahtev;

18

Klase odgovora

1xx Informational2xx Final3xx Redirection4xx Client Error5xx Server Error6xx Global Failure

19

1xx klasa je privremena zato što je kontaktirani server koji generiše odgovor u fazi obrade primljenih zahteva i ne raspolaže sa odlukom o konačnoj akciji;

Primer:

100 Trying -

ukazuje da je neka vrsta akcije preduzeta, ali ne ukazuje da je korisnik lociran;

Primer:

180 Ringing -ovaj odgovor služi da obavesti da je UA primio INVITE i pokušava se alarmirati korisnik;2xx klasa odgovora ukazuje da je zahtev uspešno primljen ili prihvaćen;

20

Primer: 200 OK- ovaj odgovor ima dve uloge :1) kada se koristi da prihvati poziv onda će telo

poruke sadržati osobine media pozvane strane UAS-a;

2)

kada se koristi kao odgovor na druge zahteve, ukazuje na uspešano primanje zahteva;3xx klasa je klasa redirekcije, odnosno server vraća informacije o novoj lokaciji korisnika ili alternativnom servisu koji će možda biti u mogućnosti da zadovolji poziv (kada primi ovu poruku, klijent može da ponovo šalje zahtev ka drugom serveru);

21

Primer: 301 Moved permanently - ovaj redirekcioni odgovor vraća novu stalnu URI adresu strane koja se poziva;adresa može biti snimljena i može se koristiti za buduće INVITE zahteve;Primer: 302 Moved temporarily - ovaj odgovor sadrži URI koji je trenutno važeći, ali nije stalan i korisnik šalje novi zahtev na datu adresu i pri tome mora voditi računa o specificiranom vremenskom periodu važenja adrese;

22

Primer: 1xx – 3xxSIP Response Code Brief Description

100 Trying Request received and action is being taken180 Ringing UA received INVITE and is alerting user181 Call Is Being Forwarded Used by proxy to indicate call is being forwarded182 Queued Called party unavailable, call queued183 Session Progress Used in early media and QoS setup200 OK Request successful300 Multiple Choices Address resolved to several choices 301 Moved Permanently User can no longer be found at Req-URI address302 Moved Temporarily Temporarily cannot find user at Req-URI address305 Use Proxy Resource MUST be accessed through proxy.380 Alternative Service Call not successful. Alternatives possible.

23

4xx klasa nosi informaciju da određeni server ne može ispuniti tražene zahteve usled greške klijenta;postoji dosta razloga koji su predviđeni i svakom je dodeljen specifičan kod;klijent ne treba da pokušava sa istim zahtevom istom serveru od koga je dobio odgovor sa klasom 4xx; Primer: 400 Bad request - ukazuje da zahtev nije razumljiv serveru (npr. sintaksna greška u zahtevu: nedostaju neka polja iz zaglavlja poruke zahteva i slično);

24

Primer: 401 Unauthorized - zahteva se autentifikacija korisnika u zahtevu i ovaj odgovor šalje UA, a sličan je odgovoru 407 Proxy authentication required koji je poslat od strane proxy servera koji zahteva autentifikaciju (takođe i registration server šalje 401 odgovor na REGISTER zahtev od koga se zahteva autentifikacija);Primer: 407 Proxy authentication required -sličan kodu 401 ali ukazuje da se korisnik prvo mora autentifikovati kod proxy-ja;za razliku od

HTTP-a ovaj odgovor se ne može

koristiti od strane proxy servera da autentifikuje drugi proxy server;

25

Primer: 4xxSIP Response Code Brief Description

400 Bad Request Request not understood due to malformed syntax401 Unauthorized Request requires user authentication402 Payment Required Reserved for future use403 Forbidden UAS understood request and refuses to fulfill it404 Not Found UAS finds that user doesn't exist in the domain 405 Method Not Allowed Method is understood but not allowed406 Not Acceptable Response content not allowed by Accept header407 Proxy Authentication Required Client must first authenticate itself with proxy408 Request Timeout UAS could not produce response in time410 Gone UAS resource unavailable; no forwarding addr.413 Request Entity Too Large Request contains body longer than UAS accepts414 Request-URI Too Long Req-URI longer than server is willing to interpret415 Unsupported Media Type Format of the body not supported by UAS416 Unsupported URI Scheme Scheme of URI unknown to server420 Bad Extension UAS not understand protocol extension 421 Extension Required UAS needs particular extension process request423 Registration Too Brief Contact header field expiration time too small480 Temporarily Unavailable UAS contacted successfully but user unavailable481 Call/Transaction Does Not Exist UAS Rx request not matching any existing dialog 482 Loop Detected UAS has detected a loop483 Too Many Hops UAS received request containing Max-Forwards=0484 Address Incomplete UAS Rx request with incomplete Request-URI 485 Ambiguous The Request-URI was ambiguous486 Busy Here UAS contacted successfully but user busy487 Request Terminated Request terminated by a BYE or CANCEL request488 Not Acceptable Here Same as 606 but only applies to addressed entity491 Request Pending UAS Rx req. & have pending req. for same dialog493 Undecipherable UAS Rx request with encrypted MIME body & not have decryption key

26

5xx klasa opisuje serverske greške, kada server ne uspeva da obradi validan zahtev, pa zahtev treba uputiti drugom serveru;

Primer:

500 Server internal error -

greška nastala u samom serveru;

Primer:

503 Service unavailable - server trenutno nije u stanju da procesira zahtev zbog privremene zagušenosti ili održavanja;ovaj odgovor je bitan jer ukazuje da pošiljalac zahteva može da uz pomoć

DNS servera locira

backup server i dobije željeni servis;

27

6xx klasa ukazuje da je zahtev odbijen; ova klasa služi za obaveštenja da server ima kompletnu sliku o zahtevu korisnika i doneo je konačnu odluku o zahtevu; zahtev ne bi trebalo slati ponovo tom ili nekom drugom serveru;

Primer:

600 Busy everywhere -

pozivani korisnik je kontaktiran tehnički ispravno ali je zauzet i ne može da primi poziv;

Primer:

604 Does not exist anywhere - ovaj odgovor je sličan odgovoru 404 Not Found i upućen je od servera koji je došao do informacije da pozivani korisnik ne postoji;

28

Primer: 5xx – 6xxSIP Reponse Code Brief Description

500 Server Internal Error UAS unexpected condition & cannot fulfill request501 Not Implemented UAS not support functionality to fulfill the request502 Bad Gateway UAS Rx invalid response from a downstream server503 Service Unavailable UAS can't process due to overload or maintenance504 Server Time-out UAS not Rx response from external server505 Version Not Supported UAS not support SIP version in request513 Message Too Large Message length exceeded UAS capabilities600 Busy Everywhere End systems contacted, user busy at all of them603 Decline End systems contacted, user explicitly decline604 Does Not Exist Anywhere UAS has information Req-URI user not exist606 Not Acceptable Some aspects of Session Desc. not acceptable

29

Zaglavlje SIP porukerequest INVITE upućuje UAC UAS-u korisnika sa kojim želi da komunicira. INVITE u header-u sadrži polja:

Via: - obaveznoTo , From (sadrže adrese), - obaveznoSubject, - opcionoCall-ID (sadrži jedinstven identifikator poziva), - obaveznoCSeq (sequence number), - obaveznoContact (lista adresa na kojima se korisnik može naći), - opcionoRequire (negotiation and protocol features, obezbeđuje ekstenzibilnost), -opciono Max-ForwardContent-Lenght, Content-Type (informacije o telu poruke);

dok telo poruke (transparentno za SIP) sadrži opis sesije koja se uspostavlja:za opis se koristi SDP (Session description protocol)- služi za opisivanje unicasti multicast multimedijskih sesija - prenosi informacije o CODEC-ima, portovima i protokolima (RTP) koji će se koristiti za slanje medija

30

SIP URI

SIP ima dve vrste URI-a: 1) stalna adresa

-

AOR (Address Of Record) - vezana je

za samog korisnika;ovo je adresa koja služi da se korisnik poziva bez obzira gde se nalazi (bez obzira na kojoj je IP adresi);

2) druga vrsta je privremena adresa i vezana je za uređaj;registracijom održavaju se veze izmeću AOR-a i kontakt adresa; veza se mora obnavljati periodično jer će u protivnom biti uklonjena;

31

polja zaglavlja SIP-a vrlo su slična po semantici i sintaksi sa HTTP poljima zaglavlja;polja zaglavlja se definišu kao Header: field, gde se Header koristi da predstavi ime polja zaglavlja, a fieldsadrži samu informaciju o tom polju zaglavlja;polja zaglavlja mogu biti tipa end-to-end ili hop-by-hop(hop-by-hop polja su ona koje samo proxy može ubaciti);

STRUKTURA ZAGLAVLJASTRUKTURA ZAGLAVLJA

32

Polja zaglavlja koja mogu biti prisutna i u Polja zaglavlja koja mogu biti prisutna i u zahtevima i u odgovorimazahtevima i u odgovorimaToTo polje postoji u svakoj SIP poruci i koristi se da ukaže na primaoca zahteva;svaki odgovor generisan od strane UA-a će sadržati ovo polje sa dodatnom vrednošću Tag koja se koristi kao identifikator dijaloga;ToTo polje se nikad ne koristi za rutiranje poruke već

za to služi Request-URI;

TagTag je nasumičan broj sa najmanje 32 bita koji se dodaje ToTo i FromFrom polju kao identifikator dijaloga;

33

FromFrom polje ukazuje na inicijatora zahteva; ovo polje mora da sadrži TagTag, koji se koristi da identifikuje određeni poziv; CallCall--IDID je polje koje predstavlja jedinstven identifikator određenog poziva;CseqCseq polje (command sequence) je polje kojesadrži decimalni broj (bilo koji prirodan broj) kojise povećava za svaki zahtev; ContactContact polje se koristi za prenos URI-ja koji identifikuje izvor koji je zahtevan ili identifikuje podnosioca zahteva, u zavisnosti da li je ovo polje prisutno u odgovoru ili zahtevu;kada je Contact polje primljeno, taj URI se koristi za rutiranje budućih zahteva u dijalogu;

34

RecordRecord--RouteRoute polje se koristi da zahteva rutiranje kroz proxy za sve sledeće zahteve u sesiji između dva UA;bez prisustva ovog polja, samo prisustvo ContactContact polja omogućava da UA-ti šalju poruke direktno, preskačući proxy servere korišćene u inicijalnom zahtevu; SubjectSubject polje zaglavlja koristi se kao informacija o prirodi poziva i može služiti za filtriranje od strane korisnika bez upućivanja u opis sesije;ViaVia polje zaglavlja ukazuje put koji zahtev do sada prešao i putanju rutiranja kojom bi trebao da se šalje odgovor;

35

Obavezna polja u zaglavlju

Mandatory Header Brief DescriptionTo Specifies the logical recipient of the request. Has optional "display-name" for human UI.From Indicates the initiator of the request. Has optional "display-name" for human UI.Via Indicates path taken by request so far (also path that should be followed in routing responses)Call-ID Uniquely identifies a particular invitation or all registrations of a particular clientCSeq Contains a single decimal sequence number and the request method (orders requests)Max-Forwards Limits the number of proxies that can forward the request to the next downstream server

36

Polja zaglavlja koja mogu biti prisutna samo u zahtevimaProxyProxy--AuthorizationAuthorization je polje zaglavlja koje dopušta klijentu da bude identifikovan od proxy-ja koji zahteva autentifikaciju klijenta;može biti poslat kao odgovor na 407 Proxy Authentication Required odgovor; MaxMax--forwardsforwards polje se koristi da ukaže na maksimalan broj hopova koje SIP zahtev može imati;RouteRoute polje zaglavlja se koristi za rutiranja zahteva preko određenih proxy-ja;

37

Polja zaglavlja koja mogu biti prisutna samo u odgovorimaProxyProxy--AuthenticateAuthenticate sadrži podatke na osnovu kojih se vrši autentifikacija koju zahteva proxy;koristi se u 407 Proxy Authentication Required odgovoru upućenom od strane proxy servera ka UAC-u;

Polja zaglavlja koja sadrže informacije o telu porukeContentContent--LengthLength ukazuje na dužinu tela poruke izraženu u oktetima;ContentContent--TypeType je polje zaglavlja koje ukazuje na tip medija koji je poslat u telu poruke;

38

TELO PORUKETELO PORUKEkoristi se da opiše sesiju koja treba da bude uspostavljena, odnosno prenose se informacije o tipu medija, jer sam SIP ne definiše tip sesije koja se uspostavlja (audio, video, i sl.);za opis se koristi SDP (Session Description Protocol) koji se prenosi u telu SIP poruke;SDP paketi unutar tela poruke prenose: informacije o sesiji (ime i svrha, aktivan vremenski period, potreban propusni opseg i kontakt informacija o osobi odgovornoj za sesiju), tip medija (audio, video…), informacije o CODEC-ima, IP adresu, broj porta;

39

Registracija korisnika

REGISTER REGISTER sip:iptel.orgsip:iptel.org

SIP/2.0SIP/2.0From: From: sip:sip:bobbob@@iptel.orgiptel.orgTo: To: sip:sip:bobbob@@iptel.orgiptel.orgContact: Contact: <sip:15.<sip:15.1137.37.1178.73>78.73>Expires: Expires: 36003600

1

bob@15.137.178.73bob@15.137.178.73

2

SIP/

2.0 20

0 OK

3

SIP registration server

Location service

40

SIP transakcija - primer

UAC

SIP redirectserver

(company.com SIPserver)

UAS

SIP proxy(university.edu SIP server)

SIP proxy(computer

science SIP server)

requestresponse

Location service

1

2

45

7 812

3

6

910

11

SIP proxy

šalje INVITE request zajoe@company.com

company.com (DNS)=> IP adresa

joe je trenutno na adresi j.user@university.edu

Database=> lokalno j.smith@cs.university.edu

university.edu (DNS)=>IP adresa

41

1.1.proxyproxy serverserverima primarnu ulogu u rutiranju SIP zahteva ka UAS-u odnosno odgovora ka UAC-u;SIP proxy server prima zahteve od UA-a ili drugog proxy servera i prosleđuje ili odgovara na zahtev; na putu do odredišta SIP poruka može da prelazi preko lanca proxy-ja, a svaki proxy u tom lancu obrađuje poruku i na osnovu obrade donosi odluku; ima pristup ka bazi podataka ili servisu lokacije u kojima se nalaze SIP registracija ili bilo koja druga vrsta informacija o tome gde se nalazi korisnik;

42

Primer rada

Proxy

servera

43

dva UA iz različitih domena uspostavljaju sesiju koristeći par proxy servera, po jedan u svakom domenu;proxy server koristi DNS da bi locirao proxy iz drugog domena;proxy na koji je prikačen korisnik koji se poziva ima pristup ka trenutnoj registracionoj informaciji pozvanog korisnika i može rutirati zahtev ka njemu;nakon uspostavljanja veze između UA-ta, ostali zahtevi se šalju direktno između njih, sem ako jedan ili oba proxy-a umetnu polje Record-Route zahtevajući da i ti zahtevi idu preko njih;

44

proxy može raditi u dva moda stateless i stateful;

1) stateful proxy pamti informacije o stanju svakog primljenog i poslatog zahteva;na osnovu ovih informacija obrađuju se budući zahtevi koji su povezani sa početnim zahtevom;stateful proxy startuje tajmer kada prosledi zahtev;ako nema odgovora na zahtev u toku perioda koji odbroji tajmer, proxy će retransmitovati zahtev, oslobađajući UA ovog posla;

45

2) stateless proxy samo prosleđuje zahteve odbacujući informacije o stanju;kada je poruka prosleđena ili je odgovoreno na nju, nikakve informacije o toj poruci se ne pamte;stateless proxy nikad ne vrši retransmisiju poruke i ne koristi nikakve SIP tajmere;

3) transaction stateful proxy pamti informacije o transakciji ali samo za vreme trajanja perioda u kome je zahtev nerešen;

46

2. 2. registration registration serverserverprihvata SIP REGISTER zahteve;u registracionom zahtevu, ToTo polje sadrži ime koje treba registrovati (AOR), a ContactContact polje sadrži trenutnu adresu uređaja na kome se korisnik nalazi;serveri registracije obično zahtevaju autentifikaciju od UA koji se registruje;u zavisnosti od polja zaglavlja prisutnih u REGISTER zahtevu, ovaj zahtev UA može da koristi za dobijanje liste trenutne registracije, ili da obriše registraciju ili da doda URI u registracionu listu;

47

Primer rada

Registration servera

48

Heisenberg-a šalje SIP REGISTER zahtev ka registrar serveru;server koristi tu informaciju da update-uje bazupodataka koju dalje koriste proxy serveri darutiraju SIP zahteve;U ToTo polju REGISTER poruke nalazi se SIP URI Heisenberg-a (njegova ``dobro poznata``adresa);u okviru ContactContact polja se nalazi trenutna adresa uređaja (sa IP adresom) koju korisnik trenutno koristi;registracioni server vezuje ove dve adrese;

49

REGISTER sip:registrar.munich.de SIP/2.0 Via: SIP/2.0/UDP 200.201.202.203:5060;branch=z9hG4bKus19 Max-forwards: 70 To: Werner Heisenberg <sip:werner.heisenberg@munich.de> From: Werner Heisenberg <sip:werner.heisenberg@munich.de>; tag=3431 Call-ID: 23@200.201.202.203 CSeq: 1 REGISTER Contact: sip:werner.heisenberg@200.201.202.203 Content-Length: 0

50

SIP/2.0 200 OKVia: SIP/2.0/UDP 200.201.202.203:5060;branch=z9hG4bKus19 To: Werner Heisenberg <sip:werner.heisenberg@munich.de>;tag=8771 From: Werner Heisenberg <sip:werner.heisenberg@munich.de> ;tag=3431 Call-ID: 23@200.201.202.203 CSeq: 1 REGISTER Contact: <sip:werner.heisenberg@munich.de>;expires=3600 Content-Length: 0

51

3. 3. redirect redirect serverserverovaj tip servera odgovara, ali ne prosleđujezahteve;kao i proxy server, redirect server koristi bazupodataka za lociranja korisnika, ali informacije o lokaciji korisnika server šalje nazad pozivaocu kroz 3xx klasu odgovora;u sledećem primeru redirect server se koristi daSchroedinger locira Heisenberg-a:

52

53

SIP gateway-i - uređaji koji povezuju SIP mrežu sa drugom vrstom mreža (mreža u kojima se koristi druga signalizacija); to je specijalni tip UA, pri čemu UA zastupa drugi protokol umesto čoveka;gateway završava signalizacionu putanju i takođe može završiti putanju medija, ali to nije uvek slučaj (na SIP/H.323 gateway-u se završava SIP signalizacija i počinje H.323 ali SIP UA i H.323 terminal mogu razmenjivati RTP medij direktno bez gateway-a, a kod SIP/PSTN gateway-a, vrši se konverzija i signalizacije i samog medija );

54

55

Poziv od SIP mreže ka PSTN-uRequest-URI u INVITEporuci sadrži telefonski broj koji se šalje ka PSTN gateway-u.Gateway mapira INVITEporuku u SS7 ISUP IAM(Initial Address Message)183 Session Progressporuka uspostavlja početnu sesiju za prenos medija tako da pozivajući učesnik čuje signal zvona.Dvosmerna putanja za prenos govora je uspostavljena pošto su razmenjenje poruke ANM (Answer Message) i 200 OK

56

1

2

3

Bootstrap loads imagefrom Flash

Phone sends request to DHCPServer for IP addresses

DHCP Server provides:- IP address (option #50)- Subnet mask (option #1)- Default Gateway (option #3)- TFTP Server (option #66)- Domain name (option #15)- DNS Server (option #6)- SIP Server (optional option #120)

4 Phone sends a DNS SRVquery DNS server obtained inStep 3 using Domain namefrom Step 3.

DNS SRV record query_sip._udp.zultys.com

5

DNS Server sends response with SRV recordor no match, in which case the client retriesSRV query using _tcp instead before failing.- Priority = 0- Weight = 10- Port = 5060- Registrar Hostname

DNS Server receives SRV recordrequest. Checks for match.

6Phone sends standard DNSAddress record query toresolve server address.

8

Phone registers withZultys REGISTRARusing the Phone MACaddress for userid andthe domain name.

REGISTER sip:zultys.com

200 OK

DNS SRV responsemx1200.zultys.com 0 10 5060

DNS A response10.1.33.100

DNS A record querymx1200.zultys.com

DNS Server receives A recordrequest. Checks for match.

DNS Server sends response with A record.- Registrar address

mx1200.zultys.com 10.1.33.100

From: sip:001e10011c1@zultys.com. To: sip:001e10011c1@zultys.com. Contact: sip:001e10011c1@10.1.33.56

phone1.zultys.com

Telephone

DNS SRV Phone Provisioning Call Flows

Server Server

7

DHCP DNS

57

Message

User 1

200 OK

User 2

SIP for Instant Message: MessageMESSAGE sip:user1@user1pc.domain.com SIP/2.0 Via: SIP/2.0/UDP user2pc.domain.com To: sip:user1@domain.com From:sip:user2@domain.com;tag=ab8asdasd9 Contact: sip:user2@user2pc.domain.com Call-ID: asd88asd77a@1.2.3.4 CSeq: 1 MESSAGE Content-Type: text/plain Content-Length: 29My name is User1 SIP/2.0 200 OK

Via: SIP/2.0/UDP user2pc.domain.com To: sip:user1@domain.com From: sip:user2@domain.com;tag=ab8asda sd9 Call-ID: asd88asd77a@1.2.3.4 CSeq: 1 MESSAGE Content-Length: 0

59

Primer za record-routeProxy serveri ubacuju Record-Route zaglavlje:

Kada žele da budu uključeni u povratnu putanju za signalizacijuOperatori to koriste da bi imali evidenciju o obavljenim pozivima

Proxy 1 Proxy 2

INVITE sip:callee@domain.com

SIP/2.0Contact: sip:caller@u1.example.com

INVITE sip:callee@domain.com

SIP/2.0Contact: sip:caller@u1.example.comRecord-Route: <sip:p1.example.com;lr> INVITE sip:callee@u2.domain.com SIP/2.0

Contact: sip:caller@u1.example.comRecord-Route: <sip:p2.domain.com;lr>Record-Route: <sip:p1.example.com;lr>

Dialog gets established

BYE sip:callee@u2.domain.com SIP/2.0Route: <sip:p1.example.com;lr>,<sip:p2.domain.com;lr> BYE sip:callee@u2.domain.com SIP/2.0

Route: <sip:p2.domain.com;lr>BYE sip:callee@u2.domain.com SIP/2.0

SIP/2.0 200 OKContact: sip:callee@u2.domain.comRecord-Route: <sip:p2.domain.com;lr>Record-Route: <sip:p1.example.com;lr>

60

Upoređenje H.323/SIP

H.323 SIPArhitektura Protokolski stek ElementIzvor ITU IETFTransport Uglavnom TCP Uglavnom UDPEncoding ASN.1 HTTP-likeOsnovna namena

telefonija Multimedia

Adresiranje aliasi SIP URL

61

H.323-SIP: kontrola standardnih poziva

Servis H.323v1 H.323v2 H.323v3 SIPPauziranje poziva Ne Da Da DaTransfer poziva Ne Da Da DaPreusmerav

anje poziva Ne Da Da DaPoziv na čekanju Ne Da Da Da

62

H.323-SIP: napredne funkcije

Servis H.323v1 H.323v2 H.323v3 SIPThird party call Ne Ne Ne DaKonferencijski poziv Ne Da Da DaClik-to-dial Ne Da Da DaCapability exchange Da+ Da+ Da+ Da

63

H.323-SIP: QoS

Servis H.323v1 H.323v2 H.323v3 SIPCall setup delay 6 –

7 RTT 3 –

4 RTT 2,5 RTT 1,5 RTT

Packet loss recovery TCP TCP Da+ Da+Loop detection Ne Ne PathValue Via, hops

Fault tolerance Ne Ne backup Da

64

H.323-SIP: skalabilnost

Veoma kompleksan zbog interakcije između mnogo uključenih protokolaStateful serveri u verzijama 1 i 2 protokolaH.323v3 još složeniji

SIP i SDP protokoli su jednostavniji za radServeri mogu da budu stateless

H.323H.323 SIPSIP

65

H.323-SIP: proširivost funkcija

Može se koristiti samo polje NonStandardParamNove funkcije se mogu dodati posredstvom H.450.1 protokola

Hijerarhijski prostor adresa i imenaHijerarhijska organizacija kodova za greškeNove funkcije se mogu registrovati kod IANA-eTransparent proxyingKorišćenje MIME tipovaOpcioni delovi u definiciji protokola

H.323H.323 SIPSIP

66

H.323-SIP: customization

Zbog velikog broja protokola koji učestvuju u komunikaciji, veoma se teško realizujeZahteva za puna kompatibilnost između različitih verzija H.323 protokola

Obezbeđuje se kroz polja u zaglavljuNepoznata polja u zaglavlju se jednostavno ignorišu na prijemnoj strani

H.323H.323 SIPSIP

67

H.323-SIP: jednostavnost implementacije

H.323 poruke su u binarnom formatuKodiranje poruka u skladu sa ASN.1 notacijomPotrebni posebni alati za dekodovanje poruka i prevođenje u “čitljivu” formuImplementacija i debagovanje su zbog prethodno navedenog veoma složeni

SIP poruke su u tekstualnom formatuLako se implementira i u višim programskim jezicima (Perl, Tcl, Java)Lako se debaguje

H.323H.323 SIPSIP

68

Prednosti SIP-ajednostavnost: 269+str. (SIP) - 600str. (H.323)?;extensibility - poseduje bogat set funkcija vezanih za mogućnosti proširivanja i održavanje kompatibilnosti;modularnost;skalabilnost:

jednostavnost jezgra i kompleksnost periferije mreže:jednostavnost jezgra: veliki backbone serveri mogu biti stateless - time je obezbeđena jednostavnost obrade tamo gde su protoci veliki;SIP serveri na ivicama mreže mogu biti statefull čime je omogućeno da nude složenije servise;

podržane su konferencije različitih obima;integracija - sa Web-om, e-mail-om;baziran je na tekstualnom kodovanju => jednostavno programiranje i debugging...

69

SDP

Session Description ProtocolDefinisan u okviru RFC 2327Namenjen je opisu media koji se prenosiInicijalno pravljen za MBone projekatSIP protokol obezbeđuje uspostavu veze bez razmene informacija o samom mediu koji će se razmenjivati tokom komunikacije

70

SDP - struktura

Nivo sesije (Session Level Info)Ime Izvor saobraćajaVreme

Nivo medijuma (Media Level Info)Tip medije koja sa prenosiBroj portaTransportni protocolFormat media

71

SDP - strukturaSession descriptionSession description

Session Level InformationSession Level Information

Originator and Session IDSession NameSession Time

Media Name and TransportConnection Information

Media Name and TransportConnection Information

Media description 1Media description 1

Media description 2Media description 2

Protocol Version

72

SDP - sintaksa

Kao i SIP, i SDP koristi tekstualne porukeU svakoj liniji se nalazi po jedan red tipa:

Field = valuePrvo se postavljaju polja sa informacijama o sesiji (Session level fields)Potom dolaze polja sa podacima o mediumu:

Počinju sa poljem opisa media (m=...)

73

Obavezna poljav=(protocol version)o=(session owner/creator and session id)s=(session name), a text stringt=(time of the session)

t=<start time> <stop time>NTP time values in seconds

m=(media name and transport address)m=<media> <port> <transport> <fmt list>

Media typeThe transport portThe transport protocolThe media format, an RTP payload format

74

Opciona polja - 1

i=(session information)Tekstualni opisKako na nivou sesije tako i na nivou medie

u=(URI of description)Sledeća tačka gde se informacije mogu dobitiSamo na nivou sesije

e=(e-mail address)E-mail adresa odgovorne osobe za sesije.Samo na nivou sesije

p=(phone number)Samo na nivou sesije

75

Opciona polja - 2

c=(connection information)Tip konekcije, tip mreže i adresa za konekcijuNa nivou sesije i medija

b=(bandwidth information)Izraženo u kb/sNa nivou sesije ili medija

r=<repeat interval> <active duration> <list of offsetsfrom start- time>

Za regularno zakazanu sesijuKoliko često i koliko puta

76

Opciona polja - 3z=(timezone adjustments)

z=<adjustment time> <offset> <adjustment time> <offset> .... Za regularno zakazane sesijeVremenska zona i vreme promene časovnika (letnje/zimsko vreme)

k=(encryption key)k=<method>:<encryption key>Ključ za šifriranje ili mehanizam njegovog dobijanjaNa nivou sesije ili medija

a=(attributes)Opis dodatnih atributaPolje za proširenje mogućnosti SDP protokola

77

Vrste poljaSession Level

Protocol version (v)Origin (o)Session name (s)Session information (i)URI (u)E-mail address (e)Phone number (p)Connection info (c)Bandwidth info (b)Time description (t)Repeat info (r)Time zone adjustments (z)Encryption key (k)Attributes (a)

Media levelMedia description (m)Media info (i)Connection info (c)

Optional if specified at the session level

Bandwidth info (b)Encryption key (k)Attributes (a)

78

Subfields - 1Field = <value of subfield1> <value of subfield2> <value of subfield3> …Origin (o)o=<username> <session id> <version> <network type> <address type> <address>

Username, the originator’s login id or “-”session ID

A unique IDMake use of NTP timestamp

version - a version number for this particular sessionnetwork type

A text string; IN refers to Internetaddress type

IP4, IP6Address, a fully-qualified domain name or the IP address

o=mhandley

2890844526 2890842807 IN IP4 126.16.64.4

79

Subfields - 2Connection Data

The network and address at which media data are to be receivedNetwork type, address type, connection address

c=IN IP4 224.2.17.12/127 Media Information

Media typeAudio, video, application, data, or control

Port, 1024-65535Format

List the various types of mediaRTP/AVP payload types

m= audio 45678 RTP/AVP 15 3 0G.728, GSM, G.711

80

AttributesProperty attribute

a=sendonlya=recvonly

value attributea=orient:landscape

rtpmap attributeThe use of dynamic payload typea=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding parameters>].

m=video 54678 RTP/AVP 98a=rtpmap

98 L16/16000/2

81

SDP Structurev=0o=Tesla 289084 289041 IN IP4 lab.high-voltage.orgs=-c=IN IP4 100.101.102.103t=0 0m=audio 49170 RTP/AVP 0a=rtpmap:0 PCMU/8000

v = Version number (ignored by SIP)o = Origin (only 3rd field (version) used by SIP)s = Subject (ignored by SIP)c = Connection Data (IN =internet, IP4 = IPv4, IP Address)t = Time (ignored by SIP)m = Media (type, port, RTP/AVP Profile)a = Attribute (profile, codec, sampling rate)

Specifies IP address and port that this device would like to use

to RECEIVE data

82

Primer:

83

Ponuda /odziv

84

Options metodaOdređuje mogućnosti pozvanog sagovoronika

ENUM

86

Integracija sa DNS-om

ENUM – E.164 number and DNS (RFC 2916)Definiše na koji način se podaci od interesa mogu kroz DNS isporučiti korisnicima

87

ENUM

Pojavom IP telefonije stvara se zabuna oko velikog broja kontakt informacija za korisnika:

Broj fiksnog telefonaBroj mobilnog telefonaBroj IP telefonaE-mail adresa

ENUM rešava problem integracijetelefonskog broja i IP adrese

88

ENUM

Broj telefona

Pretvoriti u FQDN

Poslati upit DNS-u

Dobiti listu URI-a:

+381-11-3221-419

9.1.4.1.2.2.3.1.1.1.8.3.e164.arpa

mailto:user@etf.bg.ac.rs

Sip:user@etf.bg.ac.rs

DNS query/ response

89

DNS

U DNS-u je definisan novi tip RR-a –NAPTR – Naming Authority PointerUvodimo novi domen ispod .arpa domena koji će se koristiti za E.164 numeraciju

90

Inverzni DNS

••

netnet comcom

riperipe

wwwwww wwwwww

eduedu

isiisi tislabstislabs

••disidisi

ws1ws1ws2ws2

••

•• ••

••

••ftpftp

sunsun

moonmoon

googlegooglearpaarpa

••inin--addraddr

••

IP v4 IP v4 addressesaddresses

e164e164

••

E.164 E.164 numeracijanumeracija

91

NAPTR RR u DNS-u

Definisan u okviru RFC-a 2915Format RR-a

IN

NAPTR

Order Preference Flags Service Regexp Replacement

92

NAPTR RR u DNS-u

Order i Preference polja služe za definisanje prioriteta u obradi zapisaZapisi sa manjim brojem se obrađuju pre nego zapisi sa većim brojemPrvo se posmatra order parametar pa ako imamo dva RR-a sa istim order parametrom, posmatramo preference

IN

NAPTR

Order Preference Flags Service Regexp Replacement

93

NAPTR RR u DNS-u

Flags parametar može uzeti vrednosti “S”, “A”, “U” i “P”Definiše način dalje obrade upita“S” – sledeći upit treba da bude za zapis tipa SRV“A” – sledeći upit treba da bude tipa A“U” – u Regexp polju se nalazi URI“P” – definiše novi algoritam za obradu RR-a

IN

NAPTR

Order Preference Flags Service Regexp Replacement

94

IN

NAPTR

Order Preference Flags Service Regexp Replacement

NAPTR RR u DNS-u

Service parametar definiše protokol koji će se koristiti u komunikaciji sa servisomRegexp parametar definiše pravila kako se menja format korisničkog upita

95

NAPTR RR u DNS-u

Replacement parametar definiše šta treba da bude sledeći upitSledeći upit može da bude NAPTR, SRV ili IP adresa, u zavisnosti od vrednosti za flags parametar

Primer:

IN NAPTR 100 50 "s" "z3950+I2L+I2C" "" _z3950._tcp.gatech.edu.IN NAPTR 100 50 "s" "rcds+I2C" "" _rcds._udp.gatech.edu.IN NAPTR 100 50 "s" "http+I2L+I2C+I2R" "" _http._tcp.gatech.edu.

IN

NAPTR

Order Preference Flags Service Regexp Replacement

96

Primer NAPTR-a za ENUM

E2U – skraćenica za servis “E.164 to URI”

$ORIGIN 4.3.2.1.6.7.9.8.6.4.e164.arpa.IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:info@tele2.se!" .IN NAPTR 102 10 "u" "mailto+E2U" "!^.*$!mailto:info@tele2.se!" .

Za E.164 broj +4689761234 dobićemo odgovor:sip:info@tele2.semailto:info@tele2.se

97

Primer NAPTR-a za ENUM$ORIGIN 4.3.2.1.6.7.9.8.6.4.e164.arpa.IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:paf@swip.net!" .IN NAPTR 102 10 "u" "mailto+E2U" "!^.*$!mailto:paf@swip.net!"

.

IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+4689761234!" .

Za E.164 broj +4689761234 dobijamo odgovor:sip:paf@swip.netmailto:paf@swip.nettel:+4689761234

Za poslednji red imamo da ponovo treba poslati upit u cilju dobijanja URI-a; klijent je zadužen za detekciju petlje ako postoji (kao u ovom primeru)

98

Zaključak

SIP arhitektura predstavlja budućnost u korišćenju IP telefonijeZbog bolje prilagođenosti Internet protokolima i servisima, svi proizvođači migriraju svoja rešenja na SIPStalnim razvojem SIP dostigao funkcionalnost modernih telefonskih centrala

IETF SIP arhitektura

Mr Nenad KrajnovićE-mail: krajko@etf.bg.ac.rs