Professional Documents
Culture Documents
TT NGHIP I HC
NGNH CNG NGH THNG TIN
H NI 5-2011
Email: nkvinh@gmail.com
H o to: i hc chnh quy
28/5 /2011
2. Mc ch ni dung ca ATN
Tm hiu kin trc Voip v h iu hnh cho di ng Android
Xy dng hon thin mt h thng Voip, demo pha client trn my
Android
3. Cc nhim v c th ca ATN
H Ni, ngy
thng
nm
Thc s V c Vng
MC LC
PHIU GIAO NHIM V N TT NGHIP ......................................................................................................2
MC LC .....................................................................................................................................................................4
KHI NIM V THUT NG ...................................................................................................................................5
DANH MC CC BNG ............................................................................................................................................6
DANH MC CC HNH .............................................................................................................................................7
LI CM N................................................................................................................................................................8
M U .......................................................................................................................................................................8
1.
2.
3.
2.1.1
2.1.2
2.2
2.2.1
2.2.2
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
C bn v Android .................................................................................................................................19
Activity: ............................................................................................................................................................. 19
Service: .............................................................................................................................................................. 20
Intent: ................................................................................................................................................................. 20
Broadcast Receiver: ........................................................................................................................................... 21
Notification: ....................................................................................................................................................... 21
SQLLite ............................................................................................................................................................. 21
XML trong Android: .......................................................................................................................................... 21
Android Manifest: .............................................................................................................................................. 21
CC VN T RA........................................................................................................................................21
3.1
Xc thc d liu .....................................................................................................................................22
3.2
NAT v nh hng ca n ti VoIP ......................................................................................................22
4
GII PHP V CNG C C LA CHN GII QUYT CC VN T RA ...............................................22
4.1
Gii php xc thc d liu .....................................................................................................................22
4.2
Gii php cho cc thit b nm trong NAT ............................................................................................22
3
4.2.1
4.2.2
4.3
4.4
4.5
1.3
1.3.1
1.4
1.4.1
1.4.2
Thut ng
nh ngha
Ghi ch
VOIP
VOIP over 3G
Voice over Internet Protocol Cng ngh cho php truyn thoi
over 3G
s dng giao thc mng IP trn
h tng mng 3G (third-
Thut ng
nh ngha
Ghi ch
generation)
TDM
IP
Internet Protocol
End point
SIP
G711/ G729,
Proxy server
Redirect server
Registrar server
Thut ng v nh ngha
DANH MC CC BNG
DANH MC CC HNH
Figure 1: Kin trc ca h thng Voip.............................................................................. 11
Figure 2: ng k vi Sip Server thnh cng.................................................................... 13
Figure 3: Thit lp thnh cng cuc gi ........................................................................... 16
Figure 4: C ch xc thc username v password ............................................................ 22
Figure 5 : Gii php qua NAT cho cc tn hiu SIP ......................................................... 23
Figure 6: Gii php truyn cc gi tin RTP qua NAT ...................................................... 23
Figure 7: M hnh h thng cn xy dng ........................................................................ 26
Figure 8: M hnh Use case ca ng dng Voip Android ................................................ 31
Figure 9: Biu tun t cho chc nng thm v xem cc account................................. 37
Figure 10: Biu tun t cho chc nng xem v xa lch s cuc gi .......................... 37
Figure 11 : Biu tun t cho chc nng xem v xa tin nhn...................................... 37
Figure 12: : Biu tun t cho chc nng gi tin nhn v to cuc gi ........................ 38
Figure 13 : Biu tun t cho chc nng xa v sa ti khon .................................... 39
Figure 14: Kin trc ng dng Voip Android .................................................................. 39
Figure 15 Class UAStateReceiver .................................................................................... 41
Figure 16 SipService ......................................................................................................... 43
Figure 17 SipNotifications ................................................................................................ 45
Figure 18 S lp x l Media ....................................................................................... 47
Figure 19 Class SipMessage ............................................................................................. 48
Figure 20 Class CallInfo ................................................................................................... 49
Figure 21 Class IAccount.................................................................................................. 50
Figure 22 AccountState..................................................................................................... 51
Figure 23 S lp cho giao din thm account.............................................................. 52
Figure 24 S lp ca Voip Android widget ................................................................. 54
Figure 25 S lp ca giao din x l cuc gi trong Voip Android ............................ 55
Figure 26 S lp giao din chnh ca Voip Android ................................................... 56
Figure 27 S lp giao din ci t ca Voip Android ................................................. 57
Figure 28 S lp giao din qun l ti khon ca Voip Android ................................. 58
Figure 29 S lp giao din qun l lch s cuc gi ca Voip Android ...................... 59
Figure 30 S lp chn ti khon gi hoc gi tin ca Voip Android ..................... 60
Figure 31 Qun l ti khon .............................................................................................. 63
Figure 32 Mn hnh ci t v gi tin nhn ...................................................................... 64
Figure 33 Mn hnh qun l cuc gi ................................................................................ 65
LI CM N
Trc tin em xin gi li cm n chn thnh su sc ti cc thy c gio trong
trng i hc Bch Khoa H Ni ni chung v cc thy c gio trong vin Cng
ngh Thng tin, b mn Cng ngh Phn mm ni ring tn tnh ging dy,
truyn t cho em nhng kin thc, kinh nghim qu bu trong sut thi gian qua.
c bit, em xin gi li cm n n thy V c Vng. Thy tn tnh gip
, trc tip ch bo, hng dn em trong sut qu trnh lm n tt nghip.
Trong thi gian lm vic vi thy, em khng ngng tip thu thm nhiu kin thc
b ch m cn hc tp c tinh thn lm vic, thi nghin cu khoa hc
nghim tc, hiu qu, y l nhng iu rt cn thit cho em trong qu trnh hc
tp v cng tc sau ny.
ng thi em xin chn thnh cm n anh Cao Xun Tun, trng phng R&D,
Trung tm phn mm Viettel v anh nh Thng trng ban cng ngh to
mi iu kin v c s vt cht gip em c mt mi trng tt thc hin ti
gip em hon thnh ti ny
3. B cc ca n tt nghip
n tt nghip c chia thnh cc phn nh sau:
M U
Gii thiu ti, mi trng thc hin n, tm tt b cc ca n tt
nghip
PHN 1: t vn v nh hng gii php
1. Cc nhim v cn thc hin trong ti
2. C s l thuyt v cng c s dng.
PHN 2: Cc kt qu t c
1. Phn tch yu cu
2. Thit k h thng
3. Ci t
4. nh gi u, nhc im ca h thng
KT LUN
Kt lun chung: t nh gi cng vic lm c v cha lm c, nh
hng pht trin v hon thin h thng trong tng lai.
Tng quan v ti
Trong mt mng VOIP, c 2 giao thc c s dng chnh .Giao thc u tin l
Signaling Protocol (giao thc bo hiu): dng trong vic khi to v qun l cc tng
tc gia cc user session bao gm voice, video, instant messaging. Giao thc th hai l
speech transmission protocol: giao thc truyn ting ni. C hai giao thc yu cu tt c
cc thng tin c truyn ti trong cc gi tin IP. Cho ti nay c mt vi chun cho
signaling protocols, gm c H.323, SIP .Cn RTP l chun cho speech transmission
protocol c s dng trong cc mng VOIP .Tn hiu ting ni c s ha, ng gi
trong cc gi tin v c truyn thng qua mng IP .Ta cn rt nhiu cc gi tin mi c
th truyn ti c mt m n do mt ngi pht ra .Tn hiu voice c s ha bng
cc s dng mt trong cc chun G.7xx.
Proxy server l mt thit b trung gian nhn SIP request t mt client v sau chuyn
tip request cho ti khi ti c sip client cn ti .Proxy server l thnh phn quan trng
trong h thng VoIP, cho php cc user agent trao i thng tin, ng k ngi dng v
qun l trng thi user agent .Proxy server KHNG thc hin chuyn mch in thoi
(telephone switch) .Khi proxy server thit lp mt cuc gi (peer-to-peer), server s
khng tham gia vo qu trnh truyn ti ting ni .Cc gi tin cha ting ni c truyn
trc tip t mt phone ti mt phone khc
Ngoi ra c n c Registrar server X l cc requests t cc UAC ng k v tr (ip,
port) ca UAC .Registrar server thng c t cng vi proxy server
2.1.1 Gii thiu v SIP
SIP l giao thc tng application trong m hnh OSI n c s dng thit lp, thay
i, v kt thc cc session, SIP l giao thc thun text (clear text) .Thit lp cc tham s
v media c s dng (codec, ip, port) gia cc UA thng qua Session Description
Protocol (SDP) .Giao thc SIP c thit k l mt phn ca mt kin trc a phng
tin bao gm cc giao thc khc nh RTP, SDP .Tuy nhin SIP khng ph thuc vo cc
giao thc khc lm vic .a ch SIP ging nh mt a ch email, v d nh:
johndoe@sipA.com. Cc phng thc c trong SIP gm c:
INVITE = Thit lp phin
ACK = Xc nhn yu cu INVITE
BYE = Kt thc phin
CANCEL = Hy b vic thit lp phin
Giao thc truyn d liu, RTP, chu trch nghim truyn d liu thi gian thc.
Thng tin cung cp cho giao thc ny bao gm timestamps ( ng b ha),
chui s (cho kim tra gi tin b mt) v tham s ch nh dng ca d liu.
Mt giao thc iu khin, RTCP, dng tnh ton cc tham s trn ng truyn
RTP ti u ng truyn. Bng thng ca RTCP tng i nh so vi RTP,
nm trong khong 5%.
Khi User mun s dng IP phone s dng dch v VoIP h phi thc hin bc ng
k a ch sip ca h vi mt registrar server.Registrar server cung cp cc thng tin v
user cho location server (location database) da trn cc request nhn c t user
.SIP phone s dng phng thc REGISTER register ti registrar server. Server nhn
v lu cc thng tin trong request nhn c vo location database .Registrar server c
th chp nhn cc loi thng tin khc nhau, khng ch a ch IP ca client .Database c
cha tt c cc nh x gia a ch SIP tng ng vi a ch IP ca client, v d: SIP user
8590@ekiga.net ng k a ch IP 200.180.1.1.
Caller gi SIP REGISTER request ti SIP server .Request ny bao gm trong n danh
sch lin lc (contact list) ca user (danh sch cc a ch SIP ca Caller). SIP server
yu cu user nhp thng tin (user ID v password) xc thc .SIP client m ha thng
tin ngi dng v gi ti server .Server xc thc thng tin ngi dng, nu thnh cng n
tr v chui 200 OK cho SIP client .Vi c ch ny client s dng gi tr nonce (Do
server sinh ra v gi cho client v l dy s ch dng 1 ln, tng t nh one time
password) to ra thng tin gi ln server.
Thng tin gi ln server gm c checksum ca username, password, gi tr nonce
(username, cnonce, hash (nonce +cnonce + password)) v kt hp vi mt s gi tr khc
Trong phn ny s i chi tit v vic thit lp cuc gi (thit lp sesssion) gia hai SIP
UA: 1000@192.168.133.193 (Alice) v 1001@192.168.133.193 (Bob) .S trao i thng
tin v media ca UA c t trong SDP payloads .Trong phn ny, cuc gi c thit
lp v cui cng yu cu kt thc cuc gi n t pha 1000.
F1 INVITE sip:1001@192.168.133.193 SIP/2.0
Via: SIP/2.0/UDP 192.168.133.193:6060;rport;branch=z9hG4bKrybFW32gj
Max-Forwards: 70
To: <sip:1001@192.168.133.193>
From: <sip:1000@192.168.133.193>;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
CSeq: 4 INVITE
Content-Length: 218
Content-Type: application/sdp
Contact: <sip:1000@192.168.133.193:6060;transport=UDP>
Ni dung bn tin SDP (t on v=0) request ny cho bit. SIP phone ca 1000 s nhn
RTP audio c loi codec l 0, 8, 101 192.168.133.193: 8000
F2 SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.133.193:6060;rport=6060;branch=z9hG4bKrybFW32gj
Record-Route: <sip:192.168.133.193;lr>
Contact: <sip:1001@192.168.133.196:32322;rinstance=2f19f079276fe5f9>
To: <sip:1001@192.168.133.193>;tag=ca470244
From: <sip:1000@192.168.133.193>;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
CSeq: 4 INVITE
User-Agent: X-Lite release 1002tx stamp 29712
Content-Length: 0
CSeq: 4 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE,
INFO
Content-Type: application/sdp
User-Agent: X-Lite release 1002tx stamp 29712
Content-Length: 247
v=0
o=- 6 2 IN IP4 192.168.133.196
s=<CounterPath eyeBeam 1.5>
c=IN IP4 192.168.133.196
t=0 0
m=audio 52062 RTP/AVP 0 8 101
a=fmtp:101 0-15
a=rtpmap:101 telephone-event/8000
a=sendrecv
a=x-rtp-session-id: 9BF1CA1AD44A4BBDB2F89BE1533DFFB0
Ni dung bn tin SDP (t on v=0) response trn cho bit. SIP phone ca 1001 s
nhn RTP audio c loi codec l 0, 8, 101 192.168.133.196: 52062
F4 ACK sip:1001@192.168.133.196:32322;rinstance=2f19f079276fe5f9 SIP/2.0
Via: SIP/2.0/UDP 192.168.133.193:6060;rport;branch=z9hG4bKrybFW32gj
To: <sip:1001@192.168.133.193>;tag=ca470244
From: <sip:1000@192.168.133.193>;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
CSeq: 4 ACK
Route: <sip:192.168.133.193;lr>
Max-Forwards: 70
Sau khi thc hin xong bc 4 .RTP stream c thit lp gia 1000 v 1001 .Khi 1000
thc hin gc my, BYE c to ra bi 1000
F5 BYE sip:1001@192.168.133.196:32322;rinstance=2f19f079276fe5f9 SIP/2.0
Via: SIP/2.0/UDP 192.168.133.193:6060;rport;branch=z9hG4bK0mvp65wxR
To: <sip:1001@192.168.133.193>;tag=ca470244
From: <sip:1000@192.168.133.193>;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
CSeq: 6 BYE
Route: <sip:192.168.133.193;lr>
Max-Forwards: 70
F6 SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.133.193:6060;rport=6060;branch=z9hG4bK0mvp65wxR
Contact: <sip:1001@192.168.133.196:32322;rinstance=2f19f079276fe5f9>
To: <sip:1001@192.168.133.193>;tag=ca470244
From: <sip:1000@192.168.133.193>;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
CSeq: 6 BYE
User-Agent: X-Lite release 1002tx stamp 29712
Content-Length: 0
2.3
C bn v Android
Activity:
Cc vn t ra
Internet ngy cng c s dng rng ri, cc dch v web, tng tc trc tuyn ngy
cng pht trin, s lng my tnh kt ni Internet ngy cng nhiu dn n s lng a
ch IPv4 thiu ht. IPv6 ra i gip tng thm s lng a ch IP tuy nhin cn phi mt
thm nhiu thi gian c s dng rng ri .Vic dng NAT c nhiu u im nh
gip gii quyt thiu ht IPv4, bo v cc my tnh trong mng ni b trnh s xm nhp
tri php t Internet v nhiu u im khc .Tuy nhin NAT ph v cc giao tip trong
VoIP
Gii php v cng c c la chn gii quyt cc vn t ra
4.1 Gii php xc thc d liu
SIP digest authentication da trn digest authentication c nh ngha RFC 2617.
Vi c ch ny client s dng gi tr nonce (Do server sinh ra v gi cho client v l dy
s ch dng 1 ln, tng t nh one time password) to ra thng tin gi ln server
4
4.2.1
V cc User Agent phi kt ni, gi cc SIP request ti mt SIP server chy trn mt a
ch c ip v port c nh .Do vy pha server s ghi nhn c ip: port mt ngoi ca thit
b kt ni ti n, SIP server s dng thng tin ny gi li cc SIP response nh hnh
di:
Tuy nhin vi gii php ny, ta khng th m bo 100% cc user agent c th giao tip
vi nhau v nu user agent di mt symmetric nat th dng STUN s khng gii quyt
c vn .
4.3 Chn la chun xy dng h thng VoIP
SIP hin ang th hin l chun c dng v s dng ph bin trong tng lai bi s
n gin v h tr tng tc tt gia cc h thng khc nhau. Cc bn tin SIP c th
hin di dng text base v truyn i trong mng IP tng t nh HTTP. Ta c th pht
trin v xy dng dch v voice da trn SIP d v nhanh nh pht trin cc web pages
.N khng yu cu cc h tng mng t bic m tn dng cc thit b, server ca mng
IP c sn .Hn na ngy nay a s cc thit b IP phone u h tr SIP. Do vy ta s s
dng SIP nh l mt gii php cho signaling protocol.
truyn ti v s ha d liu ta s dng giao thc RTP, s ha m thanh dng codec
theo chun G.711 (cho cht lng) v G.729 (cho vic cn bng gia cht lng v bng
thng) v 2 codec trn cng c h tr bi a s cc IP phone ngy nay.
4.4 La chn th vin pht trin ng dng SIP trn client
Mi trng pha client c la chn xy dng demo l Android OS (android API 8).
PJSIP l th vin c th s dng trn nhiu nn tng, th vin kch thc nh (small
footprint), Tch hp sn cc gi th vin media, NAT xy dng ng SIP client.
PJSIP l th vin vit bng C c hiu nng cao, n nh, h tr nhiu nn tng v hin ti
ang c pht trin mnh m. Ngoi ra, th vin i km PJSIP c ng gi sn
cc th vin x l media, NAT. Vi nhng u im ny, ta s dng PJSIP pht trin
ng dng demo pha client.
4.5
Xy dng h thng th nghim tnh kh thi ca cng ngh Voip phc v cho cc d n
tip theo ca Trung tm phn mm Viettel.
1.2 Phn tch yu cu
Sa Makefiles
Bc quan trng u tin cu thc hin l set bit flavour cho Kamailio:
Ci t Kamailio
Lnh ci t
o make install
o PATH=$PATH:/usr/local/sbin
o export PATH
Cc modules ca kamailio c ci t :
o /usr/local/lib/kamailio/modules/
o /usr/local/lib/kamailio/modules_k/
File ti liu v readme file :
o /usr/local/share/doc/kamailio/
File cu hnh:
o /usr/local/etc/kamailio/kamailio.cfg
Hng dn s dng:
o /usr/local/share/man/man5/
o /usr/local/share/man/man8/
-
To MySQL database
to MySQL database, ta chy on script sau:
o /usr/local/sbin/kamdbctl create
Cu hnh Kamailio
Cu hnh trong file di y c th chy c cc modules cn thit.
o /usr/local/etc/kamailio/kamailio.cfg
chy MySQL thm cc d ng di y vo u file:
o #!define WITH_MYSQL
o #!define WITH_AUTH
o #!define WITH_USRLOCDB
Pha Client
Voip Android l mt ng dng trn in thoi chy h iu hnh Android cho php
ngi dng c th to cuc gi, gi tin nhn thng qua h tng mng IP c sn c th
l wifi hoc 3G .Voip Android c vit bng th vin PJSIP, cch build PJSIP cho
nn tng Android c trnh by trn.
1.4.2.2.1 Phn tch c th tng chc nng:
Delete Account
Register
Unregister
Account
Send Message
Modify Account
View
Messages
Account
Management
Add Accounts
Message
Management
User
Delete
Messages
Call
Management
View Accounts
View CallLogs
Place Call
Delete
CallLogs
Qun l cc ti khon:
Thm xa chnh sa Account:
Register / Unregister mt Account vi sip server
Qun l vic nhn v gi tin nhn
a. Bng Account:
ngha cc trng:
ngha ca cc trng:
Figure 10: Biu tun t cho chc nng xem v xa lch s cuc gi
Cc chc nng xem, xa, sa i thng tin ti khon, calllogs, danh sch cc tin nhn c
th c thc hin m khng cn c ti khon ng k thnh cng vi server .Ring
cc chc nng gi tin nhn, thit lp cuc gi bt buc c t nht mt ti khon ng k
thnh cng vi server .Vic ng k ti khon mi do gii hn ca n nn vic ny
phi ng k qua giao din web ca nh cung cp dch v VD: ekiga.net. hoc c to ra
khi ci t Sip Server .ng vi mi thao tc ca ngi dng h thng u cp nht vo
Database tin cho vic qun l .C ch qun l c s d liu ca Android s c
cp chi tit phn sau.
Figure 12: : Biu tun t cho chc nng gi tin nhn v to cuc gi
o package utils: Cha cc class tin ch dng cho vic truy xut database , cp
nht giao din , kim tra s tng thch gia cc dng my , cc thng s
dnh cho vic ci t v khi ng h thng.
o package service: y c th gi l tri tim ca Voip Android ,package ny
x l gn nh ton b chc nng ca h thng ,n c nhim v np th vin
PJSIP vo b nh .a ra cc dch v cho ng dng chnh gi ti: ng
k ti khon ,cp nht trng thi , thit lp cuc gi , ngt kt ni , hold , x l
iu khin media:bt tt loa ,mic (voice) thng qua cc hm ca PJSIP
o package models: L cc lp dng cha cc thng tin cn thit x l
trong h thng nh ti khon , tin nhn , cuc gi
Voip Android cng da vo hai project l pjsip v pjsip-jni
o PJSIP l th vin vit bng C c hiu nng cao, n nh, h tr nhiu nn
tng v hin ti ang c pht trin mnh m. Ngoi ra, th vin i km
PJSIP c ng gi sn cc th vin x l media, NAT. trang ch d
n: http://www.pjsip.org
o Pjsip jni l d n to ra giao din bng Java ( JNI Java native interface
) cho php gi cc hm pjsip vit bng C t Java . Project Pjsip-jni c
trong package org.pjsip.pjsua trong th mc src.
Dng System.Load (libpjsipjni.so) ta s np th vin pjsip vo b nh, dng cc hm
trong project pjsip-jni gi ti PJSIP t trong chng trnh java .PJSIP c np v
chy trong mt tin trnh khc vi ng dng chnh .C th th n chy ngm trong mt
service cung cp cc dch v ng dng chnh kt ni vo s dng . PJSIP chy
trong mt service m bo ngi dng vn nhn c cuc gi v tin nhn n ngay c
khi ng dng chnh khng chy .Vic thng bo da vo c ch notification ca Android
.
1.4.2.2.6 Chi tit ci t
Di y l mt s Class tiu biu
Voip Android Service:
UAStateReceiver
Lp ny c xem nh l mt cu ni gia ng dng Voip Android v PJSIP, k tha
lp CallBack ca PJSIP, override cc hm ca CallBack .N s c PJSIP gi khi c
cc s kin xy ra
o on_incoming_call(acc_id, callId)
c gi khi c cuc gi n cho account c id l acc_id, callId l nh danh duy nht
ca cuc gi , hm ny c dng thng bo cho ngi dng khi no c cuc gi
n ( rung , chung , notification ) v khi to Activity x l cuc gi .
o on_call_state ( callId)
c gi khi c cuc gi c nh danh l callId ang c x l (in progress), hm ny
c gi mi khi cuc gi thay i trng thi, cc trng thi c nh ngha nh sau
CALLING: l trng thi khi bn gi ang c gng gi bn tin invite
kt ni ti sip server.
INCOMING: l trng thi bo c cuc gi ti.
EARLY: khi bn nhn cuc gi tr li cho bn gi bng bn tin sip
c m l 1xx.
CONNECTING: l trng thi m bn gi ch nhn bn tin 200
OK, cn bn nhn ch nhn bn tin xc nhn ACK.
CONFIRMED: y l trng thi thc s hai bn ang m thoi vi
nhau .Mt lung RTP c thit lp gia hai bn truyn d liu
voice
DISCONNECTED: l trng thi kt thc cuc gi, ngi ch ng
kt thc gi bn tin BYE c n ngi kia xc nhn li bng bn tin
200 OK
o on_pager (call_id, from, to, body)
c gi khi c tin nhn ti:
From: ngun ca tin nhn (uri ca ngi gi) VD: vinhnk@ekiga.net
To: ni nhn tin nhn (uri ca ngi nhn) VD: vinh.soict@ekiga.net
cc tin trnh khc gi trong file ISipService.aidl. Mt khi to ra file aidl cng c
Eclipse + AIDL s to ra mt file c cng tn, nhng phn m rng l .java .Trong Voip
Android file c t ng sinh ra l ISipService.java . Ta s dng lp ISipService c
sinh ra ny thc hin kt ni ti SipService.
Figure 16 SipService
o addAllAccounts
Thm account t database vo th vin pjsip v ng k n vi sip server, trng thi ca
vic ng k (thnh cng, tht bi ) s c thng bo cho ngi dng bit.
o getSipProfileState (accountId):
Ly thng tin v Account c id l accountId: c c active khng, m trng thi, tn
hin th
o makeCall(callee, accountId)
Dng Account c id l accountId gi n mt ngi c uri l callee
o answer(callId, status):
o hangup(callId, status):
Tr li hoc t chi (dp my) mt cuc gi c id l callId, status l m c gi i trong
bn tin sip: 403 t chi, 200 tr li, 180 ringing.
o hold( callId)
Gi my cho cuc gi c id l callId
o getCallInfo(callId)
Ly thng tin ca remote party, trng thi cuc gi: CALLING, INCOMING, EARLY,
CONNECTING, CONFIRMED, And DISCONNECTED.Conference port ca cuc
gi c Id l callId
o setMicrophoneMute (on)
o setSpeakerphoneOn(on)
Turn on hoc off speaker (ch aloud)
o sendMessage(msg, toNumber, accountId)
Send message c ni dung msg ti remote party c uri l toNumber s dng account c
Id l accountId
Trong Voip Android khi khi to service th kim tra kt ni mng ca in thoi (c bt
mng 3G hoc wifi), Service ch c to nu sn c kt ni .Tin hnh ng k ti khon
vi sip server t trng thi online cho ti khon .Qu trnh ng k nh c m t
trong phn l thuyt .ng thi ng k vi android OS nhn c thng tin v thay
i trng thi kt ni mng, cuc gi GSM.
o Trong trng hp thay i loi kt ni, v d thay i t 3G sang Wifi hoc
ngc li dn ti a ch Ip local thay i theo .Trong trng hp ny
SipService cn phi khi ng li.
o Trong trng hp ng dng Voip Android nhn c thng tin cuc gi
GSM. Cuc goi gsm c u tin hn cuc gi IP v th nu nu cuc goi
gsm ang active th ip tm dng (hold) sau khi gsm kt thc th kt ni li
SipNotifications:
Notification l mt trong nhng thnh phn quan trng ca Android a ra cc cnh bo
m khng lm cho cc Activity phi ngng hot ng .Trong Voip Android ta s dng
SipNotification thng bo cho ngi dng khi c cuc gi n, cuc gi b nh, tin
nhn n .Do s dng c ch Intent ca Android nn khi ngi dng click vo
notification th s dn n activity x l s kin
Figure 17 SipNotifications
- notifyRegisteredAccounts:
Thng bo cho ngi dng bit nhng ti khon no c ng k thnh
cng vi server
- showNotificationForCall: Thng bo khi c cuc gi n, sau
chuyn qua activity x l cuc gi
- showNotificationForMissedCall: Thng bo khi c cuc gi nh
X l voice l mt phn quan trng trong Voip Android .Trong PJSIP s dng c ch
conference bridge nh tuyn
Figure 18 S lp x l Media
Khi gi tin mt bn tin sip vi Type l MESSAGE c to ra, sipservice s chuyn tip
ln sip server , server c trch nhim forward cho a ch sip c ch ra trong trng To
ca bn tin sip
Khi nhn c tin nhn ngi nhn s gi li bn tin vi m l 200 thng bo vi bn
gi rng tin nhn nhn thnh cng . Trong th vin PJSIP cung cp cho ta hm
pjsua.im_send vi cc tham s l accountID dng gi (cho vo trong trng From ca
sip message), URI ca ngi nhn v d: vinhnk@ekiga.net , thng ip dng text
chn vo trong sip message .
Trng thi ca bn tin ( gi thnh cng, tht bi) s c PJSIP thng bo cho ta bit
qua hm on_pager_status, trong Voip Android ta dng hm ny cp nht trng thi ca
bn tin nhn trong Database (Bng Message).
Trong Voip Android mi tin nhn l mt i tng ca class SipMessage. Cc thuc tnh
trong SipMessage tng ng vi cc trng trong bn tin sip
Body: Ni dung tin nhn.
From: a ch URI ca ngi gi VD: vinhnk@ekiga.net
To: a ch URI ca ngi nhn VD: vinh.soict@ekiga.net
Status: Trng thi ca tin nhn.
CallInfo:
IAccount:
Cc account c nhp vo t Form trong mn hnh add account cha cc thng tin quan
trng cho vic ng k vi Sip Server .Vic ng k c thc hin thng qua bn tin
REGISTER .
AccountState:
Figure 22 AccountState
Account:
Phn ny cho php ngi dng nhp thng tin v username, password, tn hin th trong
cc giao dch thng qua bn tin sip, a ch ca sip server ng k .Sau thm
account ny vo th vin PJSIP, Sip service s ng k n vi server c ch ra
.Trng thi ca qu trnh ang k s c hin ra thng bo cho ngi dng.
Di y l biu lp cho phn giao din lin quan n Account trong Voip Android
Widgets:
Tuy cc widget ca Android l rt a dng nhng i khi ta cng cn nhng widget khc
ph hp vi nhu cu s dng ca mnh .Trong Voip Android c hai widget cho vic x l
cuc gi ang active .Hai widget ny u k tha t FrameLayout
IncallInfo: widget ny dng hin th cc thng s ca cuc gi nh:Tn hin
th ca ngi gi ,a ch URI ca h ,thi gian dm thoi , trng thi ca cuc
gi
o updateRemoteName: Cp nht tn hin th , s in thoi ca remote
party
o updateTitle: Cp nht trng thi ca cuc gi ln mn hnh
o updateElapsedTimer: Hin th thi gian dm thoi tri qua
File giao din ca widget ny l in_call_info.xml trong th mc layout
- IncallControls: widget dng iu khin cuc gi nh: cp my , bt/tt
loa/mic, gi cuc gi , t chi hoc tr li khi c cuc gi ti
o setCallState: vi tham s l mt i tng ca CallInfo cha thng tin
ca cuc gi hin thi .Ty vo trng thi m chnh sa giao din sao
cho ph hp VD: khi c ngi gi n th hin ra hai nt l Answer v
Decline cn n cc nt iu khin khc, cn khi trng thi l
CONFIRMED th n hai nt v hin ra cc nt iu khin (hold,
hangup, turn on/off)
o Trong widget ny c mt tham chiu n mt Interface l
OnTriggerListener .Interface ny c mt hm callback l onTrigger s
c gi khi ngi dng n cc phm iu khin trong widget ny
-
iii.
Main UI:
y l activity x l cuc gi ang m thoi ca Voip Android .Thc thi giao din
OntriggerListener, implement hm onTrigger, hm ny s c gi khi ngi dng n
cc phm iu khin ( c m t trn) trong mn hnh ny .Thng tin v cuc gi
c ly ra t Sip Service thng qua cu ni ISipService, lu gi trong lp CallInfo .T
cc thng tin ny widget IncallInfo s c cp nht hin th ln cho ngi dng .Vic
update c thc hin nh hai phng thc
-
MainScreen l mn hnh chnh ca ng dng Voip Android, cung cp cc chc nng nh:
ci t, thao tc vi cc account, lch s cuc gi, tin nhn, thc hin cuc gi.
iv.
Setting:
Activity ny dng cho ngi dng ci t cc thng s theo nhu cu ca h .Cc thng s
ny quan trng cho vic khi to Sip Service .V vy mi khi ngi dng chn xong ci
t ca h Voip Android bt buc phi khi ng li Sip Service.
Cc thng s cho vic ci t trong lp PreferenceWrapper .Voip Android c thit
k cho nhiu dng my khc nhau nn vic kim tra tnh tng thch l iu quan trng,
vic ny c thc hin trong class Compatiblity, n kim mic/loa loi CPU, API level
m d ng my ang dng .Mt s thng s ci t ng lu :
a. Loi giao thc dng truyn d liu c th l UDP hoc TCP,cng
(pha local dng kt ni)
b. Ci t v giao thc vt NAT, mc nh trong Voip Android
dng giao thc STUN ,ngi dng c th bt tt chc nng ny ty
theo ng cnh h ang dng: nu trong mng LAN th nn b chn
STUN, nu khng th phi chn STUN, h c th la chn STUN
server dng .Mt s STUN server: stun.ekiga.net hoc
stun.counterpath.com
c. La chn loi mng dng, trong Voip Android h tr c 3G v
wifi ,tuy nhin dng wifi cho cht lng thoi tt hn
v.
AccountList:
y l activity qun l ti khon, cho php ngi dng xem thng tin, trng thi ca tng
ti khon .Cc Account c trnh by di dng listview, AccountAdapter dng hin
th tn cng trng thi ng nhp .Cc Account c ly ra t database (hm
getListAccount) .Activity ny cng cho php ngi dng sa, xa, thm ti khon .Bt
c s thay i no u c cp nht vo c s d liu v bo cho SipService bit thng
qua cu ni ISipService
vi.
vii.
viii.
Dialer:
CallLogList:
ConversationList:
Vic qun l cc tin nhn, lch s cuc gi c thc hin trong activity ny .N cho php
ngi dng xem thng tin v lch s cuc gi (Ngy gi, di m thoi, loi cuc
gi), cc tin nhn nhn v gi (ni dng, ngy gi, loi tin nhn) .Cc cuc gi v
tin nhn c ly ra t bng Messages v CallLogs trong database thng qua cc hm
getAllCallLog v getAllConversation ca lp DBAdapter .Ngi dng cng c th to
mt tin nhn mi trong activity ny .Mi thao tc nh xa, to thm tin nhn s c lu
vo DB tin cho vic qun l .
ix.
OutgoingCallChooser:
Kamailio server trong h thng ny c sn sng cao, lm vic vi nhiu giao dch
ng thi v cn c kh nng m rng .C kh nng qun l hng nghn cuc gi mi
giy .Kamailio c duy tr v pht trin bi mt cng ng ln cc lp trnh vin c
kinh nghim, ngy cng h tr kt ni ti nhiu h thng vin thng khc .V th hiu
nng ca h thng c m bo.
Mt khc, s dng b th vin PJSIP gip xy dng ng dng Voip pha client d
dng v nhanh chng ging cc webpages .Hn na PJSIP c vit t C nn c hiu
nng cao, h tr x l media, cc giao thc vt NAT gip gim chi ph pht trin.
ng dng Voip Android c thit k cho nhiu dng my nn c th chy trn nhiu
my android ,c th kt ni ti cc IP Phone khc s dng cng giao thc Sip ( test
vi Xlite 3.0 cho kt qu kh tt)
H thng tn dng h tng mng IP c sn gip tit kim chi ph m thoi khi c kt
ni mng .Vi mng wifi cho cht lng thoi tng i tt.
Nhc im:
Bn cnh cc u im va lit k trn th h thng cng c n tn ti mt s nhc im:
-
KT LUN
Kt lun chung:
n i su vo tm hiu cc khi nim, kin trc ca Voip .Qua xy dng mt h
thng lm th nghim tnh kh thi ca cng ngh voip .Ngoi ra cc cng c c chn
la pht trin h thng gip cho m bm c hiu nng ca h thng .Nhn chung
n thc hin hon thnh cc nhim v c ra
Cc nhim v hon thnh:
-
Sch
Hunh Quyt Thng, Phn tch v thit k phn mm, 2010.
Martin Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling
Language, Third Edition, Addison Wesley, 2003
Ti liu tham kho t Internet
http://www.sparxsystems.com.
http://en.wikipedia.org
http://pjsip.org
http://google.com/
http://sourceforge.net/projects/pjsip-jni/
http://www.kamailio.org/w/
PH LC
Mt s hnh nh minh ha