You are on page 1of 50

TRNG I HC BCH KHOA H NI

VIN CNG NGH THNG TIN V TRUYN THNG


*

TT NGHIP I HC
NGNH CNG NGH THNG TIN

TM HIU GIAO THC SESSION


INITIATION PROTOCOL
XY DNG NG DNG SOFTPHONE

Sinh vin thc hin :


Gio vin hng dn:

Mai Tin Hi
Lp K thut my tnh K51
ThS. D Thanh Bnh
KS. Nguyn Hu Nam Dng

H NI 6-2011
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

PHIU GIAO NHIM V N TT NGHIP


1. Thng tin v sinh vin
H v tn sinh vin: Mai Tin Hi
in thoi lin lc: 0988083486
Email: maihai86@gmail.com
Lp:
K thut my tnh K51
H o to: Chnh quy
n tt nghip c thc hin ti: Trng i hc Bch khoa H Ni.
Thi gian lm ATN: T ngy 22 / 02 /2011 n 26 / 05 /2011
2. Mc ch ni dung ca ATN
- Tm hiu giao thc Session Initiation Protocol.
- Xy dng ng dng Voice over Internet Protocol, thc hin m thoi thng qua
Internet.
3. Cc nhim v c th ca ATN
- Phn tch giao thc Session Initiation Protocol (SIP).
- S dng ngn ng lp trnh Java, pht trin ng dng m thoi thng qua Internet
Voice over IP s dng giao thc SIP.
- Ci t, kim th, trin khai sn phm.

4. Li cam oan ca sinh vin:


Ti Mai Tin Hi - cam kt ATN l cng trnh nghin cu ca bn thn ti di s
hng dn ca ThS. D Thanh Bnh v KS. Nguyn Hu Nam Dng.
Cc kt qu nu trong ATN l trung thc, khng phi l sao chp ton vn ca bt k
cng trnh no khc.
H Ni, ngy thng nm
Tc gi ATN
Mai Tin Hi
5. Xc nhn ca gio vin hng dn v mc hon thnh ca ATN v cho php bo
v:

H Ni, ngy thng nm


Gio vin hng dn
ThS. D Thanh Bnh
GVC. Nguyn Hu Nam Dng

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

Li cm n
c th hon thnh n tt nghip ny, em xin gi li cm n chn
thnh nht ti tp th cc thy gio, c gio trng i hc Bch Khoa H Ni ni
chung, Vin Cng ngh thng tin v Truyn thng, b mn K thut my tnh ni
ring, o to cho Em nhng kin thc, nhng kinh nghim qy bu trong sut
thi gian hc tp v rn luyn ti y.
Em xin gi li cm n ti thy gio, ThS. D Thanh Bnh v thy gio, KS.
Nguyn Hu Nam Dng - Ging vin b mn K thut my tnh, Vin Cng ngh
thng tin v Truyn thng, trng i hc Bch Khoa H Ni tn tnh hng
dn em trong qu trnh thc hin n.
ng thi em cng xin gi li cm n chn thnh nht ti gia nh, bn b
ng vin, gp v to mi iu kin tt nht em c th hon thnh n tt
nghip ny.
Tuy nhin, do thi gian v trnh c hn nn n chc chn khng trnh
khi nhng thiu st, em rt mong c s ng gp kin ca cc thy c. Em xin
chn thnh cm n!
H Ni ngy 26 thng 05 nm 2011
Sinh vin

Mai Tin Hi

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

TM TT NI DUNG N TT NGHIP
Ngy nay, khi Internet ang pht trin nh v bo, em cng nh mi cng dn ca t
nc khng th ng ngoi quy lut . Ngoi vic gip con ngi thu thp thng tin, gii
tr, Internet cn gip rt nhiu trong cng vic. Mt trong nhng tin ch m Internet
mang li chnh l lnh vc Voice over Internet Protocol.
Nhng ngoi nhng phn mm Voice over Internet Protocol qu ph bin nh Skype
th nhng phn mm Voice over Internet Protocol s dng giao thc Session Initiation
Protocol khc vn khng my ni bt. Vi kh nng m rng rt xut sc ca mnh th
Session Initiation Protocol s ha hn l giao thc thay th H.323 trong tng lai. Hin nay
c rt nhiu cc b th vin cng nh m ngun m vi mi ngn ng khc nhau
nghin cu giao thc Session Initiation Protocol. Lp trnh vin gi y rt d dng trong
vic tip cn cng ngh cng nh trin khai cc d n ln cng nh nh, phc v cho nhu
cu m thoi bng ging ni qua Internet.
Vi nhng suy ngh trn y, em thc hin n tt nghip i hc vi mc tiu trc
ht l tm hiu giao thc Session Initiation Protocol v cc giao thc lin quan, sau l
xy dng ng dng Session Initiation Protocol Voice over Internet Protocol (softphone),
thc hin chc nng c k trn.
Ni dung n tt nghip i hc bao gm:
Phn 1: t vn v nh hng gii php: a ra mt s vn ca ti v cc
phng php gii quyt cc vn .
- Tm hiu cu trc, chc nng v kch bn ca giao thc Session Initiation Protocol.
- Tm hiu cc giao thc khc, phc v cho cng vic xy dng ng dng softphone.
- S dng ngn ng Java v cc cng c, th vin thch hp.
Phn 2: Thc hin gii php c nu ra:
- Kt qu phn tch, thit k h thng.
- Chi tit cc package v cc biu lp ca ng dng.
- Kt qu ci t, kim th chng trnh.
- u im v nhc im ca chng trnh.
Kt lun: nh gi cc kt qu t c v cha t c, phng hng pht trin h
thng trong tng lai.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

ABSTRACT OF THESIS
Today, the Internet is developing rushing, I as well as all citizens of the country, can not
stand outside the law. In addition to helping people gather information and entertainment,
the Internet also helped a lot at work. One utility that brings the Internet is Voice over
Internet Protocol.
But in addition to the most popular Voice over Internet Protocol software, such as
Skype, the Voice over Internet Protocol software to use Session Initiation Protocol was not
too prominent. With the ability to expand as the Session Initiation Protocol will replace
H.323 protocol in the future. We now have a lot of open source Session Initiation Protocol
libraries with the different languages. Programmers are now very easy to access as well as
technology development projects large and small, demand for voice conversations over the
Internet.
With the above thoughts, I made this project with first goal is to understand the Session
Initiation Protocol and related protocols, and then build applications Session Initiation
Protocol Voice over Internet Protocol (softphone), the function has been mentioned.
Project content includes graduating from the University:
Part 1: Introduction and orientation solution: Place some of the research problem and
methods to solve these problems.
- Learn the structure, functions and scenarios of the protocol Session Initiation
Protocol.
- Read the other protocols, for building work softphone applications.
- Using the Java language and tools, the appropriate library.
Part 2: Implementation of measures outlined:
- The analysis, system design.
- Details of package and class diagram of the application.
- Results of the installation, testing programs.
- Advantages and disadvantages of the program.
Conclusion: Evaluation of results achieved and not achieved, the development of future
systems.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

Mc lc
PHIU GIAO NHIM V N TT NGHIP..............................................2
TM TT NI DUNG N TT NGHIP...................................................4
ABSTRACT OF THESIS.....................................................................................5
Danh mc cc hnh v...........................................................................................8
Danh mc cc t vit tt v thut ng...................................................................9
Phn m u........................................................................................................10
Phn 1: t vn v nh hng gii php.............................................11
1.
Chi tit nhim v:.......................................................................................11
2.
Phng hng gii quyt:..........................................................................11
3.
C s l thuyt v cng c:........................................................................12
3.1.
SIP:......................................................................................................12
3.1.1.
Tng quan v chc nng ca SIP:........................................................12
3.1.2.
Tng quan v qu trnh hot ng ca SIP:.........................................12
3.1.3.
Tng quan v cu trc ca SIP:...........................................................13
3.1.4.
Bn tin SIP:..........................................................................................13
3.1.4.1. Cc khi nim chung:..........................................................................13
3.1.4.2. Cc trng header ca bn tin SIP:......................................................13
3.1.5.
SIP User Agent:...................................................................................16
3.1.5.1. User Agent Client:...............................................................................16
3.1.5.2. User Agent Server:...............................................................................16
3.1.6.
My ch SIP:.......................................................................................16
3.1.6.1. Proxy server:........................................................................................16
3.1.6.2. Location server:...................................................................................17
3.1.6.3. Redirect server:....................................................................................17
3.1.6.4. Register server (Registrar):..................................................................18
3.2.
SIP VoIP System:.................................................................................18
3.3.
RTP:.....................................................................................................19
3.3.1.
Cu trc RTP:......................................................................................19
Hnh 1.3: RTP payload type................................................................................21
3.3.2.
B nhn dng ngun:...........................................................................21
3.3.3.
Bo mt vi RTP:................................................................................21
3.3.4.
S d tha trong RTP:.........................................................................22
3.4.
Java:.....................................................................................................22
3.4.1.
C ch hot ng:................................................................................22
3.4.2.
Lch s:................................................................................................22
Phn 2: Cc kt qu t c....................................................................24
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

1.
Kt qu phn tch, thit k h thng:..........................................................24
1.1.
Tng qut:............................................................................................24
1.1.1.
Cng c thc hin:...............................................................................24
1.1.2.
Tng quan v chng trnh:.................................................................25
1.2.
Biu user-case:................................................................................26
1.3.
Chi tit cc package:............................................................................26
1.3.1.
simplecall:............................................................................................26
1.3.2.
simplecall.account:..............................................................................27
1.3.3.
simplecall.address:...............................................................................28
1.3.4.
simplecall.gui:......................................................................................29
1.3.5.
simplecall.media:.................................................................................29
1.3.6.
simplecall.rtp:......................................................................................31
1.3.7.
simplecall.sip:......................................................................................33
1.3.8.
simplecall.ua:.......................................................................................36
1.4.
S thut ton:..................................................................................39
1.4.1.
Chc nng Register:.............................................................................39
1.4.2.
Chc nng thot:..................................................................................39
1.4.3.
Chc nng Invite:................................................................................40
1.4.4.
Chc nng Bye:...................................................................................40
2.
Kt qu thc hin, ci t, th nghim h thng:.......................................41
2.1.
Ci t chng trnh:...........................................................................41
2.1.1.
Ci t mi trng Java Runtime:.......................................................41
2.1.2.
Checkout source code:.........................................................................41
2.1.3.
Bin dch v chy chng trnh:..........................................................41
2.2.
Thc hin chng trnh:......................................................................42
2.3.
Kim tra chng trnh:.........................................................................43
2.3.1.
Giao dch Register:..............................................................................44
2.3.2.
Giao dch Invite:..................................................................................45
2.3.3.
Giao dch Bye:.....................................................................................46
3.
nh gi v so snh h thng:....................................................................47
3.1.
u im ca chng trnh:..................................................................47
3.2.
Nhc im ca chng trnh:............................................................47
KT LUN.........................................................................................................48
TI LIU THAM KHO...................................................................................50

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

Danh mc cc hnh v
Hnh 1.1: H thng VoIP
Hnh 1.2: Header ca RTP
Hnh 1.3: RTP payload type
Hnh 2.1: Biu cc package chng trnh
Hnh 2.2: Biu user-case
Hnh 2.3: Biu lp ParameterLoader
Hnh 2.4: Biu lp AccountManagerImpl
Hnh 2.5: Biu lp UserCredentialsImpl
Hnh 2.6: Biu lp EndPoint
Hnh 2.7: Biu lp CaptureData
Hnh 2.8: Biu lp PlaybackData
Hnh 2.9: Biu lp SoundCodec
Hnh 2.10: Biu lp SoundManager
Hnh 2.11: Biu lp RTPManagement
Hnh 2.12: Biu lp RTPReceiver
Hnh 2.13: Biu lp RTPSender
Hnh 2.14: Biu lp SIPContact
Hnh 2.15: Biu lp SIPEntity
Hnh 2.16: Biu lp SIPHeaderSet
Hnh 2.17: S thut ton chc nng Register
Hnh 2.18: S thut ton chc nng thot
Hnh 2.19: S thut ton chc nng Invite
Hnh 2.20: S thut ton chc nng Bye
Hnh 2.21: Ca s ng nhp
Hnh 2.22: Ca s chnh
Hnh 2.23: Ca s nhn cuc gi
Hnh 2.24: Giao dch Register
Hnh 2.25: Giao dch Invite
Hnh 2.26: Giao dch Bye

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

Danh mc cc t vit tt v thut ng


[01] SIP
[02] IP
[03] TCP
[04] UDP
[05] IETF
[06] VoIP
[07] RSVP
[08] RTP
[09] RTSP
[10] SAP
[11] SDP
[12] MIME
[13] HTTP
[14] COPS
[15] OSP
[16] OOP
[17] UA
[18] UAC
[19] UAS
[20] URI
[21] CRLF
[22] UML

Session Initiation Protocol


Internet Protocol
Transmission Control Protocol
User Datagram Protocol
Internet Engineering Task Force
Voice over Internet Protocol
Resource Reservation Protocol
Real-time Transport Protocol
Real Time Streaming Protocol
Session Advertisement Protocol
Session Description Protocol
Multipurpose Internet Mail
Hypertext Transfer Protocol
Common Open Policy Service
Open Settlement Protocol
Object-Oriented Programming
User Agent
User Agent Client
User Agent Server
Uniform Resource Identifier
Carriage Return Line Feed
Unified Modeling Language

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

Phn m u
Gii thiu ti
Trong s pht trin ca Internet cng vi nhu cu lin lc ngy cng tng, th cc
cng c cng nh giao thc phc v cho vic thc hin cc cuc thoi ng mt vai
tr ht sc quan trng. Cc giao thc cng nh ng dng phc v cho cng vic
ngy cng nhiu v pht trin. Chng ta c lm quen vi Yahoo Messenger,
Skype, Google Talk, nhng phn mm ngy cng khng th thiu mi ln chng
ta tham gia vo mng Internet.
Nhng khng nh trc y, Voice over IP da trn nn tng H.323 vn an ton
v cht lng nhng gi c t , kh trin khai rng, th ngy nay, vi s ra i
ca cc giao thc phc v cho cng vic thc hin m thoi bng ging ni qua
giao thc Internet Protocol khc phc c nhc im ca H.323. chnh l
giao thc khi to phin (Session Initiation Protocol - SIP).
Giao thc khi to phin l mt giao thc bo hiu c s dng thit lp cc
phin trong mng IP, mt phin c th n gin l mt cuc gi in thoi 2 chiu,
mt thng bo danh sch cc tin nhn hoc mt hi ngh s dng truyn thng a
chiu.

Nhim v ca n
Gii thiu, nghin cu v SIP, cc c trng ca SIP.
Tm hiu v pht trin ng dng softphone, thc hin thit lp, duy tr v dng
cuc m thoi qua mng Internet (VoIP).

Mi trng thc hin n


Ni thc tp:
Cng ty c phn cng ngh uVision
a ch: Nh N2-8, Ngch 46, Ng 191, Lc Long Qun, Ty H, H Ni
Tel:
+84-4-3792-5048
Fax: +84-4-3792-5124
ti ang tham gia: Website gii tr trc tuyn tc cao PiTV.
a ch: uvision.vn

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

10

a. t vn v nh hng gii php


1. Chi tit nhim v:
Tm hiu v SIP:
- Tng quan v chc nng ca SIP
- Tng quan v qu trnh hot ng ca SIP
- Tng quan v cu trc ca SIP
- Bn tin SIP
Tm hiu v cc thnh phn ca mt h thng SIP VoIP:
- Cu trc, thnh phn v hnh vi ca User Agent:
o Cu trc, thnh phn:
User Agent Server
User Agent Client
o Hnh vi:
Hy yu cu
ng k
Hi thoi
Thit lp v sa i phin truyn
- My ch mng:
o Proxy Server
o Stateful Server v Stateless Server
o Location Server
o Redirect Server
o Registrar
- S giao dch
- Qu trnh truyn vn
Tm hiu v RTP:
- Kch bn s dng
- Cc nh ngha lin quan
Xy dng ng dng softphone bng ngn ng Java. Cc chc nng cn c:
- Giao din ha.
- Ngi dng c th ng nhp bng a ch SIP ca mnh.
- Thc hin cuc gi ti mt a ch SIP khc.
- Dng cuc gi gia chng hoc t chi nhn cuc gi.

2. Phng hng gii quyt:


Tm hiu v SIP: Cn c theo ti liu RFC3261:
- Link: http://www.rfc-editor.org/rfc/rfc3261.txt
Tm hiu v RTP: Cn c theo ti liu RFC1889:
- Link: http://www.ietf.org/rfc/rfc1889.txt
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

11

3. C s l thuyt v cng c:
3.1. SIP:
3.1.1.
Tng quan v chc nng ca SIP:
Khi s dng Internet, ngi s dng cn rt nhiu ng dng c th to ra v qun
l cc phin, cc phin ny s chu trch nhim trong vic trao i d liu gia mt
nhm cc thnh phn tham gia. Cng vic trin khai cc ng dng ny l rt phc
tp bi c nhiu vn nh: ngi s dng c th c nh a ch theo nhiu
cch khc nhau, hoc h c th lin lc bng nhiu phng tin khc nhau hoc
khng cng thi im C mt s lng ln cc giao thc c sng to ra vi
mc ch truyn ti cc thng tin a phng tin nh m thanh, ging ni hoc bn
tin bng vn bn.
Hot ng ca Session Initiation Protocol m bo vic phi hp vi cc giao
thc trn bng cch cho php lin lc gia cc end point vi nhau, t c th tm
ra nhng i tng mun lin lc. nh v thnh phn s tham gia qu trnh to
phin, SIP cng cho php to ra mt dng cu trc host trong mng c gi l
proxy servers t cc user agents c th gi cc bn tin nh: ng k, mi tham
gia phin hoc bt k mt yu cu no khc.

3.1.2.

Tng quan v qu trnh hot ng ca SIP:

SIP l mt giao thc iu khin lp ng dng, phc v cho mc ch to mi,


sa i, v ngt cc phin lin lc i vi mt hoc nhiu i tc. Nhng phin lin
lc ny c bao gm c m thoi bng in thoi, s lin lc a phng tin. Cc
phng tin c th c thm vo hoc loi b khi phin truyn hin ti. SIP
cng h tr nh sp xp theo tn, cc dch v ti nh hng, di ng c nhn.
SIP khng cung cp cc dch v c th, nhng li cung cp nhng cng c th s
trin khai nhiu loi hnh dch v khc nhau. Bn cht ca cc dch v c cung
cp t ra vn v bo mt. Do , SIP cng cung cp cc b bo mt di dng
dch v, c th thc hin c cc chc nng nh bo v dch v c thit lp
khi tn cng t chi dch v (denial-of-service), chng thc ngi dng, bo v
ton vn d liu, m ha v cc dch v ring t.
SIP h tr nm chc nng phc v cho vic thit lp v ngt lin lc a phng
tin:
- User location: nh v ngi dng cui trong h thng lin lc a phng tin.
- User availability: xc nh xem ngi dng c sn lng tham gia cuc lin lc
a phng tin hay khng?
- User capabilities: xc nh phng tin v cc thng s lin quan.
- Session setup: ng k a ch, yu cu m thoi, chung, gia ngi
thc hin cuc gi vi ngi nhn cuc gi.
- Session management: chuyn i, ngt cc phin truyn, hoc thay i tham
s phin truyn, hoc thc hin mt dch v no .
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

12

SIP hot ng vi IPv4 v c IPv6.

3.1.3.

Tng quan v cu trc ca SIP:

SIP l giao thc tng ng dng (application protocol). SIP c t chc theo
dng lp, c ngha l trng thi ca giao thc c m t trong iu kin mt tp
hp cc giai on x l tng i c lp nhng lng lo vi nhau.
- Lp thp nht: tng c php v m ha. Ng php ca m ha l chun
Backus-Naur Form (BNF).
- Lp th hai: lp truyn vn (transport layer). Tt c cc thnh phn SIP
u s hu mt lp truyn vn.
- Lp th ba: lp giao dch (transaction layer). y l thnh phn ch yu
ca SIP. Cc thc th SIP tham gia vo mng c th giao dch theo kiu
my ch (server transaction) hoc kiu my khch (client transaction).
- Lp th t: c gi l s giao dch ngi dng (transaction user), l bt
k mt thc th SIP no.

3.1.4.
Bn tin SIP:
3.1.4.1. Cc khi nim chung:
SIP l 1 text-based protocol , v mt ng ngha tng t nh HTTP. Bao gm:
- Bn tin yu cu (SIP request):
Request

Request-Line
*( message-header )
CRLF
[ message-body ]

Bn tin p ng (SIP response):

Response

Status-Line
*( message-header )
CRLF
[ message-body ]

Ch : Hi thoi SIP (SIP Dialog) l mt s lin h peer-to-peer gia 2 UA


c duy tr trong mt khong thi gian nht nh.

3.1.4.2. Cc trng header ca bn tin SIP:


V d v mt bn tin yu cu:
INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

13

Contact: <sip:alice@pc33.atlanta.com>
Content-Type: application/sdp
Content-Length: 142

V d v mt bn tin p ng:
SIP/2.0 200 OK
Via: SIP/2.0/UDP server10.biloxi.com
;branch=z9hG4bKnashds8;received=192.0.2.3
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com
;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2
Via: SIP/2.0/UDP pc33.atlanta.com
;branch=z9hG4bK776asdhds ;received=192.0.2.1
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:bob@192.0.2.4>
Content-Type: application/sdp
Content-Length: 131

o Request-Line (i vi bn tin yu cu): bao gm phng thc SIP


(REGISTER, INVITE, ACK, BYE, ) , Request-URI, v phin bn SIP
m bn tin SIP s dng. Cha cc gi tr SIP URI hoc SIPS URI c trong
trng To (i vi cc bn tin khng phi l REGISTER).
Cc method chnh:
- INVITE: Cho php mi 1 ngi dng hoc 1 dch v vi 1 phin
lin lc mi hoc sa i cc tham s khi thit lp phin lin lc .
- ACK: Chp nhn vic thit lp phin truyn.
- OPTION: Yu cu thm thng tin v kh nng ca 1 server.
- BYE: Kt thc 1 phin lin lc.
- CANCEL: Hy yu cu ang ch.
- REGISTER: ng k 1 User Agent.
V d:
INVITE sip:bob@biloxi.com SIP/2.0

o Status-Line (i vi bn tin p ng): bao gm phin bn SIP v SIP m


p ng (reply code).
M p ng:
1xx: Cc bn tin tm thi.
2xx: Cc bn tin thng bo thnh cng.
3xx: Cc bn tin ti nh hng.
4xx: Sai phng php.
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

14

5xx: C li xy ra pha server.


6xx: Li ton cc.
V d:
SIP/2.0 200 OK

o To: Cha SIP URI ca i tng nhn SIP Message.


V d:
To: Bob <sip:bob@biloxi.com>

o From: Ngc li vi trng To, trng From cha SIP URI ca i tng
gi bn tin SIP. Ngoi ra, trng From ny cn phi cha thm tham s
tag. Tham s tag ny s c UAC chn.
V d:
From: Alice <sip:alice@atlanta.com>;tag=1928301774

o CSeq : Trng ny phc v cho mc ch nh danh v sp xp th t cho


cc giao dch. Tham s dnh danh c trong trng CSeq phi l s
unsigned-int 32-bit.
V d:
CSeq: 314159 INVITE

o Call-ID: L trng cha tham s nh danh, i din duy nht cho cc bn


tin yu cu c gi bi c UAS v UAC trong vng 1 hi thoi.
V d:
Call-ID: a84b4c76e66710@pc33.atlanta.com

o Max-Forwards: Cung cp s bc nhy ti a m 1 bn tin yu cu c th


phi tri qua n c ch. Gi tr mc nh l 70.
V d:
Max-Forwards: 70

o Via ch ra s chuyn giao c s dng trong 1 giao dch gia cc UA.


Cng dng ca trng l nh danh cc a im m bn tin p ng c
gi i sau khi UA nhn c yu cu no .
V d:
Via: SIP/2.0/UDP server10.biloxi.com
;branch=z9hG4bKnashds8;received=192.0.2.3

o Contact: Trng Contact cung cp mt gi tr SIP hoc SIP URI c s


dng thit lp lin lc mt thc th ca UA ca cc bn tin yu cu tip
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

15

ni bn tin u tin. Nu trng Request-URI c cha gi tr SIP URI th


trng Contact cng phi cha gi tr URI tng ng.
V d:
Contact: <sip:bob@192.0.2.4>

3.1.5.

SIP User Agent:

Trong mt h thng VoIP, cc i tng cui cng ca mt lin lc VoIP c


gi l User Agent. Ty vo hon cnh v vai tr, mt User Agent c th hot ng
nh l mt User Agent Server hoc User Agent Client.

3.1.5.1. User Agent Client:


User Agent Client (UAC): l 1 thc th logic , lm cng vic to mi 1 bn tin
yu cu, s dng c cu trng thi ca giao dch my khch gi chng i. Ni
cch khc, nu phn no ca softphone to ra 1 bn tin yu cu mi, n hot
ng nh l 1 UAC sut thi gian duy tr ca giao dch.
Cc hnh vi ca mt UAC:
- To ra bn tin yu cu.
- Gi bn tin yu cu va c to ra.
- X l bn tin p ng nhn c.

3.1.5.2. User Agent Server:


User Agent Server (UAS): l 1 thc th logic, lm cng vic to ra 1 bn tin p
ng cho mi mt bn tin yu cu m UAS nhn c. Ni cch khc, nu 1 phn
no ca softphone phn hi 1 bn tin yu cu, n hot ng nh 1 UAS sut thi
gian hot ng ca giao dch.
Hnh vi ca mt UAS:
- Duyt kiu bn tin yu cu.
- Duyt cc trng header.
- X l ni dung bn tin yu cu.
- p dng cc trng m rng.
- X l bn tin yu cu.
- To ra bn tin p ng.

3.1.6.
My ch SIP:
3.1.6.1. Proxy server:
L mt chng trnh trung gian, hot ng nh l mt server v mt client cho
mc ch to cc yu cu thay mt cho cc client khc. Cc yu cu c phc v
bn trong hoc truyn chng n cc server khc.
Mt proxy c th dch v nu cn thit c th to li cc bn tin yu cu SIP
trc khi chuyn chng n server khc hoc mt UA. Trong trng hp ny
trng Via trong bn tin p ng, yu cu ch ra cc proxy trung gian tham gia vo
tin trnh x l yu cu. SIP cho php s cu thnh ca c s h tng ca cc host
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

16

mng gi l proxy servers. User Agents c th gi cc thng tin ti mt proxy


server.
C 2 loi SIP Proxy servers c bn l stateless v stateful.
o Stateless proxy: Stateless proxy n gin c xem nh l nhng ngi
chuyn tip thng tin. Proxy chuyn tip thng tin mt cch c lp vi
nhau. Chng n gin nhng nhanh hn stateful proxy servers. Chng c
th c s dng nh cc b cn bng ti (load balancer), cc ngi dch
thng tin, v cc b nh tuyn. Mt trong nhng hn ch ca cc stateless
proxy l chng khng c kh nng truyn li cc thng tin v thc hin
cng vic nh tuyn cao cp.
o Stateful proxy: Phc tp hn stateless proxy. Trong lc nhn yu cu,
stateful proxy to ra mt trng thi v gi n cho n khi s giao dch l
kt thc. V stateful proxy phi m bo trng thi ny trong sut qu
trnh giao dch, nn s hot ng ca chng l gii hn. Stateful proxy c
th hp th vic truyn li bi v chng bit, t trng thi ca cc phin
giao dch, nu chng nhn c cng mt thng tin ri. Stateful proxy
c th thc hin cc phng php phc tp hn tm ra cc user. Hu ht
cc SIP proxies ngy nay l stateful v cu hnh ca chng thng l rt
phc tp. Chng thng thc hin vic tnh ton, chia nhnh, v tt c
nhng c trng i hi mt stateful proxy.

3.1.6.2. Location server:


L server phc v cho cng vic nh v thu bao, cung cp thng tin v nhng v
tr c th ca thu bao b gi cho cc phn mm my ch y quyn v my ch
chuyn i a ch.

3.1.6.3. Redirect server:


L server nhn yu cu SIP v chuyn i a ch SIP sang mt s a ch khc
v gi li cho u cui. Khng ging nh my ch y quyn, my ch chuyn i
a ch khng bao gi hot ng nh mt u cui, tc l khng gi i bt c yu
cu no.
My ch chuyn i a ch cng khng nhn hoc hu cuc gi. L thc th m
nhn yu cu v gi tr li cu tr li vi 1 danh sch v tr hin ti ca mt user c
bit c gi l redirect server. Mt redirect server nhn yu cu v tm kim ngi
nhn trong vng c s d liu, sau n to ra mt danh sch cc v tr hin thi
ca user v gi chng ti ngi to yu cu. Ngi to yu cu sau trch mt
danh sch cc ch v gi cc yu cu khc mt cch trc tip n chng.

3.1.6.4. Register server (Registrar):


L server nhn cc yu cu ng k, trong nhiu trng hp my ch ng k
m nhim lun mt s chc nng an ninh nh xc nhn ngi s dng. Thng
thng my ch ng k c ci t cng vi my ch y quyn v my ch hay
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

17

a ch hoc cung cp dch v nh v thu bao. Mi ln u cui c bt ln ( v


d my in thoi hoc phn mm SIP) th u cui li ng k vi my ch. Nu
u cui cn thng bo cho my ch v a im ca mnh th bn tin REGISTER
cng c gi i. Ni chung cc u cui u thc hin vic ng k li mt cch
nh k.
Chng ta cp n SIP proxy ti proxy.b.com bit v tr hin thi ca Bob
nhng khng cp n lm th no c th hc c v tr hin thi ca user.
User agent ca Bob (in thoi SIP) phi ng k vi mt mt b phn gi l
Register. Register ny l mt thc th SIP c bit, chng nhn nhng ng k t
cc users, trch ra nhng thng tin v v tr nh a ch IP, cng, hay username v
lu tr nhng thng tin ny vo trong 1 vng c s d liu. Mc ch ca vng c
s d liu ny l nh x sip:bob@b.com thnh nhng th tng t nh
sip:bob@1.2.3.4:5060. Vng c s d liu sau c s dng bi proxy server
ca B. Khi Proxy ny nhn c mt li mi cho sip:bob@b.com, n s tm kim
vng c s d liu. N tm ra sip:bob@1.2.3.4:5060 v gi li mi ti .
Mi s ng k u c mt vng i gii hn. S kt thc ca trng header
hoc kt thc ca cc tham s c lin quan n trng header xc nh trong bao
lu th s ng k c hiu lc. Tc nhn user phi refresh li s ng k ca n.

3.2. SIP VoIP System:

Hnh 1.1: H thng VoIP


Mt h thng VoIP c th ng c lp hoc c nhng vi h thng in thoi
c in. Cc thit b u cui ca h thng VoIP c th l in thoi IP hoc phn
mm in thoi IP (software IP phone - softphone).

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

18

3.3. RTP:
RTP ( Real-time Transport Protocol ) cung cp mt mng li truyn dn end-toend, thng c tch hp vo trong cc ng dng c s trao i d liu mang tnh
cht thi gian thc (real-time). Kiu d liu thng l audio, video, simulation
data... H tng mng c th l unicast network service hoc multicast network
service.

3.3.1.

Cu trc RTP:

Header ca RTP bt u vi s version, hin ti l 2. Tham s PTYPE nh ngha


kiu ca payload (v d nh G.711, G.723 audio hoc H.263 video)

Hnh 1.2: Header ca RTP


Cc nh ngha ca RTP:
o RTP payload: l d liu c c trong mt gi tin, trao i bi giao thc
RTP.
o RTP packet: Mt gi d liu cha ng mt RTP header c nh, i km theo
gi tr bt buc ny c th l list rng ca cc ngun ng gp, tip theo l
thnh phn quan trng nht ca mt RTP packet payload data. C th cc
giao thc tng thp hn s yu cu mt RTP packet c ng gi.
o RTCP (RTP Control Protocol) packet: l mt control packet cha header
ging RTP, tip theo l cc thnh phn ph thuc vo kiu ca RTCP packet
.
o Port: trong giao thc RTP th khi nim port ph thuc vo giao thc tng
thp hn, cung cp mt vi c ch c gi l port lin lc theo multiplex
cc RTP packet v RTCP packet ca cc phin truyn.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

19

o Transport address: S kt hp ca mt a ch mng v cng , phc v cho


vic nh danh mt transport-level endpoint, v d hay gp nht l a ch
IP v UDP port.
o RTP media type: l tp hp ca cc kiu payload. Trong giao thc RTP, RTP
Profile s quyt nh media types ca cc RTP payload.
o Multimedia session: l tp hp ca cc RTP sessions ng thi. V d: mt
video conference l bao gm audio RTP session v video RTP session.
o RTP session: L s lin kt gia mt tp ca cc tng truyn ti thng tin
ring bit vi giao thc RTP.
o Synchronization source (SSRC) : l ngun pht ca cc RTP packet , c
nh ngha bi s nh phn 32-bit SSRC SSRC Identifier c mang trong
RTP header .
o Contributing source (CSRC): Mt ngun pht ca cc RTP packet khi c
phn phi nhm kt hp vi cc ngun pht khc qui nh bi RTP mixer.
phn bit cc ngun ht , ngi ta dng thng s CSRC.
o End system: Mt ng dng, ti sinh ra ni dung s c gi i thng
qua cc RTP packets.
o Mixer: Mt h thng trung gian, lm cng vic nhn cc RTP packets t mt
hoc nhiu ngun, c th phi thc hin cc bin i nh thay data format,
kt hp cc packet trong nhiu RTP packet con v gp vo mt RTP packet
mi.
o Translator: cng l mt h thng trung gian, c chc nng chuyn tip cc
RTP packet vi s bo ton cc ngun ng b.
o Monitor: L mt ng dng, c chc nng nhn cc RTCP packet c gi
bi mt RTP session ring bit, v nh gi cht lng ca dch v (quality
of service QoS) cho vic qun l s phn phi cc packet, phn tch li.
o Non-RTP means: Cc giao thc v c ch, l ko bt buc i vi RTP
cung cp mt usable service.
Mi payload nh ngha mt profile, n khng ch nh ngha loi phng tin v
CODEC m cn c th ha n chi tit hai tham s l timestamp v M. Payload c
hai loi: static v dynamic. Vic ch nh static ph thuc vo s ca ti liu RFC,
c th l 1890. Tn s clock c RTP a ra trong bng nh ngha phi tha mn
mt s iu kin tng ln. V th vi tn s 8kHz, timestamp s c tng ln
125 dynamic (ng) c ch nh khi phin c to ra s dng mt vi c cu
khng b kim sot bi RTP (v d SDP v SIP).

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

20

PT
-------0
1
2
3
4
[RFC3551]
5
6
7
8
9
10
11
12
13
14
[RFC2250]
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35-71
72-76
77-95
96-127

encoding name
-------------PCMU
Reserved
Reserved
GSM
G723

audio/video (A/V)
----------------A

clock rate (Hz)


--------------8000

channels (audio)
---------------1

Reference
--------[RFC3551]

A
A

8000
8000

1
1

[RFC3551]
[Kumar]

DVI4
DVI4
LPC
PCMA
G722
L16
L16
QCELP
CN
MPA

A
A
A
A
A
A
A
A
A
A

8000
16000
8000
8000
8000
44100
44100
8000
8000
90000

1
1
1
1
1
2
1
1
1

[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3389]
[RFC3551]

G728
A
8000
DVI4
A
11025
DVI4
A
22050
G729
A
8000
Reserved
A
Unassigned
A
Unassigned
A
Unassigned
A
Unassigned
A
Unassigned
V
CelB
V
90000
JPEG
V
90000
Unassigned
V
nv
V
90000
Unassigned
V
Unassigned
V
H261
V
90000
MPV
V
90000
MP2T
AV
90000
H263
V
90000
Unassigned
?
Reserved for RTCP conflict avoidance
Unassigned
?
dynamic
?

1
1
1
1

[RFC3551]
[DiPol]
[DiPol]
[RFC3551]

[RFC2029]
[RFC2435]
[RFC3551]
[RFC4587]
[RFC2250]
[RFC2250]
[Zhu]
[RFC3551]
[RFC3551]

Hnh 1.3: RTP payload type

3.3.2.

B nhn dng ngun:

Mi mt ngun phng tin (media source) trong phin c nh ngha bi mt


s 32bits c gi l b nhn dng ngun. B nhn dng ngun nn c chn
ngu nhin gim trng hp hai trm cng chn mt b nhn dng. Mc d
trng hp xung t (chng hn nh hai trm cng ID) l nh, mi trm cung cp
mt vi c cu pht hin s c ca n v a ra bin php cu cha tnh hung.
C th, trm ny pht hin vic pht ca mt trm khc cng vi b nhn dng
ngun, mong mun chn mt b nhn dng mi ngu nhin. Sau s gi bn tin
RTCP BYE ch ra s kt thc lung media u tin, v sau s dng b nhn dng
mi. Trong header ca RTP, hai loi ca b nhn dng ngun c th c th hin,
l: b nhn dng ngun ng b v b nhn dng ngun ng gp (contributing
source identifier).

3.3.3.

Bo mt vi RTP:

RFC1889 cng b rng nhng gi tin RTP c th c p dng nhng phng


php bo mt. Yu cu l khi mt m tri buc vic s dng chun bo mt d liu
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

21

(DES). Gii mt m chnh xc gi c th c xc nh bi nhiu ln kim tra gi


tr header, v d nh kim tra xem version c phi l 2 hay khng v payload
c bit. Khng c c cu trong RTP phc v cho vic trao i kha mt m. iu
ny s thc hin giai on iu khin cuc gi/phin ca cuc gi, s dng nhng
giao thc nh l SIP v SDP.

3.3.4.

S d tha trong RTP:

Thm s d tha vo RTP cho php mt vi gi tin RTP b mt trn ng


truyn pht nhng khng b mt d liu. nh dng d tha RTP gm payload u
tin cng vi mt s payload th hai. N c s dng cho vic pht c m bo
s ton vn d liu l thp nh pht khng dy (wireless).

3.4. Java:
Java l mt ngn ng lp trnh dng lp trnh hng i tng (OOP). Khc vi
phn ln ngn ng lp trnh thng thng, thay v bin dch m ngun thnh m
my hoc thng dch m ngun khi chy, Java c thit k bin dch m ngun
thnh bytecode, bytecode sau s c mi trng thc thi (runtime environment)
chy. Bng cch ny, Java thng chy chm hn nhng ngn ng lp trnh thng
dch khc nh C++, Python, Perl, PHP, C#...
C php Java c vay mn nhiu t C v C++ nhng c c php hng i
tng n gin hn v t tnh nng x l cp thp hn. Do vic vit mt chng
trnh bng Java d hn, n gin hn, tn cng sa li hn. Dng b th vin
chun KFC, nhiu on code Java ch mt vi dng trong khi C phi mt c trang
giy. Lp trnh C rt hay xy ra li v kh sa. Trong Java, hin tng d r b nh
hon ton c th trnh bng cch nh ngha vi preprocessor directives nh #define
NO_MEMORY_LEAK hay #define NO_ACCESS_VIOLATION u chng
trnh.

3.4.1.

C ch hot ng:

Ban u Sun ngh ra mt c my, t tn l JVM. C my ny vn c Sun sn


xut, cho ti nay c 4.5 t n v. Ni Java compiler khng compile ra
machine code l khng ng. Thc cht file code Java sau khi a vo compiler s
c compile ra thnh machine code dnh cho ci my ny. Trn cc platform thc,
JRE s emulate JVM recompile ton b bytecode thnh native code ca platform
. cho cc chng trnh Java chy trn nhiu platform khc nhau, Sun ch vic
port ci emulator, tc JRE, sang cc platform . Nh vy m mt chng trnh
Java s vit cho my tnh, em sang in thoi di ng vn chy c bnh
thng.

3.4.2.

Lch s:

Java c khi u bi James Gosling v bn ng nghip Sun


Microsystems nm 1991. Ban u ngn ng ny c gi l Oak (c ngha l cy
si; do bn ngoi c quan ca ng Gosling c trng nhiu loi cy ny), h d nh
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

22

ngn ng thay cho C++, nhng cc tnh nng ging Objective C. Khng nn ln
ln Java vi JavaScript, hai ngn ng ch ging tn v loi c php nh C. Cng
ty Sun Microsystems ang gi bn quyn v pht trin Java thng xuyn. Thng
04/2011, cng ti Sun Microsystems tip tc cho ra bn JDK 1.6.24.
Java c to ra vi tiu ch "Vit (code) mt ln, thc thi khp ni" ("Write
Once, Run Anywhere" (WORA)). Chng trnh phn mm vit bng Java c th
chy trn mi nn tng (platform) khc nhau thng qua mt mi trng thc thi vi
iu kin c mi trng thc thi thch hp h tr nn tng . Mi trng thc thi
ca Sun Microsystems hin h tr Sun Solaris, Linux, Mac OS, FreeBSD v
Windows. Ngoi ra, mt s cng ty, t chc cng nh c nhn khc cng pht trin
mi trng thc thi Java cho nhng h iu hnh khc nh BEA, IBM, HP... .
Trong ng ni n nht l IBM Java Platform h tr Windows,
Linux, AIX v z/OS.
Nhng chi tit v ngn ng, my o v API ca Java c gi bi Cng ng
Java (do Sun qun l). Java c to ra vo nm 1991 do mt s k s Sun, bao
gm ng James Gosling, mt phn ca D n Xanh (Green Project). Java c pht
hnh vo nm 1994, ri n tr nn ni ting khi Netscape tuyn b ti hi tho
SunWorld nm 1995 l trnh duyt Navigator ca h s h tr Java. V sau Java
c c h tr trn hu ht cc trnh duyt nh Internet
Explorer (Microsoft), Firefox (Mozilla), Safari (Apple)...
Java c s dng ch yu trn mi trng NetBeans v Oracle. Sau
khi Oracle mua li cng ty Sun Microsystems nm 2009-2010, Oracle m t h
l "ngi qun l cng ngh Java vi cam kt khng ngng bi dng mt cng
ng tham gia v minh bch".

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

23

b.Cc kt qu t c
1. Kt qu phn tch, thit k h thng:
1.1. Tng qut:
1.1.1.
Cng c thc hin:
Sau khi tm hiu l thuyt, em bt tay vo xy dng ng dng softphone, c
tn l simplecall. Project simplecall c vit trn nn ngn ng Java, c s dng
mt s b th vin:
o NIST SIP (http://snad.ncsl.nist.gov/proj/iptel/): Tp cc cng c, ng
dng, th vin SIP trn ngn ng Java.
- JAIN SIP: Th vin SIP chnh. Cung cp hu nh ton b cc nh
ngha, cng c v giao thc SIP.
- JAIN SDP: Th vin giao thc SDP.
- Traceviewer: graphic tool, m phng cc qu trnh giao dch, ni dung
cc bn tin SIP.
o JRTP (http://java.net/projects/jrtp): B th vin v giao thc RTP.
o JSpeex (http://www.speex.org/): B th vin m ngun m Java-binding,
cung cp b codec nn v gii nn m thanh, tng cng hiu qu trong
vic truyn ti tn hiu ging ni qua Internet.
o Apache Log4j (http://logging.apache.org/log4j/1.2/): Th vin cung cp
cng c xut cc thng bo trong chng trnh ra log file, phc v cho
vic debug.
Ngoi ra phi k n cc b th vin m Java cung cp sn nh:
o Swing: th vin v giao din ha, bt v x l s kin.
o Javasound: th vin m thanh, thu thp v x l tn hiu m thanh c
phn cng PC cung cp.
IDE v cng c bin dch, xy dng giao din ha GUI:
o Eclipse: IDE chnh code chng trnh.
o Netbeans: IDE ph, dng xy dng GUI.
o Apache Ant: cng c bin dch.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

24

1.1.2.

Tng quan v chng trnh:

Hnh 2.1: Biu cc package chng trnh


Chng trnh simplecall bao gm:
o Mt package chnh: simplecall: Cha lp c hm main v lp c tham s
cu hnh chng trnh t config file.
o By package con:
- simplecall.account: Cha cc lp m rng ca SIP account, phc v cho
vic chng thc ngi dng i vi cc SIP Proxy c yu cu mt khu.
- simplecall.address: Cha cc lp nh ngha a ch ca mt UserAgent
trong mng.
- simplecall.gui: Cha lp giao din ha chnh v cc giao din ha
ph nh About window.
- simplecall.media: Cha cc lp thu nhn, x l, xut tn hiu m thanh.
Ngoi ra cn cha lp encode v decode tn hiu m thanh c s dng
th vin JSpeex.
- simplecall.rtp: Cha cc lp ng gi, truyn ti, nhn cc gi tin RTP.
- simplecall.sip: Package chnh v quan trng nht, ct li ca chng
trnh. Cha cc lp cung cp cng c, nh ngha cc thuc tnh ca giao
thc SIP.
- simplecall.ua: Cha cc lp nh ngha tng qut cc thc th cui c
trong mt h thng SIP User Agent.
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

25

1.2. Biu user-case:


Chng trnh gm c cc chc nng: tc nhn tc ng vo chng trnh l
ngi s dng.
- Login: Tin hnh login thng bo vi SIP Proxy bit a ch ca mnh
v cng thng bo rng ngi s dng online.
- Call: Tin hnh thc hin yu cu m thoi, sau khi nhp a ch SIP
ca i tng cn gi vo a ch To.
- Pickup: bn pha i tng nhn cuc gi. Ngi dng c th quyt
nh ng thc hin m thoi bng cch nhc ng nghe.
- Hangup: Ngc li vi Pickup, ngi dng c th quyt nh t chi cuc
m thoi hoc ngt cuc m thoi hin ti.
- Cancel: Hy yu cu m thoi. Chc nng ny khng th s dng sau khi
ngi nhn cuc gi ng thc hin m thoi.
- Exit: Thot chng trnh.

Hnh 2.2: Biu user-case

1.3. Chi tit cc package:


1.3.1.
simplecall:
Gm c 2 lp: Main v ParameterLoader:
o Main: Cha hm main ca chng trnh simplecall.
o ParameterLoader: c cc tham s c trong config file khi chng trnh
bt u, config file nm trong th mc conf ca th mc chnh ca
chng trnh. Cc tham s c load l:
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

26

myPort: cng lng nghe cc bn tin SIP ca chng trnh.


mediaPort: cng lng nghe cc bn tin RTP hay cc gi tin cha tn
hiu m thanh sau khi 2 user agent thc hin xong kt ni.
proxyDomain: domain ca SIP Proxy
proxyHost: host ca SIP Proxy
proxyPort: port ca SIP Proxy
sipName: user name ca UserAgent
sipAddress: a ch ca UserAgent, thng ging proxyHost.
sipPassword: mt khu UserAgent ng k i vi SIP Proxy.
Tham s ny khng bt buc i vi cc SIP Proxy khng yu cu
UserAgent chng thc trc khi thc hin cng vic kt ni ti
mt UserAgent khc.
sipDisplayName: tham s ny l khng bt buc, l tn hin th
ca UserAgent.
sipProtocol: giao thc truyn vn ca chng trnh, mc nh l
UDP.

Hnh 2.3: Biu lp ParameterLoader

1.3.2.

simplecall.account:

Gm c 2 lp: AccountManager v UserCredentialsImpl:


o AccountManager: L lp k tha ca lp AccountManager, qun l SIP
account. Trong lp ny, ngoi hm khi to cn c hm getCredentials, tr
v mt thc th ca lp UserCredentials. Lp ny c trong b th vin
JAIN SIP.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

27

Hnh 2.4: Biu lp AccountManagerImpl


o UserCredentialsImpl: Lp m rng ca lp UserCredentials. nh ngha
thm cc tham s phc v cho vic chng nhn s hp l ca account vi
SIP Proxy. Ngoi hm khi to, lp UserCredentialsImpl cn c cc hm
getter tr v gi tr ca cc thuc tnh: userName, sipDomain v password.

Hnh 2.5: Biu lp UserCredentialsImpl

1.3.3.

simplecall.address:

Trong package simplecall.address ch c mt lp EndPoint duy nht, nh ngha


mt a ch bao gm a ch IP v s port ca mt UserAgent. Cc thc th SIP
khc c trong mt h thng SIP s cn c vo EndPoint ca thc th hin ti
thc hin chc nng.

Hnh 2.6: Biu lp EndPoint


Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

28

1.3.4.

simplecall.gui:

Package simplecall.gui bao gm 2 lp: MainFrame v LoginFrame. Cc frame


ny c thit k bng IDE Netbeans.
o LoginFrame: ca s ng nhp ca chng trnh.
o MainFrame: Ca s chnh ca chng trnh.

1.3.5.

simplecall.media:

Package simplecall.media bao gm 4 lp: CaptureData, PlaybackData,


SoundCodec, SoundManager.
o CaptureData: Lp ny ci t giao din java.lang.Runnable. Khi chng
trnh hot ng, lp CaptureData s l 1 thread c lp, c d liu t lp
SoundManager, lu vo b m, ri cho d liu trong b m i qua 1
encoder c gi l SoundCodec, nhm mc ch nn d liu m khng
lm mt cht lng ca d liu (d liu l m thanh). Sau , d liu
c nn s c RTPSender gi ra bn ngoi mng Internet.

Hnh 2.7: Biu lp CaptureData


o PlaybackData: Ngc li vi lp CaptureData. Ngha l ly d liu m
thanh (c nn) t RTPReceiver, d liu nn ny sau c i qua 1
decoder, vn chnh l lp SoundCodec. D liu thu c chnh l d liu
m thanh cha b nn, v c lp SoundManager play.

Hnh 2.8: Biu lp PlaybackData


o SoundCodec: Cha 2 bin SpeexEncoder v SpeexDecoder ln lt lm
nhim v encode v decode d liu m thanh.
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

29

getEncodedData: hm tr v d liu c encoded. Tham s


truyn vo l d liu cha c nn.
getDecodedData: hm tr v d liu c decoded. Tham s
truyn vo l d liu c nn, gi tr tr v l d liu nguyn
gc ban u.

Hnh 2.9: Biu lp SoundCodec


o SoundManager: Lp chnh ca package simplecall.media. Cc thuc tnh
chnh ca lp:
- TargetDataLine: Lp thuc package javax.sound.sample. C nhim
v c d liu m thanh t microphone.
- SourceDataLine: Lp thuc package javax.sound.sample. C
nhim v nhn d liu m thanh v a ra speaker.
Cc phng thc chnh ca lp SoundManager:
- readData: c d liu t TargetDataLine, lu ra mt b m, b
m ny c trong tham s truyn vo ca hm readData. Gi tr tr
v l s bytes m phng thc c c.
- writeData: tham s truyn vo l b m cha d liu m thanh.
Phng thc ny s ly d liu v a d liu ra
SourceDataLine play m thanh.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

30

Hnh 2.10: Biu lp SoundManager

1.3.6.

simplecall.rtp:

Package simplecall.rtp gm c 4 lp: RTPManagement, RTPReceiver,


RTPSender, v RTPUtils.
o RTPManagement:
Lp
chnh
ca
package
simplecall.rtp.
RTPManagement c ci t 2 giao din: gov.nist.jrtp.RtpListener v
java.lang.Runnable. RTPManagement c 4 nhim v chnh:
- Capturing: c tn hiu m thanh t microphone, ng gi thnh
cc gi tin RTP.
- Sending: gi cc gi tin RTP c ng gi trn.
- Receiving: nhn cc gi tin RTP t mng Internet.
- Playing: play tn hiu m thanh c tch t gi tin RTP
c nhn trn.
Do chng trnh giao tip theo kiu full-duplex nn phi c c 4 chc nng ni
trn. Sau y l cc thuc tnh chnh ca lp RTPManagement:
- UserAgent: i tng UserAgent ca chng trnh.
- DatagramSocket: UDP socket, lng nghe v gi cc gi tin RTP
theo giao thc truyn vn l UDP.
- SoundManager: i tng qun l m thanh.
- SoundCodec: i tng encode v decode tn hiu m thanh.
- RTPSender: i tng gi RTP.
- RTPReceiver: i tng nhn RTP.
- Thread: thread bao ngoi lp RTPReceiver, chy c lp vi thread
chnh ca chng trnh.
- PlaybackData: i tng play tn hiu m thanh ra speaker.
- CaptureData: i tng c tn hiu m thanh t microphone.
thc hin 4 chc nng nh ni, lp RTPManagement gi ra cc i tng
tng ng thc hin chc nng tng ng.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

31

Hnh 2.11: Biu lp RTPManagement


o RTPReceiver: Lp c nhim v lng nghe v nhn cc gi tin RTP t
mng Internet do 1 UserAgent khc gi ti, ci t giao din
java.lang.Runnable. Phng thc chnh l run(), gi n phng thc
receivePacket(), ti y, DatagramSocket gi phng thc receive(), v
lu d liu ra mt b m. D liu trong b m s c i tng
PlaybackData a ra speaker.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

32

Hnh 2.12: Biu lp RTPReceiver


o RTPSender: ngc li vi RTPReceiver, lp RTPSender ch n gin l
gi cc gi tin RTP i mi khi RTPManagement gi.

Hnh 2.13: Biu lp RTPSender


o RTPUtils: Lp utilities, thm cc tham s khng phi l payload vo gi
tin RTP.

1.3.7.

simplecall.sip:

Package simplecall.sip bao gm 4 lp: SIPContact, SIPEntity, SIPHeaderSet,


SIPUtils.
o SIPContact: Lp m t mt cch tng qut SIP contact. Cc thuc tnh
chnh: sipName, sipAddress, sipPassword, displayName. Cc phng thc
ch yu ch c getter v setter.

Hnh 2.14: Biu lp SIPContact


o SIPEntity: Lp m t mt thc th SIP. Cc thuc tnh chnh:

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

33

Cc phng
shutDown().

sipStack: l i tng javax.sip.SipStack thuc b th vin JAIN


SIP. M t 1 SIP Stack c bn.
udpListeningPoint: l i tng javax.sip.ListeningPoint thuc th
vin JAIN SIP. Bao gm a ch IP v cng lng nghe cc bn
tin SIP.
sipProvider: l i tng javax.sip.SipProvider thuc th vin
JAIN SIP.
sipListener: l i tng javax.sip.SipListener thuc th vin JAIN
SIP.
addressFactory: l i tng javax.sip.address.AddressFactory
thuc th vin JAIN SIP. Lp factory khi to cc SIP address.
headerFactory: l i tng javax.sip.header.HeaderFactory thuc
th vin JAIN SIP. Lp factory khi to cc header ca bn tin SIP.
messageFactory: l i tng javax.sip.message.MessageFactory
thuc th vin JAIN SIP. Lp factory khi to cc bn tin SIP.
stackName: tn ca SIP stack, c coi nh l ID ca SIP stack .
Vi cc tn khc nhau th cc SIP stack khng b trng nhau trong
khi tham gia lin lc trong mt h thng SIP.
thc chnh ca lp SIPEntity ch gm c getter, setter v hm hy

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

34

Hnh 2.15: Biu lp SIPEntity


o SIPHeaderSet: Lp m t cc header ca mt bn tin SIP:
- requestURI: tiu ca bn tin SIP. c nh dng l mt SIP
URI.
- fromContact v toContact: l 2 SIP contact, mt thuc tnh l SIP
contact ca ngi gi (Caller) v thuc tnh cn li l ngi nhn
(Callee).
- cSeqHeader: call sequence header ca bn tin SIP. Trong mi bc
giao dch th gi tr cSeqHeader s tng ln 1 n v.
- callIdHeader: callId header ca bn tin SIP. y l i tng ID
ca cuc gi, gi tr ny khng bao gi trng nhau, ngha l khng
bao gi c 2 cuc gi ging ht nhau v thi gian, a ch, v i
tng tham gia cuc gi .
- maxForwards: gi tr max forward ca bn tin SIP. Mc nh ban
u l 70. Sau mi bc giao dch, gi tr maxForwards gim i 1
n v, khi gi tr ny chm mc 0, giao dch b hy.
- viaHeaders: l mt mng cc viaHeader. Mi viaHeader m t a
ch m bn tin SIP phi c gi ti hoc i qua, gi tr ca mi
viaHeader c th l a ch ca ngi nhn bn tin SIP hoc cc
SIP Proxy trung gian.
- contentTypeHeader: header khng bt buc ca bn tin SIP. nh
ngha cc kiu ni dung m rng c th c ca bn tin SIP.
Cc phng thc ch yu ca lp SIPHeaderSet ch bao gm getter v setter.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

35

Hnh 2.16: Biu lp SIPHeaderSet


o SIPUtils: lp utilities ca package simplecall.sip. Chc nng chnh l to
ra cc header a vo i tng UserAgent. Ngoi ra cn c thm chc
nng quan trng l phn tch ni dung ca d liu SDP ly thng tin
cn thit.

1.3.8.

simplecall.ua:

Package simplecall.ua bao gm 6 lp: Bye, Cancel, Register, UserAgent,


UserAgentClient, UserAgentServer.
o Bye: c ci t giao din java.lang.Runnable. Trong lp Bye c nh
ngha 1 lp ni ti SendByeTask c k tha t lp java.util.TimerTask,
lp SendByeTask ny s m nhim cng vic gi Bye request ti ngi
nhn. Phng thc chnh:
- sendRequest: gi Bye request ti a ch cn gi.
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

36

o Cancel: ging lp Bye, lp Cancel cng c ci t giao din


java.lang.Runnable. Trong lp Cancel cng nh ngha 1 lp ni ti
SendCancelTask c k tha t lp java.util.TimerTask, lp
SendCancelTask s m nhim cng vic gi Cancel request ti ngi
nhn. Phng thc chnh l sendRequest() c vai tr tng t nh i vi
lp Bye.
o Register: Lp Register c ci t giao din java.lang.Runnable. Tuy
vy, lp Register ny khc vi 2 lp Bye v Cancel ch: phng thc
sendRequest() s gi Register request ti 1 SIP Proxy thay v gi ti i
tng nhn cuc gi, vi mc ch thng bo a ch, s tn ti ca
UserAgent.
o UserAgent: y l lp chnh ca c chng trnh simplecall, i din cho
ngi gi hoc ngi nhn cuc gi. Trong tng trng hp, UserAgent
s gi cc i tng tng ng l UserAgentClient nu l ngi nhn
cuc gi (Callee) hoc UserAgentServer nu l ngi thc hin yu cu
gi (Caller). Mt khc, UserAgent c khai bo cc i tng khc l:
Bye, Cancel, Register vi mc ch hy cuc gi hoc thng bo vi SIP
Proxy rng mnh online. Theo m hnh trin khai ng dng SIP ca th
vin JAIN SIP th lp UserAgent phi c ci t giao din
javax.sip.SipListener. Giao din javax.sip.SipListener khai bo sn cc
phng thc chnh phc v cho vic nhn v x l cc bn tin SIP. Cc
thuc tnh quan trng ca lp UserAgent:
- sipEntity: thc th SIP, cha cc i tng SIP.
- sipHeaderSet: tp cc SIP header, phc v cho cng vic xy dng
cc bn tin SIP.
- fromContact v toContact: l cc i tng ca lp SIPContact.
M t a ch SIP ca bn nhn v bn gi.
- Cc i tng trc tip gi SIP request: byeRunner, cancelRunner,
registerRunner, uacRunner, uasRunner. Phi m bo rng thread
c khai bo vi hm khi to c mt trong nhng i tng trn
l tham s truyn vo, trong 1 thi im ch c mt i tng
duy nht thc thi chc nng ca mnh.
- rtpManager: i tng chuyn x l nhng cng vic lin quan n
vic nhn, x l v gi cc gi tin RTP.
Cc phng thc quan trng ca lp UserAgent:
- runBye: thc thi thread Bye.
- runCancel: thc thi thread Cancel.
- runRegister: thc thi thread Register.
- runUAC: thc thi thread UserAgentClient.
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

37

runUAS: thc thi thread UserAgentServer.


startRTPSession: sau khi tin hnh kt ni trc tip vi i
tng ca cuc gi, UserAgent bt u thc hin phin truyn tn
hiu m thanh thc hin cuc hi thoi.
- stopRTPSession: ngc li vi startRTPSession, phng thc ny
dng phin truyn tn hiu m thanh, cng ng ngha vi ngt
cuc hi thoi.
- processRequest: x l cc SIP request nhn c ni chung.
- processResponse: x l cc SIP response nhn c ni chung.
- processTimeout: x l s kin timeout.
- processTransactionTerminated: x l s kin phin truyn b ngt
vi i tng ca cuc gi hoc i tng khc.
- processDialogTerminated: x l s kin hy SIP dialog.
o UserAgentClient: Lp UserAgentClient c ci t giao din
java.lang.Runnable. Trong lp UserAgentClient c nh ngha lp ni ti
SendRequestTask, chuyn gi SIP request ti i tng ca cuc gi.
o UserAgentServer: Lp UserAgentServer c ci t giao din
java.lang.Runnable. Bn trong lp UserAgentServer c nh ngha lp ni
ti SendResponseTask, l lp duy nht thc hin nhim v gi SIP
response, bi v ch c UserAgentServer mi c chc nng ny.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

38

1.4. S thut ton:


1.4.1.
Chc nng Register:

Hnh 2.17: S thut ton chc nng Register


Thng tin y bao gm:
- Username.
- Password.
- SIP proxy domain.

1.4.2.

Chc nng thot:

Hnh 2.18: S thut ton chc nng thot


Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

39

1.4.3.

Chc nng Invite:

Hnh 2.19: S thut ton chc nng Invite


Thng tin y l: SIP URI ca i tng m ngi dng yu cu m thoi.

1.4.4.

Chc nng Bye:

Hnh 2.20: S thut ton chc nng Bye


Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

40

2. Kt qu thc hin, ci t, th nghim h thng:


2.1. Ci t chng trnh:
2.1.1.
Ci t mi trng Java Runtime:
tin hnh thc hin chng trnh trc ht chng ta phi ci t mi trng
cho chng trnh. Do chng trnh simplecall c vit trn nn ngn ng Java,
nn trc ht phi ci t Java Development Kit hoc Java Runtime Environment.
Download ti a ch :
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Hin ti, phin bn Java Standard Edition l Update 25.

2.1.2.

Checkout source code:

checkout m ngun chng trnh simplecall v, trc ht chng ta cn ci t


mt chng trnh subversion bt k, ty thuc vo h iu hnh. Gi s ngi dng
hin ti ang s dng h iu hnh Windows ca Microsoft, em khuyn khch dng
chng trnh TortoiseSVN checkout m ngun.
a ch download TortoiseSVN: http://tortoisesvn.net/downloads.html .
Sau khi download v ci t TortoiseSVN, ngi dng tin hnh checkout m
ngun theo a ch sau:
https://haimt0304.googlecode.com/svn/trunk/simplecall

Hoc
http://haimt0304.googlecode.com/svn/trunk/simplecall

2.1.3.

Bin dch v chy chng trnh:

Vy l chng ta hon tt vic ly m ngun mi nht ca chng trnh


simplecall. Vic tip theo l tin hnh bin dch v chy.
bin dch chng trnh, em s dng cng c bin dch dnh ring cho Java
l Apache Ant.
a ch download: http://ant.apache.org/bindownload.cgi
Gi s th mc cha chng trnh simplecall c ng dn l: D:\simplecall.
Chng ta m DOS Command ln v thc hin cc dng lnh sau bin dch
chng trnh:
D:
cd simplecall
ant

chy chng trnh n gin ch cn click chut vo file simplecall.jar c


trong th mc simplecall. Hoc c th thc hin bng DOS Command nh sau:
ant run

2.2. Thc hin chng trnh:


Sau khi click chut vo file simplecall.jar trong th mc simplecall ta c giao
din chng trnh:
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

41

Hnh 2.21: Ca s ng nhp


Chng trnh mc nh lu SIP username v SIP password ca ln ng nhp
trc trong config file. Nu ko mun lu cc gi tr trn, ngi dng c th m file
log4j.properties trong th mc simplecall\conf v xa cc thng tin cu hnh ngi
dng.
Sau khi ng nhp thnh cng, giao din ca chng trnh s bin i thnh:

Hnh 2.22: Ca s chnh


Nhp a ch SIP vo To v click vo nt bm
thc hin yu cu
m thoi. Gi s trng hp ny, ngi dng s 1 c a ch SIP l:
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

42

sip:2233478087@sip2sip.info

yu cu m thoi i vi ngi dng s 2 c a ch SIP l:


sip:2233478089@sip2sip.info

Ti ca s chng trnh bn pha ngi nhn cuc gi:

Hnh 2.23: Ca s nhn cuc gi


chp nhn yu cu, click vo nt

, nu khng chp nhn, click vo nt

.
kt thc cuc m thoi, click vo nt

kt thc.

2.3. Kim tra chng trnh:


Chng ta s dng tool ca th vin JAIN SIP i km kim tra v xem xt cc
giao dch gia 2 UserAgent v UserAgent vi SIP Proxy. Apache Ant vn l cng
c quen thuc theo di giao dch thng qua logfile. Tin hnh bng DOS
Command nh sau:
ant view

2.3.1.

Giao dch Register:

y, i tng c end point l 192.168.1.110:5062 l ngi dng th nht,


cng l ngi dng yu cu m thoi. Cn i tng c end point l
81.23.228.150:5060 chnh l SIP Proxy server.
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

43

Ln gi Register request u tin khng i km password, SIP Proxy s


tr li mt response c m 401 (Unauthorized).
Ln gi Register request tip theo s i km vi password. Cc tham s
username, SIP Proxy domain v password s c ghp vi nhau v hash
trc khi a vo request, m bo bo mt ca thng tin ngi
dng.

Hnh 2.24: Giao dch Register


Trong ni dung bn tin Register, hashkey l on k t c in m:
REGISTER sip:sip2sip.info:5060;maddr=proxy.sipthor.net SIP/2.0
Call-ID: b97bb88d67dde92451533c331dcf0b4c@192.168.1.110
CSeq: 1 REGISTER
From: "HaiMT1" <sip:2233478087@sip2sip.info>;tag=1147571639
To: "HaiMT1" <sip:2233478087@sip2sip.info>
Via: SIP/2.0/UDP 192.168.1.110:5062;branch=z9hG4bK-3937378572070185132906c0f3eea4004431fc
Max-Forwards: 70
Contact: "HaiMT1" <sip:2233478087@192.168.1.110:5062>
Authorization: Digest username="2233478087",realm="sip2sip.info",
nonce="4ddf1c7d1f14838f037589cd6c199b2048102d16",
uri="sip:sip2sip.info:5060;maddr=proxy.sipthor.net",
response="589ec3e3c94b3fc02b7e2c2a6a061015"
Content-Length: 0

Chp nhn ngi dng, SIP Proxy s tr v response c m 200 (OK).

2.3.2.

Giao dch Invite:

tin hnh yu cu m thoi, chng trnh simplecall s gi Inivite request ti


a ch ngi nhn, thng qua SIP Proxy. Ti y vn l cc hng gi bn tin gia
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

44

ngi dng th nht c end point 192.168.1.110:5062 vi SIP Proxy server c end
point l 81.23.228.150:5060.
- Ngi dng s 1 gi Invite request c ni dung l:
INVITE sip:2233478089@sip2sip.info SIP/2.0
Call-ID: ec36ae07febeaa341689ec72ed5cf25b@192.168.1.110
CSeq: 1 INVITE
From: "HaiMT1" <sip:2233478087@sip2sip.info>;tag=322366465
To: <sip:2233478089@sip2sip.info>
Via:
SIP/2.0/UDP
192.168.1.110:5062;branch=z9hG4bK-393737f5ffb0e4b6836ad1694a7f5c4503bdcc
Max-Forwards: 68
Contact: "HaiMT1" <sip:2233478087@192.168.1.110:5062>
Content-Type: application/sdp
Content-Length: 277

Mt ln na, Proxy li yu cu chng thc. Sau khi Invite request c thm


tham s chng thc vi Proxy server ri, Proxy s tr v response c m 100
(Trying) v ngay sau l 180 (Ringing).
- Nu Proxy server gi response c m 200 (OK), iu c ngha l gia
2 i tng ngi dng c th trc tip gi v nhn cc gi tin RTP vi
nhau hay trc tip nghe v gi.
- lm iu , ngi dng s 1 gi mt bn tin Ack request ti thng
ngi dng s 2 m khng thng qua SIP Proxy.

Hnh 2.25: Giao dch Invite

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

45

2.3.3.

Giao dch Bye:

Khi mt ngi dng mun dng cuc m thoi ti y, chng trnh s gi mt


bn tin Bye request ti chng trnh ca ngi dng kia. Ni dung ca bn tin Bye:
BYE sip:2233478089@58.187.127.13:5064 SIP/2.0
Via:
SIP/2.0/UDP
192.168.1.110:5062;branch=z9hG4bK-3937379a62f62980d483512c2a221048ee12a6
CSeq: 3 BYE
From: "HaiMT1" <sip:2233478087@sip2sip.info>;tag=322366465
To: <sip:2233478089@sip2sip.info>;tag=25f2f404
Call-ID: ec36ae07febeaa341689ec72ed5cf25b@192.168.1.110
Max-Forwards: 70
Route:
<sip:81.23.228.150;lr;ftag=322366465;did=e3d.e70b6b>,<sip:81.23.2
28.129;lr;ftag=322366465;did=e3d.1ea32047>,<sip:81.23.228.150;lr;
ftag=322366465;did=e3d.f70b6b>
Content-Length: 0

Khi ngi dng s 2 tr li 1 response c m 200 (OK) ngha l chng


trnh chp nhn dng cuc gi.
Ti y, m thoi kt thc.

Hnh 2.26: Giao dch Bye

3. nh gi v so snh h thng:
3.1. u im ca chng trnh:
V nhng u im ca chng trnh simplecall:
- Nh gn d mang nhiu th vin v resource file.
- n gin, d s dng.
- ng k vi Registrar server bng a ch SIP.
- Thc hin yu cu m thoi ti 1 a ch SIP.
- C th hy, hoc t chi yu cu m thoi.
- Tn hiu ting ni l tn hiu PCMU 8000Hz, y l tn hiu tiu chun
ca mt thnh phn UserAgent trong mng li VoIP ni chung v SIP
VoIP ni ring.

3.2.

Nhc im ca chng trnh:

V nhng nhc im ca chng trnh simplecall:


- Cha c chc nng ng k 1 a ch SIP mi.
Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

46

Hn ch v s la chn Registrar cng nh Proxy.


Giao din ha GUI vn cn n s, cha c bt mt.
Cha c chc nng tt m thanh (mute) v tng gim m lng.
Khng th ci t chng trnh vi self-installer packet.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

47

KT LUN
Trong thi gian thc hin n tt nghip, vi mc tiu ca n l xy dng
mt gii php thc hin m thoi bng ging ni qua mng Internet, nhm a dng
ha, ngi tiu dng c thm s la chn phng thc lin lc phc v nhu cu
ang tng nhanh nh hin nay. Do VoIP l mt khi nim tng i rng, bao gm
c lnh vc in t vin thng, mng truyn thng, i hi phi c mt i ng
nghin cu pht trin ln v lu di cng nh cn nhiu kinh ph. Nn em cng
khng mong mnh c th m ng c ht cc chc nng m mt h thng VoIP
phi c.
Vi mc tiu chi ph pht trin thp, kh nng m rng v trin khai tt th giao
thc mng Session Initiation Protocol l mt s la chn ng n. Hin ti cng c
rt nhiu cc c nhn cng nh t chc, trng i hc tham gia nghin cu giao
thc SIP v cng c mt s thnh qu nht nh.
ng thi, hon thin mt ng dng softphone, em cng c lm quen,
tm hiu mt s cc giao thc khc, phc v cho cng vic nh: SDP, RTP, UDP, v
cc b th vin m c sn trin khai cc giao thc k trn. Qua em tin rng trong
tng lai mnh c th tip tc pht trin ng dng ca mnh cng nh bc u xy
dng mt h thng VoIP thc th, c th trin khai rng ri.
Vi nhng kin thc c tip thu trong trng i hc Bch khoa H Ni, em
nhn thy mnh thu c nhng kt qu sau y khi hon thnh n tt nghip
i hc:
- Xy dng h thng t yu cu thc t.
- Tin hnh kho st, phn tch thit k h thng theo m hnh UML.
- Nghin cu kh su v cc giao thc: SIP, RTP, SDP, UDP.
- Xy dng c mt ng dng hng chc nng.
Tuy nhin, do hn ch v thi gian, kin thc cng nh kinh nghim thc t,
n ca em cn tn ti mt s vn nh sau:
- Kin thc c trnh by trong n cn cha thc s chi tit. Cha a
ra c cn k cu trc, cc thut ton cng nh kch bn ca giao thc
nng ct SIP.
- Chc nng trong chng trnh cn n gin, cha chuyn nghip.
- Phn tch thit k h thng cha thc s ti u.
- n nh ca chng trnh cha thc s tt.
Phng hng pht trin ca n tt nghip i hc:
- Hon thin cc tnh nng c sn ca chng trnh.
- Tng thm cc tnh nng multimedia, phone book, call log, phc v tt
hn cho ngi s dng.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

48

D nh xy dng mt h thng SIP Location Service SIP Registrar


SIP Proxy, cho php ng dng khng phi thng qua mt SIP Proxy min
ph trn mng Internet.
nh ngha mt tn min SIP mi ca ring chng trnh.
C th lin lc c vi cc IP phone.
Tng cng kh nng bo mt v cht lng m thoi ca chng trnh.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

49

TI LIU THAM KHO


Ti liu tham kho sch:
1. Phn tch v thit k h thng thng tin, GS. Nguyn Vn Ba.
2. Phn tch v thit k h thng thng tin Kin thc v thc hnh, TS. L
Vn Phng.
3. Pht trin h thng hng i tng vi UML 2.0 v C++, GS. Nguyn Vn
Ba.
* Ti liu tham kho t Internet :
1. http://www.cs.odu.edu/~cs778/jmflects/lect9RTPSending.html: Transmitting
Media Stream
2. http://peers.sourceforge.net/: Peers | Java SIP phone.
3. http://www.tech-invite.com/index.html:
A
portal
for
promoting
standardization knowledge.
4. http://www.voip-info.org/: All reference guide to all VoIP
5. https://jain-sip.dev.java.net/: JAIN-SIP.
6. http://www.ietf.org/rfc/rfc3261.txt: RFC3261 SIP.
7. http://www.ietf.org/rfc/rfc1889.txt: RFC1889 RTP.
8. http://www.ietf.org/rfc/rfc2327.txt: RFC2327 SDP.
9. http://en.wikipedia.org/wiki/Design_pattern_(computer_science):
Design
pattern.

Sinh vin thc hin: Mai Tin Hi - Kha 51 - Lp K thut my tnh

50

You might also like