You are on page 1of 40

1

Mc lc
CHNG 1: GII THIU SIP .................................................................................. 3
1.1 SIP L G ? ....................................................................................................... 3
1.2 SIP ADDRESSING (A CH CA SIP) ........................................................ 3
1.2.1 User Agents : .............................................................................................. 3
1.2.2 Registrar ..................................................................................................... 4
1.2.3 Location Service......................................................................................... 5
1.2.4 Proxy Server ............................................................................................... 5
1.2.5 Forking ....................................................................................................... 7
1.2.6 Redirect Server ........................................................................................... 9
1.2.7 Back-to-Back User Agents (B2BUA) ...................................................... 10
CHNG 2: CCH HOT NG CA GIAO THC SIP ................................. 11
2.1 M HNH HOT NG CA SIP .............................................................. 11
2.1.1 SIP Responses .......................................................................................... 11
2.2 SIP Requests .................................................................................................... 12
2.2.1 REGISTER ............................................................................................... 13
2.2.2 INVITE .................................................................................................... 14
2.2.3 ACK ......................................................................................................... 16
2.2.4 CANCEL .................................................................................................. 17
2.2.5 Options ..................................................................................................... 18
CHNG 3: SIP MESSAGE ................................................................................... 19
3.1 Start line .......................................................................................................... 20
3.2 Header field ..................................................................................................... 22
3.2.1 From ......................................................................................................... 23
3.2.2 To ............................................................................................................. 23
3.2.3 Call-ID ...................................................................................................... 23
3.2.4 Via ............................................................................................................ 23
3.2.5 Contact ..................................................................................................... 25
3.2.6 Record-Route v Route ............................................................................ 26
3.2.7 CSeq ......................................................................................................... 27
3.2.8 Max-Forwards .......................................................................................... 28
3.3 SIP Message Body .......................................................................................... 28
2

3.3.1 Content-Type............................................................................................ 29
3.3.2 Content-Length ........................................................................................ 29
3.3.3 Content-Encoding .................................................................................... 29
3.4 Mi quan h gia Call, Dialog, Transaction v Message ............................... 30
CHNG 4: CU TRC GIAO THC SIP .......................................................... 32
CHNG 5: XY DNG SIP STACK DNG JAIN SIP ..................................... 34
5.1 JAIN SIP L G ? ........................................................................................... 34
5.2 Cc bc xy dng 1 Sip Stack ...................................................................... 34
5.2.1 Cc phn mm v gi ph thuc .............................................................. 34
5.2.2 Sip Client .................................................................................................. 34
5.2.3 Sip Proxy .................................................................................................. 39


3


GII THIU SIP
1.1 SIP L G ?
SIP l vit tt ca cm t Session Initiation Protocal, l mt giao thc truyn tn
hiu tng ng dng (application-level) v c nh ngha bi IETF. SIP c
s dng to v qun l cc session thng qua mng IP. Thut ng Session l
mt phin lm vic trong qu trnh trao i media (voice, video,.).
SIP lm vic cng vi mt vi cc giao thc khc trong tng ng dng
nhn dng v truyn session media. S nhn dng v tha thun v media c thc
hin vi Session Description Protocol (SDP). i vi vic truyn cc media stream
(voice, video), SIP s dng Real-time Transport Protocol (RTP) hay Secure Real-
time Transport Protocol (SRTP). Cn bo mt trong qu trnh truyn cc thng ip
th c m ha bi Transport Layer Security (TLS).
SDP c s dng miu t v cc media session nhm mc ch thng
bo, mi gi v tha thun tham s dnh cho 1 session. Do , to ra mt
session, mt SIP message lun mang theo SDP m cho php cc bn tham gia ng
thit lp mt vi cc thng s cn thit trao i media, cng nh loi media,
a ch truyn ti,

1.2 SIP ADDRESSING (A CH CA SIP)
Cc thnh phn ca SIP:
Cc thnh phn ca SIP bao gm :
User Agents (UAs)
Registras
Proxies
Back-to-Back User Agents (B2BUSs)
1.2.1 User Agents :
Mt SIP User Agent (UA) bao gm 2 thnh phn : User Agent Client (UAC) v
User Agent Server (UAS).
4

Nhim v ca UAC : to ra cc SIP request (yu cu) gi cho UAS v thu
nhn cc response (phn hi) c gi t UAS .
Nhim v ca UAS : nhn cc SIP request c gi t UAC v to ra cc
response gi cho UAC.

Hnh 1. 1 Cc thnh phn UA
*Lu : SIP c lp vi media session. SIP khng dnh lu vi bt c loi media
session no m cn c thc hin. V d, nu bn mun tng cng 1 tnh nng
no cho media th bn phi b sung thnh phn v tch hp n vi user
interface, cn chnh SIP User Agent vn khng thay i.
SIP UA l b phn quan trng ca 1 ng dng v truyn media. SIP UA
c thc hin trong nhiu cch khc nhau, c th l:
Mt phn mm chy trn PC.
Mt ng dng trn mobile phone.
Mt trng thi no trong network server : gi phn hi t ng khi c yu
cu, t ng gi media chc mng sinh nht,.

1.2.2 Registrar
Registrar l mt server m chp nhn cc registration request (cc yu cu
c ng k) t cc UA. UA cung cp v tr hin ti ca n vi 1 SIP Message
truyn n Registrar Server. 1 SIP UA cn c ng k trc khi n c th nhn
cuc gi. Khi registrar nhn registration request, n a nhng thng tin m n
nhn c vo trong 1 c s d liu c gi l Location Service.
Tc l, Registrar l 1 SIP endpoint m nhn cc registration request v a
cc thng tin n nhn c trong request ny vo location service x l.

5

1.2.3 Location Service
Location Service l mt c s d liu m cha mt tp danh sch nh x
gia Adresses of Record (AORs a ch cng khai dnh cng UA) v Contact
Addresses (a ch xc nh tn domain cng nh v tr ca ngi dng).
Khi Registrar nhn mt registration request t mt UA, registrar s a
thng tin n nhn c vo Location Service. Location service cng c lin h
vi Proxy Servcers ch ra domain chnh xc ly v thng tin v tr c th thc
hin c cuc gi n ngi dng.

Hnh 1. 2 V d v Location Service
1.2.4 Proxy Server
Chc nng ca Proxy Server trong Internet :
Mt s hng v cng ty s dng proxy vi mc ch: Gip nhiu my tnh
truy cp Internet thng qua mt my tnh vi ti khon truy cp nht nh, my tnh
ny c gi l Proxy server. Ch duy nht my Proxy ny cn modem v account
truy cp internet, cc my client (cc my trc thuc) mun truy cp internet qua
my ny ch cn ni mng LAN ti my Proxy v truy cp a ch yu cu. Nhng
yu cu ca ngi s dng s qua trung gian proxy server thay th cho server tht
s m ngi s dng cn giao tip, ti im trung gian ny cng ty kim sot c
mi giao tip t trong cng ty ra ngoi internet v t internet vo my ca cng ty.
6

S dng Proxy, cng ty c th cm nhn vin truy cp nhng a ch web khng cho
php, ci thin tc truy cp nh s lu tr cc b cc trang web trong b nh ca
proxy server v giu nh danh a ch ca mng ni b gy kh khn cho vic thm
nhp t bn ngoi vo cc my ca cng ty.
i vi cc nh cung cp dch v ng truyn internet: Do internet c
nhiu lng thng tin m theo quan im ca tng quc gia, tng chng tc hay a
phng m cc nh cung cp dch v internet khu vc s phi hp s dng
proxy vi k thut tng la to ra mt b lc gi l firewall proxy nhm ngn
chn cc thng tin c hi hoc tri thun phong m tc i vi quc gia, chng tc
hay a phng . a ch cc website m khch hng yu cu truy cp s c lc
ti b lc ny, nu a ch khng b cm th yu cu ca khch hng tip tc c
gi i, ti cc DNS server ca cc nh cung cp dch v. Firewall proxy s lc tt c
cc thng tin t internet gi vo my ca khch hng v ngc li.
Chc nng ca Proxy Server trong SIP:
Tng t nh chc nng ca Proxy Server trong Internet, Proxy Server trong
SIP l mt thc th trung gian, vai tr chnh ca proxy l nh tuyn, ngha l bo
m mt request c gi i n ngi dng. Proxy Server c th c dng
kim tra, thng k, tm ng truyn k tip, chnh sch bt buc no ,.
C nhiu loi Proxy khc nhau trong SIP, nhng 2 loi Proxy thng c nhc
n l : outbound proxy v inbound proxy.
Outbound Proxy : Outbound Proxy gip cc UA nh tuyn cc
request i ra t cc UA. Cc UA thng c cu hnh truyn cc request
ca n n mt outbound proxy.
Inbound Proxy : gip nh tuyn cc request i ra t proxy ny trc tip n
UA yu cu. Khi 1 inbound proxy nhn mt request yu cu gi n 1 user,
inbound proxy s gi n Location Service xc nh contact address ca
user , sau gi trc tip n user.

7


Hnh 1. 3 Proxy Server
1.2.5 Forking
Forking ca SIP request c ngha l nhiu session media c th c thc
hin t 1 request duy nht. y l 1 tnh nng mnh m ca SIP.
Vi SIP Forking, bn c th ng k 1 Address of Record m c nhiu Contact
Adress trong location service.
V d:

Address of Record Contact Address
Sip: john@ocean.com Sip:john@214.25.100.2
Sip: john@ocean.com Sip:john@198.77.51.2
Sip: john@ocean.com Sip: john@230.2.47.5
..

Khi c 1 request gi n inbound proxy thc hin cuc gi n John, th
proxy ny tm thy cc v tr khc nhau ny v a ra 1 thut ton c gng lin
lc vi John cc v tr khc nhau. C 2 thut ton c s dng :
Sequential search (tm tun t) : proxy c gng tm ln lt tng v tr, v tr
ny xong n v tr khc.
8

Parallel search (tm song song) : proxy s tm tt c cc v tr cng lc.


Hnh 1. 4 Sequential search (tm tun t)
9


Hnh 1. 5 Parallel search (tm song song)
1.2.6 Redirect Server
Redirect Server l UAS m nhn cc request t User Agent Clients v t
ng to ra cc responses gi n UAC. Cc reponses ny lun lun hng dn
UAC to ra request lin lc vi 1 tp cc a ch thay th.

Hnh 1. 6 V d v Redirect Server
10

1.2.7 Back-to-Back User Agents (B2BUA)
Mt B2BUA l mt thc th vt l (l mt server), nhn 1 request, sau
tnh ton li request v gi n i di dng 1 request mi. Cc Response phn hi
li request cng c tnh ton li v gi i theo hng ngc li. N qun l t lc
bt u cho n khi kt thc.
B2BUA c s dng cung cp nhng tnh nng nng cao, v d dch v
nc danh, n thng tin ngi gi.

11

CCH HOT NG CA GIAO THC SIP
2.1 M HNH HOT NG CA SIP
SIP hot ng da trn s trao i cc SIP Messages. SIP Message gm 2
phn l SIP Request v SIP Response. 1 SIP Request cng vi tt c SIP Response
kt hp vi n c gi l 1 transaction. Cng tng t nh HTTP, khi bn kt ni
1 web site, trnh duyt ca bn gi i 1 HTTP request bao gm a ch ca trang
web m bn mun nhn thy. Server cha website nhn c request v to ra 1
response bao gm ni dung ca trang web v hin th trn trnh duyt.
SIP requests bt u t 1 User Agent Client (UAC) n 1 User Agent Server
(UAS), SIP responses cng tng t nhng theo cch ngc li t UAS n UAC.

Hnh 2. 1 M hnh hot ng ca SIP
2.1.1 SIP Responses
1 Response l 1 m trng thi c 3 ch s. S u tin nh ngha loi
response, s u tin l 1 l provisonal response, cc s khc c gi chung l
final response.

Gi tr ngha Miu t
1xx Provisional Request nhn c. Tip tc x l request
2xx Success Request c x l thnh cng.
12

3xx Redirection Redirection c gi i khi 1 session c chuyn n 1
a ch khc.
4xx Client Error Reuqest cha c php li v khng c x l pha
server.
5xx Server Error Server b li khng x l c cc request hp l.
6xx Global Failure Request khng c x l bt c server no.
Ch x i din cho 1 con s no t 0-> 9. V d : 100, 202,301,

Khng ging nh HTTP, trong SIP, 1 request c nhiu response. Bt k
request no cng phi c t nht 1 final repsonse v c th c nhiu provisional
responses.

Hnh 2. 2 SIP Responses
2.2 SIP Requests
C 6 loi SIP Request thng dng : REGISTER, INVITE, ACK, CANCEL,
BYE, OPTIONS.
13

2.2.1 REGISTER
Register request c s dng bi 1 User Agent thc hin th tc ng k. UAC
xy dng mt Register request bao gm cc thng tin sau:
Address of Record (AOR) c biu din di dng 1 SIP URI trong trng
u To.
V d :
To : sip:john@ocean.com
To: John Wales <sip:john@ocean.com>
V tr ca ngi dng (Contact Address) c biu din di dng 1 SIP
URI trong trng u Contact.
V d:
Contact: Sip:john@214.25.100.2
Contact: John Wales < Sip:john@214.25.100.2>

V d : John Wales mun ng k thc hin trao i media. John phi
cung cp a ch v tr ca mnh v gi n registrar server ng k. a ch ca
Registrar server cng c biu din di dng SIP URI nh
sip:registrar.university.com.vn
Trong m hnh trn Registrar kt hp vi location service trn cng 1 server.
Khi ng k thnh cng 1 response phn hi m trng thi 200 OK.
S lu tr trn Location Server c thi gian tn ti nht nh, nu bn mun
c lu tr theo mun bn s dng trng tiu Expires trong Request
Register. Trng Expires c s dng trong tt c cc Request ch ra khong
thi gian m request hay message content l hp l.
V d:
Expires : 60 (k t lc ng k n 60 giy)
14

Expires: 15 Sep 2013 00:00:00 GMT (hn dng l 15 thng 9 nm 2013)

Hnh 2. 3 V d v ng k SIP

2.2.2 INVITE
Mt UAC to ra 1 INVITE Request khi to 1 session vi mt UAS.
Request ny c th c gi trc tip t UAC n UAS hay phi qua 1 hay nhiu
proxy m gip nh tuyn request ny.
Mt khi UAS nhn c request, n to ra mt vi provision response
thng bo tuyn trnh ca cuc gi. V d, reponse c m trng thi 180 ch ra ang
thng bo cho bn c gi. Nu bn c gi nhn c, 1 final response c
m trng thi 200 OK c to ra v phn hi n ngi gi.

Lu , SIP ch truyn tn hiu gia bn gi v bn c gi, cn vic trao i
media stream l nhim v ca Real-time Transport Protocol (RTP) v Sesson
Description Protocol (SDP) cc bn ng qu lo lng, RTP v SDP khng qu
kh hiu, chng ta s tm hiu n trong nhng chng sau. SIP Request s dnh km
theo SDP, SDP ny c gi l SDP offer . V d, bn mun trao i voice hay
video, bn gi v bn c gi phi c cng codecs, bn gi v bn c gi cng
15

phi cung cp a ch IP, Port trao i media stream. Codec, IP, Port c miu
t trong SDP, sau RTP c trch nhim truyn cc media stream.
V d, Alice mun thc hin voice chat n John, cc thng s c km theo trong
SDP:
Media types : voice.
Codec : Adaptive Multirate AMR, Pulse Code Modulation -PCM
IP v Port ca Alice thc hin voice : 23.17.32.16:4000.

1 final response 200 OK c phn hi nu John nhn c thnh cng, trong
response ny cng cha 1 SDP ca John, SDP ny c gi l SDP anwser bao
gm cc thng s sau:
Media types : voice
Codec : PCM (John khng c AMR)
IP v Port ca John thc hin voice l : 45.23.2.5:3000.

Hnh 2. 4 Bn tin INVITE trong SIP
Mt INVITE request cng c th c gi i khi mt cuc i thoi ang
c thc hin, trong trng hp ny bn c th xem INVITE request mi ny l 1
re-INVITE. Thng thng re-INVITE c s dng chnh sa hay b sung cc
thng s ca 1 session ang tn ti. V d, Alice ang voice chat vi John, trong lc
16

ny Alice mun John m webcam thy mt nhau. Trong trng hp ny, Alice
phi gi 1 INVITE mi trong mt cuc i thoi ang tn ti b sung vo SDP
thnh phn video. SDP thay i nh sau :
Media types : voice v video
Codecs dnh cho voice : AMR
Codecs dnh cho video : H.261
IP v Port ca Alice thc hin voice : 23.17.32.16:4000.
IP v Port ca Alice thc hin video : 23.17.32.16:4001.

2.2.3 ACK
ACK Request c s dng xc nhn rng UAC nhn c final
response t 1 INVITE request. Tc l, sau khi UAC nhn c final response, n s
t to ra 1 request khc thng bo vi UAS rng UAC nhn c final
response, request ny c gi l ACK.

Hnh 2. 5 Bn tin ACK trong SIP
17


2.2.4 CANCEL
1 UAC to ra 1 CANCEL request hy b 1 request ang ch x l. V d,
Alice gi John, v th UA ca Alice to ra 1 INVITE requset. Khi INVITE c
nhn bi UA ca John, n gi 180 provisional response v bt u thng bo n
John. John khng tip nhn cuc gi ny trong khi Alice vn ch v Alice quyt
nh gc my. gc my, Alice gi 1 CANCEL request n John. Khi
CANCEL request ny c tip nhn bi UA ca John, UA s dng chung bo v
cuc gi c hy b. UA ca John to ra 2 response phn hi CANCEL request :
200 OK response (dnh cho CANCEL request) v 487 Request terminated
response (dnh cho INVITE request).

Hnh 2. 6 Bn tin CANCEL trong SIP
BYE Request c s dng kt thc 1 media session ang c thc
hin. BYE Ch c gi bi cc UA ang tham gia trong media session. V d,
Alice v John ang thc hin voice chat vi nhau, mt lc sau Alice (hoc John)
mun kt thc ,c y gi 1 BYE Request kt thc cuc tr cuc ny.
18

2.2.5 Options
OPTIONS Request c s dng truy vn v tnh nng thc hin session
media ca 1 UA hay Server , ng thi khm ph nhng tnh nng c sn ca n.
OPTIONS c s dng khi tm hiu cc thng tin v phng thc h tr,
codec,.

Hnh 2. 7 Bn tin OPTIONS trong SIP

19

SIP MESSAGE
SIP l giao thc da trn k t. C ngha l thng tin c trao i bn trong
giao thc c m ha di dng chui hay k t. SIP messages c chia thnh
nhiu dng k t ring bit c gi l line. Mi Line l 1 chui cc k t ni lin
nhau v ngn cch vi line khc bi 2 k t Carriage Return (phm xung dng)
v Line Feed (tn hiu xung dng).
C 2 loi SIP messages : requests v responses. C hai loi u c 1 Start
line, 1 hay nhiu header fields (trng tiu ), mt empty line ch ra kt thc ca
header fields, v 1 message body.

Hnh 3. 1 SIP message
Header fields bao gm : field name v field value, ngn cch nhau bi du 2
chm v kt thc bng k t xung dng.
V d :
To : sip:john@ocean.com
Contact: Sip:john@214.25.100.2

20

Message body khng bt buc phi c, chng c s dng cha mt vi
loi thng tin khc nh thng tin SDP,
3.1 Start line
Trong SIP requests, start line c gi l request line, n cha : tn loi
request (INVITE, BYE, CANCEL,), Request-URI v protocol version (phin bn
giao thc SIP) tt c c tch bit bng khong trng. Request-URI l a ch ca
user hay server m request ny s gi n.

Tn loi request <khong trng> Request-URI <khong trng> Protocol
version
V d : INVITE sip:john@ocean.com SIP 2.0
Trong :
Loi request l INVITE
Request-URI : sip:john@ocean.com
protocol version : SIP 2.0

Trong SIP response, start line c gi l status line (dng trng thi), n bao
gm : protocol version, status code v mt cm t din t status code reason
phrase. Mi thnh phn cch nhau bng 1 k t khong trng.
Protocol-version <khong trng> status-code <khong trng> reason phrase
Vi d : SIP 2.0 180 Ringing
Trong :
Protocol-version : SIP 2.0
Status code : 180
Reason phrase : Ringing
Di y l 1 bng miu t status code v reason phrase thng thy trong SIP
21


Status
code
Reason Phrase Status
code
Reason Phrase
100 Trying 302 Moved Temporarily
180 Ringing 305 Use Proxy
181 Call is being forwarded 380 Alternative Service
182 Queued 400 Bad Request
183 Session Progress 401 Unauthorized
200 OK 402 Payment Required
300 Multiole choices 403 Forbidden
301 Moved permanently 404 Not found
405 Method not allowed 485 Ambiguous
406 Not acceptable 486 Busy here
407 Proxy authentication required 487 Request terminated
408 Request time-out 488 Not acceptable here
410 Gone 491 Request pending
413 Reques entity too large 493 undesirable
414 Request-URI too large 500 Internal Server error
415 Unsupported media type 501 Not implemented
416 Unsupported URI scheme 502 Bed gateway
420 Bad extension 503 Service unavailable
412 Extension required 504 Server time-out
423 Interval too brief 505 SIP version not supported
480 Temporarily not available 513 Message too large
481 Call leg/transaction does not
exist
600 Busy everywhere
482 Loop detected 603 Decline
483 Too many hops 604 Does not exist anywhere
484 Address incomplete 606 Not acceptable



22

3.2 Header field
Header field c bt u sau start line trong requests v responses, chng
cung cp thng tin v request hay response hoc message body m n cha. Mi
header field bao gm 1 filename v 1 field value tch bit nhau bi du : .
Fieldname:fieldvalue
Th t trc sau ca cc header field trong SIP message khng quan trng.
V d:
To : sip:john@ocean.com
Contact: Sip:john@214.25.100.2
Hay Contact trc , To sau u c c
Contact: Sip:john@214.25.100.2
To : sip:john@ocean.com
Nu 1 header field c nhiu field value khc nhau th cc field value ny
c tch bit nhau bng du phy v th t ca chng rt quan trng.
V d :
Route: sip:proxy1.ocean.com , sip:proxy2.ocean.com ,
sip:proxy3.ocean.com
Header fields c th cha nhiu tham s (parameter), mi tham s bao gm
tn tham s v gi tr tham s c tch bit nhau bng du bng =,tham s ny
cch bit tham s khc hoc field value bng du chm phy ; .
Fieldname:fieldvalue;parametername = parametervalue
V d:
From: sip:john@ocean.com;tag=34522549
V 1 s header field quan trng.
23

3.2.1 From
From header field ch ra a ch ca ngi gi biu din di dng SIP URI,
c lu gi trong location service di dng Address of Record(AOR).
V d : From: sip:john@ocean.com ,
From: John Wales <sip:john@ocean.com>

From header field cng cha tham s bt buc tag. Tham s tag ny c s
dng cho mc ch nhn bit 1 dialog ( cui phn ny chng ti s gii thch v
Dialog, Call v Transaction).
V d : From: sip:john@ocean.com;tag=34522549
3.2.2 To
To header field l 1 header field yu cu phi c trong mi SIP message,
c s dng ch ra a ch AOR ca ngi nhn.
V d: To: sip:john@ocean.com , To: John Wales <sip:john@ocean.com>
To header field cng c tham s tag nhng khng bt buc, gi tr ca tham
s tag ca To header c s dng nhn dng 1 dialog.
V d : To: sip:john@ocean.com;tag=34522549
3.2.3 Call-ID
Call-ID header field bt buc phi c trong tt c SIP requests v responses.
N l mt phn ca Dialog c s dng nhn dng Call gia 2 UA. Call-ID
c to ra bi UA di dng 1 chui kt hp vi tn host hay a ch IP ca UA
cch bit nhau bng du @.
V d : Call-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6@pc.ocean.com
3.2.4 Via
Via header field ghi li tt c a ch host hoc IP ca UA v proxy m 1
request i qua, bt buc 1 response tr v cng phi i con ng ny theo chiu
ngc li vi request. Mi khi request i qua 1 proxy s to ra 1 Via a ch proxy
24

ny vo message. Cn response sao chp tt c Via ca request, mi khi response i
qua 1 proxy s xa gi tr Via u tin trong message.
Via header field bao gm 2 trng:
Trng sent-protocol : cha giao thc trao i gi message.
V d : SIP/2.0/UDP , SIP/2.0/TCP,
Trng sent-by : cha tn host hoc a ch IP v port nu c.
Cc tham s dnh cho Via:
Received : b sung n Via nu UA hay proxy m request i qua c a ch
IP ch l a ch mng cc b. Lc ny, received s cha a ch IP ca NAT
hay firewall proxy, tc l a ch ton cu (Internet).
V d: Via: SIP/2.0/TCP 192.168.1.2; received=12.4.5.50.
Trong , 192.168.1.2 l a ch mng cc b nn received cha a ch IP
ca NAT.
Branch : c tnh ton t hm bm ca Request-URI, To, From , Call-ID v
CSeq nhn bit 1 transaction (cui phn ny chng ti s gii thch dialog,
call v transaction).
V d: Via: SIP/2.0/UDP 5.4.3.2:5060; branch= z9hG4bKl740ws
25


Hnh 3. 2 1 v Message via SIP
3.2.5 Contact
Contach header field c to ra bi UA, v cung cp mt SIP URI c th
lin lc trc tip gia cc UA dnh cho cc request tng lai nhng phi cng 1
dialog vi request u tin. iu ny c ngha, cc request tng lai trong 1 dialog
c gi trc tip n peer UA bi a ch trong Contact header field.
V d : Contact: sip:alice@5.4.3.2
26


Hnh 3. 3 1 v Message Contact SIP

3.2.6 Record-Route v Route
Record-Route header field cha danh sch cc firewall proxy di dng SIP URI
m request u tin i qua, c s dng bt buc tt c cc request trong tng
lai phi i qua cc firewall proxy c trong danh sch ny.
Firewall Proxy khng cho php lin lc trc tip cc UA hay cc thit b
c bo v bi n, bt buc s lin lc phi thng qua n. Do , trong trng hp
ny Contact header field khng th hot ng c.
i vi cc request k tip, ni dung ca Record-Route trong request u
tin s c sao chp li vo Route header field ca request k tip thuc cng 1
dialog. Route hot ng nh Record-Route, ch khc l Record-Route ghi li a ch
ca cc Firewall proxy mi khi request i qua nn ni dung ca n lun c cp
nht, cn ni dung ca Route khng bao gi c thay i trong cc request tip
theo.
27


Hnh 3. 4 Record-Route
3.2.7 CSeq
CSeq header field l 1 header field bt buc trong mi request. CSeq cha s
nguyn (gi l CSeq number) v kiu request, c s phn bit ch hoa v ch
thng. CSeq number c khi to thi im bt u 1 call v c tng thm 1
cho mi request mi thuc cng 1 dialog, ngoi tr CANCEL v ACK request.
CSeq number c s dng phn bit 1 request trc c truyn li hay 1
request mi. Kiu request trong CSeq th hin mi tng quan gia cc request v
response trong cng 1 transaction.
28


Hnh 3. 5 Hnh biu din CSeq
3.2.8 Max-Forwards
Max-Forwards header field cha 1 s nguyn dng, c s dng ch ra
s bc truyn ln nht m 1 SIP request c th i qua. Gi tr ca Max Forwards
s gim i mi khi request i qua 1 proxy. Khi proxy nhn request c Max-
Forwards l 0, request b loi b v gi 1 reponse 483 Too Many Hops n ngi
gi.
V d: Max-Forwards : 70
3.3 SIP Message Body
SIP requests v responses c th cha nhiu message body. Message body
thng l 1 SDP cha cc i tng: text, image, application, voice, video,..
Message body c chuyn i qua li gia cc UA. Cc proxy khng c
thm, xa, sa message body.

29

tng kh nng ca message body, mt s Sip header field c s dng:
Content-Type, Content-Length, Content-Encoding.
3.3.1 Content-Type
Content-Type header field c s dng ch ra kiu media trong message
body. Kiu media c nh dng type/sub-type, nu header field ny khng c
miu t th mc nh l application/sdp.

Mt s Content-Type thng dng trong Sip Request v Response :

Content-Type Use
application/sdp SDP dnh km trong INVITE, ACK hay UPDATE
request
application/xml+dialog XML dialog
application/xml+conf XML conference info
Application/cpim CPIM
text/plain Plain text
text/html HTML text
multipart/mixed Cha nhiu i tng

3.3.2 Content-Length
Content-Length c s dng ch ra s cc octet (octet l khi d liu c
kch thc 8 bit) trong message body. Content-Length:0 ch khng c message
body.
V d : Content-Length: 349
3.3.3 Content-Encoding
Content-Encoding header field c s dng ch ra lc m ha c
p dng cho message body. iu ny cho php UAS xc nh lc gii m cn
thit hiu c message body.
V d: Content-Encoding: gzip
30


Hnh 3. 6 Content-Encoding
3.4 Mi quan h gia Call, Dialog, Transaction v Message
Message : l chui k t ring l c trao i gia 1 server v 1 client. C 2
loi message : Request v Response.
Transaction : xy ra gia client v server, bao gm tt c cc message t
request u tin c gi t client cho n final response c gi t server.
Nu request l INVITE v final request khng phi 2xx, th ACK cng thuc
cng 1 transaction. Ngc li, ACK dnh cho 2xx response l 1 transaction
tch bit.
Dialog : l mi quan h peer-to-peer gia 2 UA tn ti 1 thi gian no . 1
dialog c nhn dng bi Call-ID, tag ca From header field (trong request)
v tag ca To header field (trong response).
Call : bao gm tt c Dialog c lin quan. 1 call c th gi l 1 session.
31


Hnh 3. 7 Mi quan h gia Call, Dialog, Transaction v Message

32


CU TRC GIAO THC SIP
Giao thc SIP hot ng di dng mt tp hp cc bc x l c lp ring
l nhau, nhng bc x l ny c gi l Layer (lp). Chng ta tng bit qua
mt vi cc giao thc ni ting cng hot ng theo m hnh Layer nh b giao
thc TCP/IP. Tuy nhin, SIP cng ch l 1 giao thc nm trong b giao thc
TCP/IP, trnh s nhm ln vi cc Layer ca TCP/IP nn cc Layer ca SIP
chng ta tm t l sublayer (lp con) , v d Transport layer ca SIP thnh
Transport sublayer phn bit Transport layer ca TCP/IP v Transport layer ca
SIP.
Cc Sublayer ca giao thc SIP:
SIP Syntax and encoding : l layer thp nht c nh ngha trong SIP. N
l mt tp cc quy tc m nh ngha v s nh dng v cu trc ca mi
SIP Message. Ni n gin l n cho cc thc th hiu v bin dch cc SIP
message. V d, khi UA nhn c 1 SIP Message, th UA cn phi bit s
khc nhau gia cc loi message, cc tham s bt u v kt thc ca mi
header,... l nhim v ca Syntax and encodeing sublayer.
SIP transport sublayer: n nh ngha pha client gi request v nhn
response nh th no v pha server nhn request v gi response nh th
no thng qua mng. Tt c cc thc th SIP u phi c transport sublayer.
N c hai thnh phn: pha client gi l client transport, v pha server gi l
server transport.
SIP transaction sublayer: l b phn ch yu ca SIP. 1 Transaction c
nh ngha l mt request c gi t client n server v tt c cc reponse
c kt hp vi request ny. Nhim v ca transaction sublayer l qun l
s truyn li ca tt c cc response lin quan n request, v thi gian ch
i. Ch UA v stateful porxy (chng ta s tm hiu trong phn sau) c
transaction layer. N c 2 thnh phn: pha client gi l client transaction v
pha server gi l server transaction.
33

SIP core sublayer: l tt c cc thc th ca SIP : UAC, UAS, registrar,
stateful proxy (chng ta s tm hiu trong phn sau), stateless proxy.

34

XY DNG SIP STACK DNG JAIN SIP
5.1 JAIN SIP L G ?
JAIN SIP l Java API Specification dnh pht trin SIP trong mi trng
J2SE. JAIN SIP API l low-level API v cung cp cho ngi pht trin ng dng
cc tnh nng sau:
Xy dng v phn tch SIP Message.
Gi v nhn SIP Message transaction sublayer.
Gi v nhn SIP Message transport sublayer.
Ngoi ra, JAIN SIP API cng cung cp tnh nng cho SIP Dialog lm cho
ngi vit ng dng d dng truy cp v x l SIP Dialog.
5.2 Cc bc xy dng 1 Sip Stack
5.2.1 Cc phn mm v gi ph thuc
Trnh g ri dng thc hin chng trnh l Netbeans phin bn IDE 8.0
C th download Netbeans ti a ch: https://netbeans.org/downloads/
JAIN SIP m ngun m
Link downloand: https://jsip.java.net/
5.2.2 Sip Client
Sip Client c cc tnh nng sau:
Kt ni 2 peer (my tnh, phone,..) thng qua mng Internet.
Thc hin voice chat gia 2 peer.
5.2.2.1 Giao din phn mm Sip Client

35


Hnh 5. 1 Giao din Sip Client
Sip port : port thc hin kt ni dnh cho giao thc SIP.
Voice Port : Port thc hin kt ni trao i Audio.
Button Connect : thc hin khi ng sn sng kt ni.
Button Disconnect : ngt kt ni mng.
Label Initialize : hin th thng tin a ch IP v Port ca peer. a ch ny
dng kt ni 2 peer.
Lable Status : hin th trng thi kt ni.
Destination : l a ch IP m peer gi INVITE Request.
Button Yes :
pha client gi INVITE request Client.
pha Server chp nhn thc hin voice chat.
Button No:
Pha client hy b khi ang gi INVITE, hoc kt thc voice chat.
Pha server khng chp nhn thc hin voice chat, hoc kt thc vic
ang thc hin voice chat.
Tracer : hin th ni dung Request v Response.
36

5.2.2.2 Cc trng thi
Chng ta nh ngha mt s trng thi th hin qu trnh chuyn tip t
trng thi ny sang trng thi khc. V d, khi peer ang giao on sn sng ch
kt ni - chng ta inh ngha trng thi ny IDLE. Khi peer ang trng thi IDLE
client bm button YES gi INVITE , th client t trng thi IDLE chuyn sang
trng thi WAIT-PRO, cn Server chuyn sang trng thi RINGING,
Cc trng thi : IDLE, WAIT_PROV, WAIT_FINAL, ,
WAIT_ACK , RINGING ,ESTABLISHED .


37


Trng thi nh ngha Vo trng thi Chuyn sang trng
thi
IDLE HelloPhone s i
vo trng thi ny
khi user bm vo
button Connect,
th hin trng thi
sn sng.
-client hoc server
bm vo button
No kt thc
cuc gi.
- Client bm
button No hy b
s ch i phn
hi t server.
-client bm button
YES, client chuyn
sang trng thi
WAIT_PROV.
-Server nhn c
INVITE , chuyn sang
trng thi RINGING.
WAIT_PROV HelloPhone pha
client i vo trng
thi ny khi client
gi 1 INVITE v
ch chuyn sang
trng thi khc khi
client nhn c
Provisonal hay
Final Response
Client bm button
YES khi ang
trng thi IDLE.
-Client nhn c
Provisonal Response,
chuyn sang trng thi
WAIT_FINAL.
-Client nhn c
Final Response, client
gi ACK request,
chuyn sang trng thi
ESTABLISHED v
bt u truyn v nhn
media.
WAIT_FINAL HelloPhone pha
client i vo trng
thi ny, khi client
nhn 1 Provisonal
response v c
chuyn trng thi
Client ang
trng thi
WAIT_PROV th
nhn c 1
Provisional
Response.
-Client nhn c
Final Response (200
OK), client gi ACK
request, chuyn sang
trng thi
ESTABLISHED v
38

khi client nhn
c Final
Response
bt u truyn v nhn
media.
- Server khng chp
nhn cuc gi, to ra
486 Busy response.
Client chuyn sang
trng thi IDLE.
-Client bm button NO
hy b cuc gi v
CANCEL request
c to ra.
HelloPhone tr v
trng thi IDLE
ESTABLISHED Client v Server
phi cng trng
thi ny thc
hin cuc gi.
- Client nhn c
Final Response v
gi i ACK
Message.
-Server nhn c
ACK Message.
- client hoc server kt
thc cuc gi. Cient v
Server tr v trng thi
IDLE.
RINGING Server ang
trng thi IDLE,
nhn c 1
INVITE request.
Server gi i 180
Provisional
Response. Lu ,
trong trng thi
ny Server cha
chp nhn cuc
Server nhn c
1 INVITE v gi
i Provisonal
Response.
-Server chp nhn
cuc gi v to ra 200
OK response. Server
chuyn sang trng thi
WAIT_ACK.
- Server khng chp
nhn cuc gi v to ra
486 final response.
Server chyn sang
39

gi. trng thi IDLE.
-Server nhn c
CANCEL reuqest v
gi i 487 response.
Server chuyn sang
trng thi IDLE.
WAIT_ACK Server ang
trng thi
RINGING v i
ACK message
chuyn sang trng
thi
ESTABLISTED
Server ang
trng thi
RINGING v chp
nhn cuc gi, to
ra 200 OK
response.
- Server nhn c
ACK request v
chuyn sang trng thi
ESTABLISHED.





5.2.3 Sip Proxy
5.2.3.1 Giao din phn mm

40


Hnh 5. 2 Giao din Sip Proxy
5.2.3.2 Tnh nng
Xy dng 1 Sip proxy server n gin , proxy ny c cc tnh nng sau:
Bao gm Sip registrar v location service.
Registrar kh n gin, nhim v nhn REGISTER request ng k v
thng tin c cp nht vo location service.
Ch thc hin tnh nng trao i ring l gia hai peer.
Intant Messaging n gin c tnh nng chat bng k t gia 2 peer bi
s dng MESSAGE request.
Tnh nng gi in gia 2 client.

You might also like