Voice over Internet Protocol (VOIP), còn gọi là IP Telephony, đang nhanh chóng trở thành một thuật ngữ thông thuộc và công nghệ này đang đi sâu vào các doanh nghiệp, các tổ chức .VOIP được thiết kế để thay thế mạng lưới và công nghệ TDM bằng một mạng dữ liệu dựa trên giao thức mạng IP .Tiếng nói được số hóa và truyền đi trong các gói tin IP .Trong các doanh nghiệp hiện nay nhất là các công ty mạng Internet và cả wifi đã len lỏi đến mọi phòng ban .Mặt khác nhu cầu liên lạc nội bộ trong doanh nghiệp là rất lớn .Sẽ là rất tuyệt vời nếu có một hệ thống Voip ngay trong công ty ,giúp cho việc liên lạc trở nên dễ dàng hơn mà chi phí gần như bằng không vì tận dụng được hạ tầng mạng IP có sẵn .Vì lí do đó em chọn đề tài
65 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 3802 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Xây dựng hệ thống Voip trên hệ điều hành Android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
Xây dựng hệ thống Voip trên hệ điều hành Android
Sinh viên thực hiện: Nguyễn Khắc Vinh
Lớp CNPM-K51
Giáo viên hướng dẫn: ThS Vũ Đức Vượng
HÀ NỘI 5-2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Nguyễn Khắc Vinh
Điện thoại liên lạc 01696890500 Email: nkvinh@gmail.com
Lớp: CNPM Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Trung tâm phần mềm Viettel
Thời gian làm ĐATN: Từ ngày 28 /2 /2011 đến 28/5 /2011
2. Mục đích nội dung của ĐATN
Tìm hiểu kiến trúc Voip và hệ điều hành cho di động Android
Xây dựng hoàn thiện một hệ thống Voip, demo phía client trên máy Android
3. Các nhiệm vụ cụ thể của ĐATN
Tìm hiểu về kiến trúc của Voip
Tìm hiểu về hệ điều hành Android
Tìm hiểu thư viện hỗ trợ để lập trình Voip Client trên Android
Chọn proxy server để xây dựng hệ thống
Dùng thư viện và server đã chọn xây dựng một hệ thống Voip
Bảo mật cho tài khoản khi đăng kí với server
Tìm hiểu và lựa chọn giao thức vượt NAT
4. Lời cam đoan của sinh viên:
Tôi – Nguyễn Khắc Vinh - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của thạc sĩ Vũ Đức Vượng
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác
Hà Nội, ngày 25 tháng 05 năm 2011
Tác giả ĐATN
Nguyễn Khắc Vinh
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:
Hà Nội, ngày tháng năm
Giáo viên hướng dẫn
Thạc sĩ Vũ Đức Vượng
MỤC LỤC
KHÁI NIỆM VÀ THUẬT NGỮ
Thuật ngữ
Định nghĩa
Ghi chú
VOIP
Voice over Internet Protocol
Công nghệ cho phép truyền thoại sử dụng giao thức mạng IP
VOIP over 3G
Voice over Internet Protocol over 3G
Công nghệ cho phép truyền thoại sử dụng giao thức mạng IP trên hạ tầng mạng 3G (third-generation)
TDM
Time Division Multiplexing
Ghép kênh phân chia thời gian: Thời gian sử dụng đường truyền được chia làm nhiều khung. Mỗi khung được chia thành nhiều khe thời gian(Ts time slot) mỗi người sử dụng một khe thời gian dành riêng cho mình để phục vụ cho việc truyền tin.
IP
Internet Protocol
Giao thức mạng được sử dụng rộng rãi ngày nay
End point
Các thiết bị đầu cuối: bao gồm IP phone và SIP phone.
SIP
Session Initiation Protocol
Giao thức khởi tạo session
UA/ UAC/ UAS
User Agent/ Uer Agent Client/ User Agent Server
Nơi gửi và nơi đáp trả các bản tin SIP, thông thường là các thiết bị SIP phone
G7xx
G711/ G729, …
Các codec dùng số hóa âm thanh
Proxy server
Server trung chuyển các bản tin SIP
Redirect server
Server trả lời điểm tiếp theo mà thiết bị phải gửi bản tin tới.
Registrar server
Server đăng ký cho các user agent.
Thuật ngữ và định nghĩa
DANH MỤC CÁC BẢNG
Table 1: Bảng Account 34
Table 2: Bảng CallLogs 35
Table 3: Bảng Messages 36
DANH MỤC CÁC HÌNH
Figure 1: Kiến trúc của hệ thống Voip 11
Figure 2: Đăng kí với Sip Server thành công 13
Figure 3: Thiết lập thành công cuộc gọi 16
Figure 4: Cơ chế xác thực username và password 22
Figure 5 : Giải pháp qua NAT cho các tín hiệu SIP 23
Figure 6: Giải pháp truyền các gói tin RTP qua NAT 23
Figure 7: Mô hình hệ thống cần xây dựng 26
Figure 8: Mô hình Use case của ứng dụng Voip Android 31
Figure 9: Biểu đồ tuần tự cho chức năng thêm và xem các account 37
Figure 10: Biểu đồ tuần tự cho chức năng xem và xóa lịch sử cuộc gọi 37
Figure 11 : Biểu đồ tuần tự cho chức năng xem và xóa tin nhắn 37
Figure 12: : Biểu đồ tuần tự cho chức năng gửi tin nhắn và tạo cuộc gọi 38
Figure 13 : Biểu đồ tuần tự cho chức năng xóa và sửa tài khoản 39
Figure 14: Kiến trúc ứng dụng Voip Android 39
Figure 15 Class UAStateReceiver 41
Figure 16 SipService 43
Figure 17 SipNotifications 45
Figure 18 Sơ đồ lớp 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ơ đồ lớp cho giao diện thêm account 52
Figure 24 Sơ đồ lớp của Voip Android widget 54
Figure 25 Sơ đồ lớp của giao diện xử lí cuộc gọi trong Voip Android 55
Figure 26 Sơ đồ lớp giao diện chính của Voip Android 56
Figure 27 Sơ đồ lớp giao diện cài đặt của Voip Android 57
Figure 28 Sơ đồ lớp giao diện quản lí tài khoản của Voip Android 58
Figure 29 Sơ đồ lớp giao diện quản lí lịch sử cuộc gọi của Voip Android 59
Figure 30 Sơ đồ lớp chọn tài khoản để gọi hoặc gửi tin của Voip Android 60
Figure 31 Quản lí tài khoản 63
Figure 32 Màn hình cài đặt và gửi tin nhắn 64
Figure 33 Màn hình quản lí cuộc gọi 65
LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong trường Đại học Bách Khoa Hà Nội nói chung và các thầy cô giáo trong viện Công nghệ Thông tin, bộ môn Công nghệ Phần mềm nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua.
Đặc biệt, em xin gửi lời cảm ơn đến thầy Vũ Đức Vượng. Thầy đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm đồ án tốt nghiệp. Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này.
Đồng thời em xin chân thành cảm ơn anh Cao Xuân Tuấn, trưởng phòng R&D, Trung tâm phần mềm Viettel và anh Đỗ Đình Thắng trưởng ban công nghệ đã tạo mọi điều kiện về cơ sở vật chất giúp em có một môi trường tốt để thực hiện đề tài đã giúp em hoàn thành đề tài này
Hà Nội, ngày 25 tháng 5 năm 2011
Người thực hiện
Nguyễn Khắc Vinh
MỞ ĐẦU
Giới thiệu đề tài
Voice over Internet Protocol (VOIP), còn gọi là IP Telephony, đang nhanh chóng trở thành một thuật ngữ thông thuộc và công nghệ này đang đi sâu vào các doanh nghiệp, các tổ chức .VOIP được thiết kế để thay thế mạng lưới và công nghệ TDM bằng một mạng dữ liệu dựa trên giao thức mạng IP .Tiếng nói được số hóa và truyền đi trong các gói tin IP .Trong các doanh nghiệp hiện nay nhất là các công ty mạng Internet và cả wifi đã len lỏi đến mọi phòng ban .Mặt khác nhu cầu liên lạc nội bộ trong doanh nghiệp là rất lớn .Sẽ là rất tuyệt vời nếu có một hệ thống Voip ngay trong công ty ,giúp cho việc liên lạc trở nên dễ dàng hơn mà chi phí gần như bằng không vì tận dụng được hạ tầng mạng IP có sẵn .Vì lí do đó em chọn đề tài
Xây dựng hệ thống Voip trên hệ điều hành Android
Môi trường thực hiện đồ án tốt nghiệp
Địa điểm: Trung tâm phần mềm Viettel, Phòng R&D
Thành viên đội thực hiện dự án:
Quản trị dự án: Đỗ Đình Thắng
Thành viên dự án: Đào Hải Hưng
Thành viên dự án: Nguyễn Khắc Vinh
Dự án: Nghiên cứu thử nghiệm công nghệ Voip
Bố cục của đồ án tốt nghiệp
Đồ án tốt nghiệp được chia thành các phần như sau:
MỞ ĐẦU
Giới thiệu đề tài, môi trường thực hiện đồ án, tóm tắt bố cục của đồ án tốt nghiệp
PHẦN 1: Đặt vấn đề và định hướng giải pháp
Các nhiệm vụ cần thực hiện trong đề tài
Cơ sở lý thuyết và công cụ sử dụng.
PHẦN 2: Các kết quả đạt được
Phân tích yêu cầu
Thiết kế hệ thống
Cài đặt
Đánh giá ưu, nhược điểm của hệ thống
KẾT LUẬN
Kết luận chung: tự đánh giá công việc làm được và chưa làm được, định hướng phát triển và hoàn thiện hệ thống trong tương lai.
PHẦN I: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
Tổng quan về đề tài
Các vấn đề cần giải quyết
Tìm hiểu về kiến trúc của Voip
Tìm hiểu về hệ điều hành Android
Tìm hiểu thư viện hỗ trợ để lập trình Voip Client trên Android
Chọn server để xây dựng hệ thống
Dùng thư viện và server đã chọn xây dựng một hệ thống Voip cơ bản
Bảo mật cho tài khoản khi đăng kí với server
Tìm hiểu và lựa chọn giao thức vượt NAT
Giới thiệu tóm tắt về cơ sở lý thuyết
Giới thiệu về VOIP
Trong một mạng VOIP, có 2 giao thức được sử dụng chính .Giao thức đầu tiên là Signaling Protocol (giao thức báo hiệu): dùng trong việc khởi tạo và quản lý các tương tác giữa các user session bao gồm voice, video, instant messaging…. Giao thức thứ hai là speech transmission protocol: giao thức truyền tiếng nói. Cả hai giao thức yêu cầu tất cả các thông tin được truyền tải trong các gói tin IP. Cho tới nay có một vài chuẩn cho signaling protocols, gồm có H.323, SIP .Còn RTP là chuẩn cho speech transmission protocol được sử dụng trong các mạng VOIP .Tín hiệu tiếng nói được số hóa, đóng gói trong các gói tin và được truyền thông qua mạng IP .Ta cần rất nhiều các gói tin mới có thể truyền tải được một âm đơn do một người phát ra .Tín hiệu voice được số hóa bằng các sử dụng một trong các chuẩn G.7xx.
Figure 1: Kiến trúc của hệ thống Voip
Proxy server là một thiết bị trung gian nhận SIP request từ một client và sau đó chuyển tiếp request cho tới khi tới được sip client cần tới .Proxy server là thành phần quan trọng trong hệ thống VoIP, cho phép các user agent trao đổi thông tin, đăng ký người dùng và quản lý trạng thái user agent .Proxy server KHÔNG thực hiện chuyển mạch điện thoại (telephone switch) .Khi proxy server thiết lập một cuộc gọi (peer-to-peer), server sẽ không tham gia vào quá trình truyền tải tiếng nói .Các gói tin chứa tiếng nói được truyền trực tiếp từ một phone tới một phone khác
Ngoài ra còn có Registrar server Xử lý các requests từ các UAC để đăng ký vị trí (ip, port) của UAC đó .Registrar server thường được đặt cùng với proxy server
Giới thiệu về SIP
SIP là giao thức tầng application trong mô hình OSI nó được sử dụng để thiết lập, thay đổi, và kết thúc các session, SIP là giao thức thuần text (clear text) .Thiết lập các tham số về media được sử dụng (codec, ip, port) giữa các UA thông qua Session Description Protocol (SDP) .Giao thức SIP được thiết kế là một phần của một kiến trúc đa phương tiện bao gồm các giao thức khác như RTP, SDP .Tuy nhiên SIP không phụ thuộc vào các giao thức khác để làm việc .Địa chỉ SIP giống như một địa chỉ email, ví dụ như: johndoe@sipA.com. Các phương thức có trong SIP gồm có:
INVITE = Thiết lập phiên ACK = Xác nhận yêu cầu INVITEBYE = Kết thúc phiênCANCEL = Hủy bỏ việc thiết lập phiênREGISTER = Trao đổi thông tin địa điểm người dùng (tên máy, IP)OPTIONS = Trao đổi các thông tin về khả năng của các điện thoại SIP gọi và nghe trong phiên
Đáp úng cho các phương thức trên dưới dạng là text như trong HTML, có 6 loại Phản hồi SIP:
1xx = phản hồi thông tin, ví dụ 180, có nghĩa là đang đổ chuông2xx = phản hồi thành công3xx = phản hồi chuyển hướng4xx = yêu cầu bị thất bại5xx = lỗi máy chủ6xx = thất bại toàn cục
Giới thiệu về RTP
Giao thức truyền tín hiệu giọng nói, hình ảnh chuẩn được sử dụng trên mạng Internet hiện nay là giao thức RTP (Real-time transport protocol) .RTP được sử dụng rộng rãi trong các ứng dụng liên lạc và giải trí cần tới streaming dữ liệu
Tài liệu đặc tả của RTP mô tả hai giao thức con:
Giao thức truyền dữ liệu, RTP, chịu trách nghiệm truyền dữ liệu thời gian thực. Thông tin cung cấp cho giao thức này bao gồm timestamps (để đồng bộ hóa), chuỗi số (cho kiểm tra gói tin bị mất) và tham số chỉ định dạng của dữ liệu.
Một giao thức điều khiển, RTCP, dùng để tính toán các tham số trên đường truyền RTP để tối ưu đường truyền. Băng thông của RTCP tương đối nhỏ so với RTP, nằm trong khoảng 5%.
Có một vài chuẩn số hóa dữ liệu âm thanh và một trong số chúng được sử dụng chủ yếu trong VoIP .Đa số các nhà cung cấp dịch vụ và thiết bị hỗ trợ một hoặc nhiều các chuẩn đưa ra bởi ITU như dưới đây:
G.711 là chuẩn mặc định cho tất cả các nhà cung cấp (dịch vụ và thiết bị), cũng như cho PSTN. Chuẩn này số hóa voice thành dữ liệu không nén có bitrate là 64 Kbps
G.729 được hỗ trợ bởi nhiều nhà cung cấp cho phép nén dữ liệu âm ở bitrate 8 Kbps. Chất lượng của chuẩn này kém hơn so với G.711, nó cũng là chuẩn phổ biến thứ 2 sau G.711
G.723.1 là chuẩn nén được khuyến cáo. Bitrate của dữ liệu theo chuẩn này là 6.3 và 5.3 kbps. Mặc dù chuẩn này làm giảm gắng nặng băng thông, nhưng chất lượng thấp hơn đáng kể so với G.729 và không được phổ biến trong VoIP.
G.722 có bitrate 64kbps nhưng có độ trung thực về tiếng nói cao. Trái với ba chuẩn trước sử dụng tần số lấy mẫu vào khoảng 3.4 kHz, G.722 lấy mẫu với tần số 7 kHz. Chuẩn này sẽ được sử dụng phổ biến trong tương lai.
Trong mọi trường hợp, IP phone lấy dữ liệu số của 10 đến 30 ms và đặt nó trong gói tin RTP và truyền đi
Đăng ký, thiết lập cuộc gọi với SIP proxy server
Đăng ký mới:
Khi User muốn sử dụng IP phone để sử dụng dịch vụ VoIP họ phải thực hiện bước đăng ký địa chỉ sip của họ với một registrar server.Registrar server cung cấp các thông tin về user cho location server (location database) dựa trên các request đã nhận được từ user .SIP phone sử dụng phương thức REGISTER để register tới registrar server. Server nhận và lưu các thông tin trong request nhận được vào location database .Registrar server có thể chấp nhận các loại thông tin khác nhau, không chỉ địa chỉ IP của client .Database có chứa tất cả các ánh xạ giữa địa chỉ SIP tương ứng với địa chỉ IP của client, ví dụ: SIP user 8590@ekiga.net đăng ký ở địa chỉ IP 200.180.1.1.
Figure 2: Đăng kí với Sip Server thành công
Caller gửi SIP REGISTER request tới SIP server .Request này bao gồm trong nó danh sách liên lạc (contact list) của user đó (danh sách các địa chỉ SIP của Caller). SIP server yêu cầu user nhập thông tin (user ID và password) để xác thực .SIP client mã hóa thông tin người dùng và gửi tới server .Server xác thực thông tin người dùng, nếu thành công nó trả về chuỗi 200 OK cho SIP client .Với cơ chế này client sử dụng giá trị nonce (Do server sinh ra và gửi cho client và là dãy số chỉ dùng 1 lần, tương tự như one time password) để tạo ra thông tin gửi lên server.
Thông tin gửi lên server gồm có checksum của username, password, giá trị nonce (username, cnonce, hash (nonce +cnonce + password)) và kết hợp với một số giá trị khác .Theo cách này, password của người dùng được gửi đi không bao giờ tồn tại dưới dạng clear text và cũng không thể giải mã được ra password
F1 REGISTER sip: 192.168.133.193 SIP/2.0
Via: SIP/2.0/UDP 192.168.133.193:6060; rport; branch=z9hG4bKBuZ0keykB
Max-Forwards: 70
To:
From: ;tag=1mzIc5Cd
Call-ID: Ne4rmYWF-1295248430029@cn.vinhnk
CSeq: 1 REGISTER
Contact: sip:1000@192.168.133.193:6060;transport=UDP
F2 SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.133.193:6060;rport=6060;branch=z9hG4bKBuZ0keykB
To: ;tag=b27e1a1d33761e85846fc98f5f3a7e58.436b
From: ;tag=1mzIc5Cd
Call-ID: Ne4rmYWF-1295248430029@cn.vinhnk
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="192.168.133.193", nonce="TTPtWU0z7C2nKObujoCYR89YfUq3YDxC"
Server: kamailio (3.1.0 (i386/linux))
Content-Length: 0
Server đòi username và password nó gửi về giá trị nonce="TTPtWU0z7C2nKObujoCYR89YfUq3YDxC"
F3 REGISTER sip:192.168.133.193 SIP/2.0
Via: SIP/2.0/UDP 192.168.133.193:6060;rport;branch=z9hG4bK2LKuG1vwn
Max-Forwards: 70
To:
From: ;tag=bYwlyuoF
Call-ID: Ne4rmYWF-1295248430029@cn.vinhnk
CSeq: 2 REGISTER
Contact:
Authorization: Digest username="1000", realm="192.168.133.193", nonce="TTPtWU0z7C2nKObujoCYR89YfUq3YDxC", uri="sip:192.168.133.193", response="ba7b6b7988a263cba8de358cc3eac7e1"
Client dùng MD5 tính checksum của password, nonce … rồi gửi response="ba7b6b7988a263cba8de358cc3eac7e1" trở lại server.
F4 SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.133.193:6060;rport=6060;branch=z9hG4bK2LKuG1vwn
To: ;tag=b27e1a1d33761e85846fc98f5f3a7e58.8f80
From: ;tag=bYwlyuoF
Call-ID: Ne4rmYWF-1295248430029@cn.vinhnk
CSeq: 2 REGISTER
Contact: ;expires=3600
Server: kamailio (3.1.0 (i386/linux))
Content-Length: 0
Khi user 1000@192.168.133.193 Log out khỏi server 192.168.133.193 nó tạo request:
REGISTER sip:192.168.133.193 SIP/2.0
Via: SIP/2.0/UDP 192.168.133.193:6060;rport;branch=z9hG4bKZOmdS4hLG
Max-Forwards: 70
To:
From: ;tag=FLjcVEm6
Call-ID: Ne4rmYWF-1295248430029@cn.vinhnk
CSeq: 4 REGISTER
Contact: ;expires=0
Authorization: Digest username="1000", realm="192.168.133.193", nonce="TTPt+k0z7M6EsW/CXuH6wCl9ZHF244HG", uri="sip:192.168.133.193", response="d18e2c819303f864d9b09280015267df"
Sau đó server trả về thành công:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.133.193:6060;rport=6060;branch=z9hG4bKZOmdS4hLG
To: ;tag=b27e1a1d33761e85846fc98f5f3a7e58.d2d1
From: ;tag=FLjcVEm6
Call-ID: Ne4rmYWF-1295248430029@cn.vinhnk
CSeq: 4 REGISTER
Server: kamailio (3.1.0 (i386/linux))
Content-Length: 0
Thiết lập cuộc gọi
Khi user thiết lập một cuộc gọi, một SIP request được gửi tới SIP server (một proxy server hoặc một redirect server) .Trong request này bao gồm địa chỉ của người gọi (trường From) và địa chỉ của người nhận (trường To).Khác với phương thức REGISTER, phương thức INVITE được sử dụng để thiết lập các media session giữa các user agent .Một media session được thiết lập khi các bản tin INVITE ,200 OK, ACK được trao đổi giữa UAC và UAS .Phương thức BYE được sử dụng bởi một trong các UA để kết thúc media session đã được thiết lập.
UAC mà khởi tạo một INVITE request sẽ tạo ra một Call-ID duy nhất, sử dụng cho việc xác định thời gian của cuộc gọi. Biến đếm CSeq được khởi tạo (không cần giá trị phải bằng 1, nhưng phải là một số nguyên) và tăng khi có một request mới từ cùng một Call-ID. Trường To và From trong header của request là địa chỉ SIP của người nhận và người gọi. Trường Expires trong header của một INVITE request cho UAS biết request này có hiệu lực trong khoảng thời gian bao lâu .Một khi media session được thiết lập thì trường này sẽ không còn ý nghĩa nữa .Trường Session-Expires có thể được sử dụng để giới hạn thời gian của một session.
Figure 3: Thiết lập thành công cuộc gọi
Trong phần này sẽ đi chi tiết về việc thiết lập cuộc gọi (thiết lập sesssion) giữa hai SIP UA: 1000@192.168.133.193 (Alice) và 1001@192.168.133.193 (Bob) .Sự trao đổi thông tin về media của UA được đặt trong SDP payloads .Trong phần này, cuộc gọi được thiết lập và cuối cùng yêu cầu kết thúc cuộc gọi đến từ phía 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:
From: ;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
CSeq: 4 INVITE
Content-Length: 218
Content-Type: application/sdp
Contact:
Proxy-Authorization: Digest username="1000", realm="192.168.133.193", nonce="TTPg/E0z39DX2sC/XzRzl8PQlpKPQDlQ", uri="sip:1001@192.168.133.193", response="3e671b21bfe90c3e9c94ec63c229041c"
v=0
o=user1 1782520463 2100547947 IN IP4 192.168.133.193
s=-
c=IN IP4 192.168.133.193
t=0 0
m=audio 8000 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
Nội dung bản tin SDP (từ đoạn v=0) ở request này cho biết. SIP phone của 1000 sẽ nhận RTP audio có loại 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:
Contact:
To: ;tag=ca470244
From: ;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
CSeq: 4 INVITE
User-Agent: X-Lite release 1002tx stamp 29712
Content-Length: 0
Chấp nhận cuộc gọi
1001@192.168.133.193 trả lời:
F3 SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.133.193:6060;rport=6060;branch=z9hG4bKrybFW32gj
Record-Route:
Contact:
To: ;tag=ca470244
From: ;tag=mXuZXR5C
Call-ID: bdpjEqZN-1295245265337@cn.vinhnk
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=
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
Nội dung bản tin SDP (từ đoạn v=0) ở response trên cho biết. SIP phone của 1001 sẽ nhận RTP audio có loại 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: ;tag=ca47