B GIÁO DC VÀ ÀO TO
TRNG I HC M THÀNH PH H CHÍ MINH
KHOA CÔNG NGH THÔNG T
IN
o0o
KHÓA LUN TT NGHIP
NGÀNH: KHOA HC MÁY TÍNH
Xây Dng ng Dng "Lp Hc T Xa" Vi
Giao Thc SIP
Nhóm SV thc hin : Nguyn Hu Nguyên Khoa – 10701062
Châu Bi Lng - 10761242
Chuyên ngành: Mng máy tính
GVHD : Ths. Hunh Minh Quang
Thành ph H Chí Minh – nm 2011
2
Li Cm n
Trc ht, chúng em xin cm n thy Hunh Minh Quang đã gii thiu công ngh, trc tip
hng dn và cung cp tài liu giúp chúng em hoàn thành khóa lun tt nghip.
Chúng em xin chân thành cm n khoa công ngh thông tin, trng đi hc M thành ph
H Chí Minh đã to điu kin tt cho chúng em thc hin khóa lun này, cùng quý thy cô trong
khoa đã tn tình ging dy, trang b cho chúng em nhng kin thc quý báu trong nhng nm hc
va qua.
Cui cùng, xin cm n nhng bn hc đã ng h, giúp đ và đóng góp ý kin cho chúng tôi
trong thi gian hc tp và thc hin khóa lun.
Mc dù chúng em đã c gng thc hin đ án trong kh nng và phm vi cho phép nhng
chc chn s không th tránh khi nhng thiu sót. Chúng em kính mong nhn đc s cm
thông và tn tình ch bo ca quý thy cô.
Nhóm sinh viên thc hin
Nguyn Hu Nguyên Khoa - Châu Bi Lng
Thành ph H Chí Minh, ngày 20 tháng 09 nm 2011
3
Nhn xét ca ging viên hng dn
4
Nhn xét ca ging viên phn bin
5
MC LC
DANH MC BNG 7
DANH MC HÌNH 8
PHN I: TNG QUAN 11
1. Gii thiu 12
2. Phm vi và mc tiêu ca khóa lun 12
3. Ni dung khóa lun 12
PHN II: C S LÝ THUYT 14
CHNG 1: TNG QUAN V SIP 15
1. Khái nim SIP 15
1.1. SIP: 15
1.2. Ti sao dùng SIP? 15
1.3. a ch SIP: 16
2. Chc nng: 17
2.1. Khi to, hiu chnh và kt thúc phiên: 17
2.2. Xác đnh v trí ca ngi dùng: 17
3. Các thc th: 18
3.1. User Agent: 18
3.2. Registrar: 19
3.3. Proxy: 20
3.4. Back-to-back User Agent: 21
CHNG 2: PHNG THC HOT NG SIP 23
1. SIP Message: 23
2. SIP request: 23
2.1. Các Sip Request c bn : 24
2.2. Các Sip Request m rng 28
3. SIP response: 29
4. SIP Header: 30
CHNG 3: CU TRÚC SIP
32
1. Tng quan: 32
2. SIP Core sublayer: 33
2.1. Transaction sublayer: 34
2.2. Transport sublayer: 35
CHNG 4: SESSION DESCRIPTION PROTOCOL 37
1. Ngun gc: 37
2. Tng quan: 37
3. Các dòng mô t quan trng: 39
CHNG 5: GIAO DIN JAIN SIP 41
1. Khái nim Jain SIP: 41
2. Kin trúc Jain SIP: 41
2.1. Peer-provider pattern : 41
2.2. Factory pattern: 43
2.3. Event-listener pattern : 47
6
CHNG 6: JAVA MEDIA FRAMEWORK API 49
1. Tng quan 49
2. Lung d liu đa phng tin: 50
3. Các đi tng trong JMF 50
3.1. Manager: 50
3.2. Data Source 51
3.3. Player: 51
3.4. Processor: 52
3.5. Data Sink: 53
3.6. SessionManager: 53
4. Kin trúc JMF: 54
4.1. Mô hình thi gian (Time Model): 54
4.2. Mô hình s kin (Event Model) 56
4.3. Mô hình d liu (Data Model) 56
PHN III: THIT K NG DNG 59
1. Gii thiu: 60
2. Chc nng: 60
3. Website: 61
3.1. Mô hình ý nim: 61
3.2. S đ lp: 61
3.3. Chi tit website: 63
4. ng dng: 83
4.1. Hot đng Client-Server: 83
4.2. Client: 90
4.3. Server: 105
PHN IV: TNG KT 117
1. Nhn xét: 117
2. Kt qu hin thc ng dng: 118
3. Hn ch : 118
4. Hng phát trin: 118
TÀI LIU THAM KHO 118
7
DANH MC BNG
Bng 1.1: So sánh gia SIP và H.323 16
Bng 2.1 Phân loi các tr li 30
Bng 4.1: Các dòng mô t cp phiên 38
Bng 4.2: Các dòng mô t cp thi gian 38
Bng 4.3: Các dòng mô t cp media 39
8
DANH MC HÌNH
Mt s hình nh minh ha đc trích t [3].
Hình 1.1: User Agent 19
Hình 1.2: Hot đng ca Registrar và Location Service 20
Hình 1.3: Back-to-back user agent 22
Hình 2.1: Cu trúc thông đip SIP 23
Hình 2.2: Hot đng đng ký 25
Hình 2.3: Hot đng khi to phiên truyn thông 26
Hình 2.4: Hy li mi 27
Hình 2.5: Kt thúc phiên 28
Hình 3.1: Mô hình theo lp ca SIP 33
Hình 3.2: Các SIP core sublayer 34
Hình 3.3: Hot đng gia các lp trong UA 35
Hình 5.1: Mô hình phân lp trong giao thc SIP 41
Hình 5.2: Mô hình peer-provider trong JAIN SIP 42
Hình 5.3: S dng mô hình Factory 44
Hình 5.4: Mô hình thông đip SIP trong JAIN SIP 44
Hình 5.5: Mô hình Address trong JAIN SIP 46
Hình 5.6: Mô hình Header trong JAIN SIP 47
Hình 5.7: Mô hình s kin 47
Hình 5.8: i tng s kin trong JAIN SIP 48
Hình 6.1: Mô hình x lý d liu ca JMF 49
Hình 6.2: Data source các giai đon khác nhau 51
Hình 6.3: Player trong JMF 51
Hình 6.4: Trng thái ca Player 52
Hình 6.5: Processor trong JMF 52
Hình 6.6: Trng thái ca Processor 53
Hình 6.7: Datasink trong JMF 53
Hình 6.8: Session Manager trong JMF 54
Hình 6.9: JMF time model 55
Hình 6.10: JMF event model 56
Hình 6.11: JMF data model 57
Hình 6.12: nh dng media trong JMF 58
Hình III.1: Mô hình ý nim website ILearning 61
Hình III.2: S đ thit k lp website Ilearning 62
9
Hình III.3: Trang đng nhp 63
Hình III.4: Lu đ x lý đng nhp 64
Hình III.5: X lý đng nhp 65
Hình III.6: Trang qun lý thông tin cá nhân 65
Hình III.7: Lu đ cp nht thông tin user 66
Hình III.8: X lý cp nht thông tin 67
Hình III.9: Lu đ x lý đi mt khu 68
Hình III.10: X lý đi mt khu 69
Hình III.11: Trang qun lý lp hc đã đng ký 70
Hình III.12: Lu đ x lý tìm kim 70
Hình III.13: X lý tìm ki
m lp hc đã đng ký 71
Hình III.14: X lý xóa lp đã đng ký 71
Hình III.15: Trang thông tin lp hc 72
Hình III.16: Trang đng ký lp hc 73
Hình III.17: Lu đ x lý đng ký lp hc 74
Hình III.18: X lý đng ký lp hc 75
Hình III.19: Trang lch ging dy 76
Hình III.20: Trang chi tit lp hc 76
Hình III.21: Trang qun lý user 77
Hình III.22: X lý tìm kim user 78
Hình III.23: X lý cp nht quyn user 78
Hình III.24: X lý xóa user 79
Hình III.25: Trang qun lý lp hc 79
Hình III.26: X lý xóa lp hc 80
Hình III.27: Trang to lp hc 81
Hình III.28: Lu đ x lý to lp hc 82
Hình III.29: X lý to lp hc 83
Hình III.30: Hot đng đng nhp 84
Hình III.31: Hot đng đng xut 85
Hình III.32: Hot đng gi li mi thit lp phiên 86
Hình III.33: Hot đng tham gia vào lp hc 87
Hình III.34: Hot đng gi thông
đip chat 88
Hình III.35: Hot đng gi thông đip chat trong lp 88
Hình III.36: Hot đng ri khi lp hc 89
Hình III.37: B máy trng thái ca ng dng phía client 90
Hình III.38: Mô hình s dng ng dng ILearning 91
10
Hình III.39: Lu đ x lý đng nhp 92
Hình III.40: S đ lp x lý đng nhp 93
Hình III.41: Lu đ x lý thay đi trng thái 93
Hình III.42: Lu đ x lý thêm bn 94
Hình III.43: Lu đ x lý xóa bn 95
Hình III.44: Lu đ x lý chat text 96
Hình III.45: S đ lp x lý chat text 96
Hình III.46: Lu đ x lý chat voice/video 97
Hình III.47: S đ lp x lý chat voice/video 98
Hình III.48: Lu
đ x lý tham gia lp hc 99
Hình III.49: S đ lp x lý tham gia lp hc 100
Hình III.50: Lu đ x lý ri khi lp hc 100
Hình III.51: S đ lp x lý ri khi lp hc 101
Hình III.52: Lu đ x lý ging viên bt đu lp hc 102
Hình III.53: S đ lp x lý ging vien bt đu lp hc 102
Hình III.54: Lu đ x
lý ging viên kt thúc lp hc 103
Hình III.55: S đ lp x lý ging viên kt thúc lp hc 103
Hình III.56: Lu đ x lý chia s tp tin 104
Hình III.57: Lu đ x lý thông đip gi đn server 105
Hình III.58: Lu đ x lý thông đip REGISTER 106
Hình III.59: S đ lp x lý thông đip REGISTER khi user đng nhp 107
Hình III.60: S đ lp x lý thông đip REGISTER khi user đng xu
t 108
Hình III.61: Lu đ x lý thông đip INVITE 109
Hình III.62: S đ lp x lý INVITE gi đn mt user khác 110
Hình III.63: S đ lp x lý INVITE vào lp hc 111
Hình III.64: Lu đ x lý bt đu hc 112
Hình III.65: S đ lp x lý bt đu hc 112
Hình III.66: Lu đ x lý thông đip MESSAGE 113
Hình III.67: S đ lp x lý thông đip MESSAGE 114
Hình III.68: Lu đ x lý thông đip BYE 115
Hình III.69: S đ lp x lý thông đip BYE 116
11
PHN I: TNG QUAN
12
1. Gii thiu
Ngày nay, chúng ta đang sng trong mt th gii mà mng Internet và email phát trin rng
khp. Và hai giao thc mng đc s dng ph bin là: Giao thc truyn ti siêu vn bn
(Hypertext Transfer Protocol) và giao thc truyn ti th đn gin (Simple Mail Transfer
Protocol). Tuy nhiên, nhu cu v truyn thông đa phng tin, nhu cu liên lc trc tip vi mi
ngi ngày càng cao, dn đn s cn thit phi có mt giao thc đ đáp ng các yêu cu trên. Và
giao thc khi to phiên (Session Initiation Protocol - SIP) đã quyt đc vn đ.
2. Phm vi và mc tiêu ca khóa lun
Giao thc SIP xut hin vào cui nhng nm 1990 và nhanh chóng phát trin. SIP đc cài
đt trong các phn cng, ng dng, đin thoi thông minh và các dch v trc tuyn. Tuy nhiên,
SIP không phi là gii pháp cho mi vn đ giao tip truyn thông. Cho nên đ có th trin khai,
cài đt mng li dùng SIP trc tiên cn hiu đc bn cht ca giao thc. Khóa lun tp trung
vào tìm hiu và phân tích giao thc SIP đ làm rõ các khái nim nn tng, hot đng, nguyên lý
và chc nng ca SIP.
Ngoài ra, khóa lun còn đ cp đn mt vài giao thc thng đc s dng cùng vi giao
thc SIP.
Trên c s nhn thc đc bn cht, hot đng ca giao thc, chúng em s xây dng ng
dng lp hc t xa có cài đt giao thc SIP đ nm vng và hiu rõ hn các vn đ ca giao thc.
3. Ni dung khóa lun
Khóa lun gm 4 phn:
- Phn I: Tng quan. Gii thiu v đ tài, phm vi và mc tiêu ca khóa lun.
- Phn II: C s lý thuyt. Tìm hiu các vn đ ca giao thc SIP và mt s giao thc liên
quan. Phn này gm 6 chng:
o Chng 1: Tng quan SIP. Gii thiu v khái nim, các thc th và chc nng ca
giao thc SIP.
o Chng 2: Phng thc hot đng. Chng này đi sâu vào tìm hiu các thông
đip, các header và phân tích mt s kch bn đ hiu rõ hot đng ca giao thc.
13
o Chng 3: Cu trúc. Phân tích mô hình ca giao thc SIP, các lp trong mô hình
ca giao thc.
o Chng 4: Session Description Protocol. Gii thiu v giao thc mô t phiên.
o Chng 5: JAIN SIP API. Gii thiu tng quan v giao din lp trình ng dng
JAIN SIP.
o Chng 6: Java Media Framework API. Gii thiu v giao din lp trình ng dng
JMF, đc dùng đ xây dng các chc nng đa phng tin.
- Phn III: Thit k, xây dng h thng ng dng lp hc t xa.
- Phn IV: Tng kt. Tng kt, đánh giá và đ ngh các hng nghiên cu, phát trin trong
tng lai.
14
PHN II: C S LÝ THUYT
15
CHNG 1: TNG QUAN V SIP
1. Khái nim SIP
1.1. SIP
Giao thc khi to phiên - Session Initiation Protocol (SIP) là giao thc báo hiu
(signaling protocol) đc đnh ngha bi IETF (Internet Engineering Task Force) và đc t
trong [8]. SIP đc s dng rng rãi đ thit lp và điu khin các phiên truyn qua giao thc
Internet (IP). Mt phiên truyn thông là s trao đi d liu gia các bên tham gia phiên
truyn thông [8]. SIP có th đc s dng đ to, sa đi và kt thúc các phiên truyn thông
đn bá (unicast) hoc qung bá (multicast) tng ng vi cuc gi đim ti đim và cuc gi
đa đim.
SIP là giao thc lp ng dng đc thit k đ làm vic đc lp vi tng transport bên
di nên nó có th chy trên các giao thc TCP, UDP, hoc SCTP.
SIP là giao thc dng ch và s dng nhiu thành phn tng t nh trong giao thc
HTTP và SMTP.
SIP đc dùng trong giao tip ngang hàng (peer-to-peer) tuy nhiên SIP s dng mô hình
client-server tng t giao thc HTTP. SIP client to và gi các yêu cu đn SIP server. SIP
server to và gi các tr li tng ng cho client.
Giao thc báo hiu không phi là giao thc truyn ti ni dung truyn thông nên SIP
đc dùng kt hp vi mt s giao thc lp ng dng khác đ cung cp các dch v khác
nhau nh: Real-time Transport Protocol (RTP), Real-Time Streaming Protocol (RTSP),
Media Gateway Control Protocol (MEGACO), và Session Description Protocol (SDP), v.v
Tuy nhiên chc nng và hot đng c bn ca SIP không ph thuc vào các giao thc trên
[8].
1.2. Ti sao dùng SIP?
Trong thc t đã có mt giao thc có chc nng khi to phiên tng t giao thc SIP
và đc ph bin khá rng rãi là giao thc H.323. H.323 ni bt v chc nng thoi qua mng
(VOIP) và hi ngh video. Tuy nhiên, SIP vn có nhng u đim vt tri so vi H.323 và
16
các ng dng đang dn chuyn sang s dng SIP. Bng 1.1 so sánh gia giao thc SIP và
H323.
SIP H.323
Phát trin bi IETF Phát trin bi ITU
Tính đn gin và m Phc tp và cng nhc
S dng các đi tng mng có sn nh URL,
MIME, DNS, v.v…
T đc t tt c các đi tng nó s dng k c
b codec cho media và vic truyn gói RTP.
nh dng ch đc đc nh dng chui nh phân
tr nh tr có th đn 7-8 giây
CPU x lý thông đip nh hn CPU x lý nhiu
X lý nhiu phiên hn X lý ít phiên hn
H tr điu khin bên th 3 (Third-party
Control)
Không h tr
Thut toán chng lp hiu qu hn Thut toán chng lp đn gin trong phiên bn
3. Phiên bn 1 và 2 không h tr.
Bng 1.1: So sánh gia SIP và H.323
1.3. a ch SIP:
Trong kin trúc SIP, user thng đc xác đnh bng cách s dng mt đa ch SIP gi
là SIP URI (Universal Resource Identifier). SIP URI xác đnh các ngun tài nguyên truyn
thông.
Ví d: sip:
Mt SIP URI bt đu bng cm “sip:” hoc “sips:” và theo sau là 2 thành phn đc
ngn cách bi du ‘@’. Phn trc du ‘@’, là phn ngi s dng tùy chn, trong đó xác
đnh tài nguyên nào đó ti máy ch đang làm vic. Phn còn li là phn host và port, xác đnh
ngun cung cp tài nguyên. Có th là mt tên min đy đ (FQDN) hoc mt đa ch IP và
17
port. Ngoài ra, SIP URI có th cha mt s tham s có nh hng đn các yêu cu. Các tham
s đc thêm vào sau phn host và port, và đc ngn cách bi du chm phy. C th mt
SIP URI có cu trúc nh sau:
sip:user:password@host:port;uri-parameters?headers
Phn thông tin user và password có th trng khi host đích không có user hoc chính
host đó là tài nguyên đc xác đnh và khi đó cng không có dâu “@”. Password là mt khu
ca user tng ng. Tuy nhiên, không nên s dng mt khu trong SIP URI bi vì password
s xut hin di dng vn bn đc đc do đó s là mt l hng bo mt [8]. Headers là các
header gi kèm theo yêu cu. c phân cách vi phn host và port bng du “?”
SIP có th s dng các URI khác đ xác đnh tài nguyên là mt đc đim mnh m ca
SIP bi vì nó s cho phép kt hp các dch v Internet khác nh email hay web, vi các dch
v truyn thông SIP.
2. Chc nng:
Nh đã nói, SIP là giao thc truyn tín hiu và chc nng ca SIP tp trung vào hai khía
cnh: Mt là, các vn đ v điu khin phiên nh khi to, hiu chnh và kt thúc phiên. Hai là,
vn đ v xác đnh v trí ca ngi dùng.
2.1. Khi to, hiu chnh và kt thúc phiên:
Nh tên gi ca giao thc – Giao thc khi to phiên – chc nng chính ca giao thc
là khi to các phiên truyn thông đa phng tin. Ngi dùng có th gi yêu cu mi tham
gia phiên truyn thông và ngc li nhn li mi bng cách gi tr li chp nhn.
SIP còn đc s dng đ hiu chnh, thay đi các tham s ca phiên đang hot đng.
ví d, đ thêm mt thành phn media mi vào trong phiên.
Cui cùng là kt thúc phiên. Ngi dùng gi yêu cu kt thúc phiên và xác nhn kt
thúc phiên bng tr li chp nhn.
2.2. Xác đnh v trí ca ngi dùng:
Trong mng IP, các gói tin đc đnh tuyn nh vào đa ch IP. Tuy nhiên, ngi s
dng SIP không bit đa ch IP ca đi phng mà ch bit đa ch public di dng SIP
URI “lun lý”. Ngi s dng SIP có th dùng ng dng SIP trên nhiu loi thit b khác
nhau nh PC, laptop , hoc đin thoi di đng,… Mi thit b có mt đa ch IP khác nhau.
18
Do đó, cn có mt h thng có th ln theo đa ch IP ca ngi dùng, ánh x nó vào đa ch
public, và lu tr thông tin đó vào mt bng. Trong quá trình thit lp phiên, cn truy vn
đn bng thông tin đó đ ly đa ch IP đúng đ gi các gói tin đn.
Vi mc đích đó, SIP đnh ngha mt th tc gi là th tc đng kí. Mi đu cui
mun nhn các cuc gi đa phng tin phi đng kí trc. Ngha là, nó phi gi đa ch IP
hin thi và đa ch public đn SIP server (còn gi là Registrar) ca nó và server này s cp
nht đa ch vào bng c s d liu.
3. Các thc th:
SIP network bao gm bn loi thc th SIP lun lí. Mi thc th
có các chc nng c th và tham gia vào phiên truyn thông SIP nh mt client (gi yêu cu),
mt server (đáp ng yêu cu), hoc va là client va là server. Mt thit b vt lý
có th có mt hoc nhiu chc nng ca thc th SIP. Ví d, mt
server làm vic nh mt proxy server cng có th có chc nng nh mt Registrar. Các thc th
đó là:
− User Agent (UA)
− Registrar
− Proxy
− Back-to-Back User Agents (B2BUA)
3.1. User Agent:
Trong SIP, User Agent (UA) là thc th đu cui. UA to và hy các phiên làm vic
bng cách trao đi yêu cu và trà li. Mt SIP UA có hai thành phn: mt User Agent
Client (UAC) và mt User Agent Server (UAS). UAC có trách nhim to yêu cu SIP và
nhn các tr li tng ng. UAS có trách nhim nhn yêu cu và to ra các tr li thích
hp.
19
Hình 1.1: User Agent
3.2. Registrar:
Registar là server nhn yêu cu đng ký t các UA. SIP UA gi v trí hin ti ca
mình cùng vi đa ch public đn registrar server. Mt UA phi đc đng ký trc khi nó
có th nhn cuc gi đa phng tin. Khi Registar nhn yêu cu đng ký và lu các thông
tin nhn đc vào c s d liu đc gi là Location Service.
Location Service:
− Location Service không phi là mt thc th SIP. Location Service là mt c
s d liu cha danh sách các ánh x gia Address of Record (AORs), th
hin đa ch SIP public và Contact Address (i din cho v trí user). C
AORs và Contact Address đc th hin di dng SIP URI. Khi registrar
nhn đc yêu cu đng ký t mt UA, nó cp nht Location Service vi các
thông tin nhn đc.
− Location Service này cng đc truy vn bi các proxy server ca mt min
đ có đc thông tin v các đa ch có th có ca ngi s dng.
− Trong nhiu hin thc cài đt, Location Service và SIP server đc đt trên
cùng mt h thng.
20
Hình 1.2: Hot đng ca Registrar và Location Service
3.3. Proxy:
Proxy là mt thc th trung gian va hot đng nh client va hot đng nh server.
Nó ch yu đóng vai trò nh mt router, công vic ca nó là gi các yêu cu đn đích hoc
đn các proxy khác gn đích hn. Proxy cng làm nhim v áp đt chính sách (Ví d, cho
phép ai đc thc hin cuc gi). Proxy thông dch và thay đi mt s phn ca yêu cu
trc khi forward nu cn thit.
Có th có nhiu Proxy gia UAC và UAS đ đnh tuyn các thông đip SIP. Phân loi
theo chc nng thì có hai loi SIP Proxy là outbound proxy và inbound proxy:
− Outbound Proxy: giúp các UA đnh tuyn các yêu cu đi ra. Các UA thng đc
cu hình đ đnh tuyn tt c các yêu cu đn outbound proxy.
− Inbound Proxy: là mt proxy server x lý các yêu cu đi vào min mà nó qun lý.
C bn là nó giúp đnh tuyn các yêu cu vào nó đn các UA tng ng trong
min. Khi mt inbound proxy nhn mt yêu cu đn user nm trong min nó qun
lý, proxy s truy vn Location Service, ly đa ch ca UA đó và forward yêu cu
đn đa ch đó.
21
Outbound proxy và inbound proxy có th đc đt trên mt h thng cùng vi
registrar. Và h thng đó có th gi là SIP server. Phân loi theo hot đng thì có hai loi
SIP Proxy là stateless proxy và stateful proxy:
− Stateless Proxy: nhn thông đip, và x lý da trên các thông tin trong thông đip,
sau đó forward tip. Nó không lu gi bt kì trng thái hay thông tin nào v thông
đip, do đó stateless proxy có th làm vic rt nhanh.
− Stateful proxy: ngc li vi stateless proxy, nó lu gi thông tin v thông đip
nhn đc và liên kt vi các tr li tng ng. Có các chc nng: kt ni TCP,
truyn phát đa đim multicast, và forking.
3.4. Back-to-back User Agent:
Theo [3], B2BUA là mt thc th lun lý mà hot đng nh mt UA đi vi c hai
đu ca phiên. Nó có nhim v điu khin vic truyn tín hiu SIP gia hai đu t lúc khi
to đn lúc kt thúc. Nó nhn yêu cu và x lý nh mt UAS. quyt đnh nên tr li yêu
cu nh th nào, nó đóng vai trò là mt UAC và to các yêu cu. Không ging proxy server,
nó duy trì trng cái phiên và tham gia vào tt c các yêu cu đc gi trong phiên.
Mt B2BUA đc cu thành bi hai UA đc liên kt vi nhau qua mt h lun lí.
Nó đc s dng nh server đ cung cp các chc nng nâng cao bng cách điu khin tín
hiu trong cuc gi hoc các thc th trong mng.
B2BUA có th hot đng hai ch đ: đnh tuyn hoc khi to. ch đ đnh tuyn,
nó nhn mt yêu cu khi to phiên, áp đt mt s logic và to mt cuc gi mi.
ch đ khi to, nó khi to hai cuc gi khác nhau và duy trì liên kt tín hiu gia
chúng.
22
Hình 1.3: Back-to-back user agent
23
CHNG 2: PHNG THC HOT NG SIP
SIP hot đng da trên vic trao đi các thông đip (message). Thông qua vic trao đi
Message, client và server thit lp, chnh sa và kt thúc các phiên làm vic.
1. SIP Message:
Mt SIP Message có th là mt Request t client gi đn server, hoc là Respones t server
cho client. Mi SIP Message bt đu bng mt dòng bt đu, tip đó là mt hoc nhiu vùng
header, ngoài ra còn mt dòng trng báo hiu kt thúc ca các vùng header, và cui cùng có th
có Message body.
Ví d sau là thông đip đng ký client gi cho server:
Hình 2.1: Cu trúc thông đip SIP
2. SIP request:
Trong thông đip yêu cu, dòng bt đu gi là dòng yêu cu.
Cú pháp:
Method<SP>Request-URI<SP>Protocol-version
− Method: tên thông đip yêu cu. Ban đu, trong SIP quy đnh 6 loi methods gm :
REGISTER, INVITE, BYE, CANCEL, ACK, OPTIONS. Nhng sau đó RFCs m rng
Dòng bt đu
Các header
Dòng trng
Ni dung
Tên yêu cu Request-URI Phiên bn SIP
24
thêm các loi method sau : REFER, SUBSCRIBE, NOTIFY, PUBLISH, MESSAGE,
UPDATE, INFO và PRACK.
− Request-URI: đa ch URI ca ni đn. Là thành phn quan trng trong đnh tuyn thông
đip. C th, nó chính là đa ch đích ca thông đip, c đnh không thay đi khi đi qua
các thc th trung gian trên mng và ch thay đi sau khi truy vn Location Service đ có
đc đa ch chính xác hn.
− Protocol version: Phiên bn ca giao thc SIP, mc đnh là 2.0
2.1. Các Sip Request c bn :
a. REGISTER:
UA gi REGISTER đ thc hin th tc đng kí vi Registrar. UA đng kí đa ch
public cùng vi đa ch IP, đu di dng SIP URI cho Registrar. Các đa ch này đc
lu trong Location Service.
Tùy thuc vào Contact header và Expire header mà Registrar x lý th tc đng kí.
Nu không có tham s expires trong request line và không có Expire header thì SIP URI
s ht hn trong 1 gi. Nu có tham s expire thì không có Expire header và ngc li.
Các header khác:
− Request-URI cha đa ch ca registrar.
− To header cha Address of Record ca user.
− From header cha SIP URI ca ngi gi yêu cu, thng là ging vi To
header.
− Call-ID header nên ging nhau vi mi th tc đng kí.
Các header khác nhau đc s dng khác nhau tùy tng loi request
Nu th tc đng kí thành công registrar s tr li bng thông đip 200 OK. Ngc
li gi tr li chuyn hng 3xx hoc tht bi 4xx.
25
Hình 2.2: Hot đng đng ký
b. INVITE:
Dùng đ to phiên truyn thông đa phng tin gia các UA. INVITE cha đa ch
public ca UAS đích trong vùng Request-URI. Nó có th đi trc tip t UAC đn UAS,
hoc có th đi qua mt hay nhiu proxy.
Thông thng trong thân thông đip có cha thông tin v phiên và ngi gi. Mt
phiên đc coi là đc thit lp khi các thông đip INVITE – 200 OK – ACK đc trao
đi gia UAC và UAS. Khi mt phiên đc thit lp có mt mi quan h ngang hàng
gia hai UA đc to ra gi là Dialog. INVITE là lnh duy nht có kh nng to Dialog,
nhng trong phn m rng ca SIP cng có mt s giao thc có th to Dialog. Phiên
kt thúc khi mt trong hai bên gi yêu cu BYE.
UAC gi INVITE đ thit lp mt dialog s to ra mt Call-ID duy nht dùng trong
sut cuc gi. To header và From header cha đa ch ca bên nhn và bên gi. UAC s
thêm vào From tag và UAS s thêm vào To tag. Call-Id, From tag, To tag dùng đ xác
đnh Dialog.