Tìm hiểu giao thức SIP và xây dựng ứng dụng minh họa

64 297 0
Tìm hiểu giao thức SIP và xây dựng ứng dụng minh họa

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

i LI CM N Li đu tiên em xin chân thành cm n thy Hunh Minh Quang là ngi đã tn tình hng dn, ch bo em trong lúc thc hin đ tài. Nhng ý kin ca thy là vô cùng quý giá đi vi em không nhng trong lúc thc hin đ tài này mà còn là kinh nghim hu ích cho em sau này. Em cng xin chân thành cm n các thy cô trong khoa Tin Hc trng đi hc M TP.HCM đã nhit tình dy d và cung cp cho em nhng kin thc hu dng trong cuc sng. Xin cm n bn bè, anh ch em đã đng viên và chia s thông tin cho em trong khi thc hin đ tài. Cui cùng con xin cm n ba m đã chm sóc, nuôi dng con thành ngi. Mc dù đã c gng nhng vi nhng hiu bit gii hn chc chn s không tránh khi nhng thiu sót. Rt mong thy cô và các bn cm thông và ch bo. Sinh viên thc hin Lu Mnh Hùng iii Mc lc Li cm n i Nhn xét ca giáo viên hng dn ii Mc lc iii Phn I Gii thiu đ tài 1 Chng 1 Tng quan, vai trò và ý ngha ca SIP 1 1.1. Tng quan 1 1.2. Vai trò và ý ngha ca SIP 2 1.3. Các loi dch v s dng SIP 3 1.3.1. Các dch v qun lý phiên c bn 3 1.3.2. Các dch v điu khin nâng cao 4 1.3.3. Các dch v đa phng tin 4 1.3.4. Các dch v hi ngh 5 1.4. Mc tiêu ca lun vn 5 Phn II C s lý lun 6 Chng 2 Cu trúc mng SIP 6 2.1. a ch SIP 6 2.2. Chc nng SIP 6 2.2.1. Cài đt, chnh sa và kt thúc phiên 6 2.2.2. nh v ngi dùng 8 2.3. Các thành phn 9 2.3.1. User Agents (UAs) 9 2.3.2. Proxy server 9 2.3.3. Redirect Server 10 2.3.4. Registrars 11 2.3.5. Location service 11 Chng 3 T chc ca giao thc SIP 12 3.1.Thông đip SIP 12 3.1.1.Khái nim Dialog 12 3.1.2.Yêu cu 14 3.1.3.Các câu tr li 15 3.1.4.Field header 17 3.2.SIP identity 24 3.3.Giao thc SDP 25 Chng 4 Mã tình trng SIP 28 4.1.Nhóm 1 (1xx Provisional Codes) 28 4.2.Nhóm 2 (2xx Successful Status Codes) 29 4.3.Nhóm 3 (3xx Redirection Status Codes) 30 4.4.Nhóm 4 (4xx Client Failure Status Codes) 31 4.5.Nhóm 5 (5xx Server Failure Status Codes) 37 4.6.Nhóm 6 (6xx Global Failure Status Codes) 38 Chng 5 Th tc đng ký và thành lp phiên trong mng SIP 40 5.1. Th tc đng ký 40 5.1.1 .ng ký c bn 40 5.1.2. Khai báo s kin 41 5.2. Thành lp mt phiên trong SIP 42 5.2.1. Truy cp mng 42 iv 5.2.2. Khi to cuc gi 42 5.2.3. Yêu cu t máy khách 44 5.2.4. Tr li t máy ch 44 5.2.5. nh tuyn SIP 45 5.3. Chnh sa phiên SIP 46 5.4. Chm dt phiên SIP 46 Chng 6 Bo mt SIP 47 5.1. Các tn công mng 47 6.1.1. Registration Hijacking 47 6.1.2. Session Hijacking 47 6.1.3. Impersonating a Server 47 6.1.4. Tampering with Message Bodies 47 6.1.5. Tearing Down Sessions47 6.1.6. Denial of Service and Amplification 48 6.1.7. Bots and DDoS Attacks 48 6.2. Gii pháp bo mt 48 6.2.1. Network-layer security (IPSec) 48 6.2.2. Transport-layer security(TLS) 49 6.2.3. SIPS URI scheme 50 6.2.4. HTTP authentication 51 6.2.5. S/MIME 52 Phn III Cài đt giao thc và xây dng ng dng minh ha giao thc SIP 55 Chng 7 Cài đt giao thc và xây dng ng dng LEO 55 7.1. Th vin lp SIP 55 7.1.1. Các thành phn ca th vin 55 7.2. Mô t ng dng 56 7.2.1. Tng quan v ng dng 56 7.2.2. Môi trng xây dng 56 7.3. Cu trúc ng dng 56 7.3.1. Thành phn ca ng dng 56 7.4. Giao din ngi dùng và cu hình 56 7.4.1. Giao din ngi dùng 56 7.4.2. Cu hình 58 7.5. X lý logic ca ng dng 59 Nhn xét đánh giá 60 Tài liu tham kho 61 1  tài: Tìm hiu giao thc SIP và xây dng ng dng minh ha Phn I: Gii thiu đ tài Chng 1: Tng quan, vai trò và ý ngha ca SIP 1.1. Tng quan: S quan tâm đi vi internet và các dch v truyn thông đa phng tin ngày càng tng. Nhng ngi s dng internet trc đây ch đ lt web bây gi li say mê các dch v nh chat (Instant Messaging), game trc tuyn, gi đin thoi và trao đi Video trên mng. Có nhiu dch v cung cp trên mng internet da trên mng IP, có th chia làm 3 nhóm theo quan đim ca ngi s dng là: • Dch v Infotainment: là dch v ngi dùng có th truy cp thông tin và các ng dng gii trí t các máy ch t xa ví d nh Web. • Dch v Streaming: cho phép ngi dùng truy cp trc tuyn hoc download các media (phim, nhc,v.v). • Dch v Communication: cho phép ngi này giao tip vi ngi khác s dng các media khác nhau nh đin thoi hay gi th. 2 Dch v Communication có th chia làm 2 loi: dch v trc tuyn và dch v không trc tuyn. • Trong dch v trc tuyn chúng ta cn phi ni kt đng thi đ vic truyn thông có th xy ra ngay lp tc nh đin thoi, chi c hay chat. • Trong dch v không trc tuyn không cn thit phi kt ni cùng lúc đ truyn thông xy ra nh gi th đin t. Không nh nhng loi dch v khác, tín hiu đóng vai trò quan trng trong dch v truyn thông đa phng tin trên mng IP. SIP (Session Initiation Protocol) là giao thc tín hiu mc ng dng nên vai trò ca nó rt quan trng trong các dch v truyn thông đa phng tin. SIP không thay th các dch v khác đang tn ti nh HTTP, SMTP, POP3, IMAP4 mà nó đc thit k đ b sung cho nhng dch v và các giao thc đang tn ti nh web hay th đin t và khi kt hp vi nhng giao thc này, SIP ha hn mt h thng truyn thông trên mng IP bao gm tt c các dch v có th thc hin trong th gii thc. 1.2. Vai trò và ý ngha ca SIP: Gi s có hai ngi cn truyn thông ging nói trên internet là A và B, c hai ngi đu có máy tính kt ni internet, microphone, loa chng trình chuyn đi âm thanh thành tín hiu s, đóng gói và gi đi thông qua giao thc RTP và ngc li. Khi A nói vào microphone, ging nói s đc chuyn đi thành tín hiu s và đc chng trình máy tính gi đn B thông qua giao thc RTP.  gói d liu âm thanh đn đc B, gói d liu phi cha đa ch ca B. Khi máy ca B nhn đc gói d liu s chuyn đi gói thành tín hiu s và phát ra loa. 3 Có mt s vn đ cn xem xét nh sau: • Khi mt bên mun báo hiu cho bên kia là s bt đu giao tip thì làm th nào? • Bên gi yêu cu cng mun bit là yêu cu ca mình đc thc hin cha, bên nhn đang chp nhn yêu cu và đã chp nhn cha đ bên gi bt đu nói. • Phng thc mã hóa d liu media ca bên gi và bên nhn có ging nhau không? • Nu thay vì mt ngi s dng máy tính th nht thì h mun s dng máy tính th hai có đa ch IP khác thì làm sao? Nhng vn đ trên chng t cn nhng thông tin thêm đ điu khin cách truyn thông thc hin. Nhng thông tin điu khin này là các tín hiu và đc gi gia 2 máy tính ca A và B theo giao thc tín hiu. SIP là giao thc vn chuyn nhng loi thông tin này. 1.3. Các loi dch v s dng SIP: 1.3.1. Các dch v qun lý phiên c bn: SIP có th s dng trong các loi truyn thông đa phng tin sau: Voice communication: Truyn thông ging nói. 4 Video communication: Truyn thông video. Instant Messaging communication (IM): Trao đi tin nhn trc tuyn. Text over IP: Trao đi vn bn thi gian thc. Peer-to-peer gaming: game trc tuyn. Whiteboarding: S dng mt bng v đ trao đi thông tin gia nhng ngi dùng. File transfer: Chia s file. Ngoài ra có th kt hp nhng dch v này mt s nh: • Voice và video. • Voice và IM. • Voice và Real-Time Text. • Voice và File Transfer. • Voice và Gaming. • Voice và Whiteboarding. 1.3.2. Các dch v điu khin nâng cao: Mt s dch v SIP cung cp thêm là: • Xác đnh ngi khi to phiên: SIP bao gm thông tin đnh danh ca ngi gi có th đc th hin đn ngi nhn. Ngc li SIP cng có th ngn đnh danh ca ngi gi th hin cho ngi nhn. • Xác đnh có multimedia trong phiên hay không? Khi to cng có th bao gm ni dung đa phng tin trong yêu cu khi to phiên đ cnh báo cho ngi nhn. Ni dung đa phng tin có th là nhc chuông, hình nh,v.v. • Chn cuc gi: ng dng chn cuc gi có th cn c vào các tham s khác nhau. Chng hn nh da vào ngi khi to, ni đn, ni dung đa phng tin hay nhng tham s khác nh ngày gi. • Gi cuc gi: Dch v này d dàng s dng vi SIP/SDP vì SDP đã cung cp đnh ngha cho vic hot đng và không hot đng ca media đc gi hoc đc nhn. • Chuyn cuc gi. Dch v này d dàng s dng bng cách chnh sa các tham s SIP cái th hin ni đn ca cuc gi khi các điu kin phù hp din ra (chng hn ngi nhn không tr li) 1.3.3. Các dch v đa phng tin: Mt s dch v: • Voice mail: Cho phép ngi gi có th đ li tin nhn ca h đ ngi nhn có th nghe li sau. 5 • Music on hold: Cho nghe nhc khi ch đi. • Ringback tones: Chuông cnh báo cuc gi đn. • Do not disturb: Ngi gi đc chuyn đn mt menu vi mt s tham s đc cu hình. 1.3.4. Các dch v hi ngh: • Multiparty call: Nhiu ngi cùng hi thoi. • Dial-in conferences: Nhng ngi tham gia quay 1 s đnh trc tham gia. • Dial-out conferences: Server đc cu hình đ bt đu hi ngh  thi gian xác đnh. 1.4. Mc tiêu ca lun vn: Vi tm quan trng ca h thng SIP nh ta đã thy mc tiêu ca lun vn là tìm hiu giao thc SIP và cài đt giao thc, xây dng ng dng minh ha giao thc SIP. Vi mc tiêu tìm hiu giao thc SIP lun vn s trình bày v h thng SIP bao gm cu trúc mng SIP, chc nng SIP, các thành phn h thng SIP. Bên cnh đó nó miêu t cách thc t chc ca h thng SIP, th tc đng ký trong mng SIP. Ngoài ra nó còn trình bày vn đ bo mt trong mng SIP. Vi mc tiêu cài đt giao thc, xây dng ng dng minh ha lun vn s tp trung vào cài đt giao thc vi các lp h tr cho hot đng mng SIP. Bên cnh đó là ng dng nh s dng th vin lp giao thc đã cài đt nhm minh ha rõ nét hn mt ng dng ca SIP. 6 Phn II: C s lý lun Chng 2: Cu trúc mng SIP 2.4. a ch SIP: Trong mng SIP mt ngi s dng đc xác đnh thông qua SIP URI. SIP URI là mt URI (Universal Resource Identifier) cha đng thông tin đ khi to và duy trì mt phiên truyn thông vi các tài nguyên. Ví d SIP URI: sip:client1@abc.com Mt SIP URI là lc đ sip: bao gm 2 phn đc chia bi ký hiu @. • Phn ngi dùng chn đ xác đnh tài nguyên đc cp đa ch. Trong ví d trên là: client1. • Phn 2 dùng xác đnh ngun cung cp tài nguyên. Nó có th là tên domain hoc đa ch IP và port.Ví d trên là: abc.com. SIP URI có th ch ngi s dng ,server và mt s loi sau: • nh danh chung ca ngi dùng nh sip:client1@abc.com • a phng ca ngi dùng. • Server SIP nh: sip:193.53.24.3 • Mt nhóm ngi dùng. • Mt dch v. 2.5. Chc nng SIP: SIP là giao thc tín hiu nó gii quyt 2 khía cnh ch cht là: • Cài đt, chnh sa và kt thúc phiên. • nh v ngi dùng. 2.5.1. Cài đt, chnh sa và kt thúc phiên: Chc nng chính ca SIP là khi to phiên truyn thông đa phng tin. S dng SIP mt ngi có th gi tín hiu mun truyn thông ca h đn mt ngi khác và ngi đó có th chp nhn hay t chi li mi đó. SIP cng có th s dng đ chnh sa phiên. Ví d nh thêm mt thành phn media mi vào phiên. Chc nng cui cùng ca vic qun lý phiên là chm dt phiên. Bt k ngi nào tham gia vào phiên có th s dng SIP đ chm dt vic truyn thông và vic gi nhn media. Mt phiên có th din ra nh sau: 7 ̇ Bên mun thành lp cuc gi s gi yêu cu cho bên nhn. H thng SIP s chuyn li mi này đn bên nhn. ̇ Khi yêu cu đc chuyn nó s mt chút thi gian đ bên nhn chp nhn hoc t chi li mi do đó bên gi cn phi đc thông báo là yêu cu đang đc x lý. H thng SIP s chuyn nhng thông tin báo đang đc x lý đn bên gi đ tránh bên gi tip tc gi li yêu cu. ̇ Nu bên nhn yêu cu chp nhn yêu cu thì bên gi cn bit đc thông tin đó đ bt đu thành lp cuc gi. SIP s chuyn thông tin v s chp nhn đn bên gi. ̇ Vic thng nht các tham s đ giao tip nh s mã hóa và gii mã ging nói và video. SIP s s dng vic mô t phiên đ thc hin chc nng này. ̇ Gi s lúc đu phiên có truyn thông c audio và video. Trong khi giao tip mt bên có th mun không truyn video na. Lúc này SIP s chnh sa phiên, mt mô t phiên mi không có video s gi đn bên kia và nu yêu cu đc chp nhn thì lúc này ch còn truyn ging nói. ̇ Sau khi giao tip mt bên mun ngt cuc gi chm dt đàm thoi thì h thng SIP s chm dt phiên. [...]... a giao th c SIP 3.1 Thông i p SIP: Các thành ph n SIP là các thành ph n logic ch không ph i là thành ph n v t lý M t thành ph n v t lý nh Server có th h tr nhi u thành ph n logic Các thành ph n SIP ph i có kh n ng x lý thông i p SIP g i là các l p Có các l p sau: Cú pháp và mã hóa: Là l p c n thi t, cú pháp và mã hóa c n ph i hi u thông d ch ho c x lý các thông i p SIP L p v n chuy n: dùng ph n SIP. .. u b m và sau 200ms nó s g i Provisional Codes VD: SIP/ 2.0 100 TRYING VIA: SIP/ 2.0/UDP 128.10.10.1 FROM: ABC TO: CBA CALL-ID: 82167534@126.18.27.0 CSEQ: 1 INVITE CONTENT LENGTH: 0 4.1.2 Mã 180 Ringing: Mã này c g i b i UAS Nó báo cho user bi t yêu c u ang và UAC s d ng g i chuông báo n ng i g i VD: SIP/ 2.0 180 RINGING VIA: SIP/ 2.0/UDP 128.10.10.1 FROM: ABC ... server s i g i sau VD: SIP/ 2.0 182 QUEUED VIA: SIP/ 2.0/UDP 128.10.10.1 FROM: ABC TO: CBA CALL-ID: 82167534@126.18.27.0 CSEQ: 1 INVITE CONTENT LENGTH: 0 a vào hàng 4.1.5 Mã 183 Session Progress: Mã này c s d ng báo v i ng i t o yêu c u là yêu c u ang x lý VD: SIP/ 2.0 183 SESSION PROGRESS VIA: SIP/ 2.0/UDP 128.10.10.1 FROM: ABC TO: CBA ... u tiên s c lo i b Contact: < sip: abc@5.4.3.2 > 20 Nh hình trên yêu c u BYE c nh tuy n tr c ti p gi a hai ng dùng trên c s SIP URI trong Contact header i 3.1.4.6 Record-Route and Route: C hai header Record-Route và Route ch a ng danh sách các SIP URI M i danh sách ch a m t chu i các proxy Các SIP URI này ch a a ch IP hay tên mi n và port Các header ROUTE c s d ng b i UA và proxy nh tuy n yêu c u theo... media c a thân thông i p Thông i p SIP có th ch a i t ng SDP trong thân thông i p 3.1.4.10 Content-Length: Header Content-Length ch rõ kích c thân thông i p 23 Content-Length: 349 3.1.4.11 Content-Encoding: Ch rõ lo i mã hóa gì c s d ng trong thân thông i p 3.2 SIP identity: Tài nguyên trong m ng SIP nh d ng c a các URI nh sau: c xác nh thông qua SIP URI và SIPS URI sip: user:password@host:port;uri-parameters?headers... SIP khác t o các thông i p và g i trên m ng L p giao d ch: ch u trách nhi m qu n lý, truy n l i các câu tr l i c u n các thành n các yêu Các ng i dùng giao d ch: ch u trách nhi m t o các thông i p nh INVITE, h y b giao d ch, xác nh a ch Trong các l p trên 2 l p u là c n thi t ph i có 3.1.1 Khái ni m Dialog: Khi 2 thi t b giao ti p v i nhau chúng trao i nh ng thông i p (là các giao d ch) Ví d m t i n... r ng SDP Có th phân lo i thu c tính m c phiên và m c media ̇ Sendrec: Ng i g i mu n g i và nh n media ̇ Recvonly: Ng i g i ch nh n không g i media ̇ Sendonly: Ng i g i ch g i không nh n media ̇ Inactive: ng i g i không g i và không nh n media 27 Ch ng 4: Mã tình tr ng SIP Mã tình tr ng th hi n tình tr ng giao ti p tình tr ng c phân thành 6 lo i: h u ích và d qu n lý h n mã 4.1 Nhóm 1 (1xx Provisional... câu tr l i n yêu c u và trao i các thông i p khác (xem nh là m t dialog v i thi t b khác) M t phiên có th có nhi u dialog nh hình sau: 12 M i dialog c n m t dialog ID b t ngu n t SIP header Khi UAC g i yêu c u nó mong ch câu tr l i Câu tr l i c n nh ng header nh TO, FROM CALL ID Header TO và FROM c n tham s TAG s d ng tính dialog ID Dialog ID là duy nh t trong UAC và UAS SIP là giao th c d ng text có... thi t b c a ng i dùng và nh danh chung c l u vào b ng ch a d li u Khi có cu c g i n thi t b c a ng i dùng, cu c g i s nh tuy n n server k t h p v i thi t b ó, truy v n DNS có a ch IP và g i tín hi u n ng i dùng 8 2.6 Các thành ph n: 2.6.1 User Agents (UAs): M t UA bao g m 2 thành ph n: User Agent Client (UAC) và User Agent Server (UAS) UAC ch u trách nhi m t o yêu c u SIP m i và nh n câu tr l i UAS... nh n b i UAC UAC nh n mã 200 OK s g i ACK n UAS và phiên c thành l p VD: SIP/ 2.0 200 OK VIA: SIP/ 2.0/UDP 128.10.10.1 zyx.com:5060;branch=z9hG4bK63x2f FROM: ABC tag=9hz34567sl TO: cba tag=1df789jkf SUPPORTED: INVITE, ACK, BYE, CANCEL, OPTIONS, MAX FORWARDS: 70 CALL-ID: 82167534@126.18.27.0 CSEQ: 1 INVITE CONTACT: ABC CONTENT TYPE: application/sdp . ca h thng SIP nh ta đã thy mc tiêu ca lun vn là tìm hiu giao thc SIP và cài đt giao thc, xây dng ng dng minh ha giao thc SIP. Vi mc tiêu tìm hiu giao thc SIP lun vn. 6.2.3. SIPS URI scheme 50 6.2.4. HTTP authentication 51 6.2.5. S/MIME 52 Phn III Cài đt giao thc và xây dng ng dng minh ha giao thc SIP 55 Chng 7 Cài đt giao thc và xây dng. Tìm hiu giao thc SIP và xây dng ng dng minh ha Phn I: Gii thiu đ tài Chng 1: Tng quan, vai trò và ý ngha ca SIP 1.1. Tng quan: S quan tâm đi vi internet và các

Ngày đăng: 23/08/2015, 08:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan