Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
0,96 MB
Nội dung
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ựnghệthốngVoiptrênhệ đ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ềuhành cho di động Android
• Xâydự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ềuhànhAndroid
• Tìm hiểu thư viện hỗ trợ để lập trình Voip Client trên Android
• Chọn proxy server để xâydựnghệthống
• Dùng thư viện và server đã chọn xâydựng một hệthốngVoip
• 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/ User Agent/ Uer Agent Nơi gửi và nơi đáp trả các bản
Thuật ngữ Định nghĩa Ghi chú
UAS Client/ User Agent Server 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
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
1. 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ựnghệthốngVoiptrênhệđiềuhành Android
2. 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
3. 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
1. Các nhiệm vụ cần thực hiện trong đề tài
2. Cơ sở lý thuyết và công cụ sử dụng.
PHẦN 2: Các kết quả đạt được
1. Phân tích yêu cầu
2. Thiết kế hệ thống
3. Cài đặt
4. Đá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
1 Tổng quan về đề tài
1.1 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ềuhànhAndroid
Tìm hiểu thư viện hỗ trợ để lập trình Voip Client trên Android
Chọn server để xâydựnghệthống
Dùng thư viện và server đã chọn xâydựng một hệthốngVoip 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
2 Giới thiệu tóm tắt về cơ sở lý thuyết
2.1 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
2.1.1 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 INVITE
BYE = Kết thúc phiên
CANCEL = Hủy bỏ việc thiết lập phiên
REGISTER = 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ông
2xx = phản hồi thành công
3xx = phản hồi chuyển hướng
4xx = yêu cầu bị thất bại
5xx = lỗi máy chủ
6xx = thất bại toàn cục
2.1.2 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ụngtrê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
2.2 Đăng ký, thiết lập cuộc gọi với SIP proxy server
2.2.1 Đă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.
[...]... kiến trúc hệ thốngHệthống Voip được bao gồm hai thanh phần chính: Server và Client Figure 7: Mô hình hệthống cần xâydựng Trong các phần trên ta đã nêu ra được các thành phần cần thiết mà hệthốngVoIP phải đáp ứng Chúng ta có các user agent và server Hệthống sử dụng một mô hình phân tán peer-to-peer cùng với một signaling server 1.4.1.1 Client Client trong hệthống là ứng dụngVoipAndroid được... OpenCER) là hệthống open source dùng để triển khai sip server Một SIP proxy xâydựng từ Kamailio có khả năng quản lý hàng nghìn cuộc gọi mỗi giây Kamailio được duy trì và phát triển bởi một cộng đồng lớn các lập trình viên có kinh nghiệm, ngày càng hỗ trợ kết nối tới nhiều hệthống viễn thông khác 4.5 PHẦN II: XÂYDỰNGHỆTHỐNGVOIP 1 Khảo sát, phân tích yêu cầu Mục tiêu của hệ thốngXâydựnghệthống để... 1.5.2.2 Xâydựng ứng dụngVoipAndroid phía client VoipAndroid là một ứng dụngtrên điện thoại chạy hệđiềuhànhAndroid cho phép người dùng có thể tạo cuộc gọi, gửi tin nhắn thông qua hạ tầng mạng IP có sẵn có thể là wifi hoặc 3G VoipAndroid được viết bằng thư viện PJSIP, cách build PJSIP cho nền tảng Android đã được trình bày ở trên 1.5.2.2.1 Phân tích cụ thể từng chức năng: Các chức năng của hệ thống. .. không giải quyết được vấn đề Chọn lựa chuẩn xây dựnghệthống VoIP SIP hiện đang thể hiện là chuẩn được dùng và sẽ dùng phổ biến trong tương lai bởi sự đơn giản và hỗ trợ tương tác tốt giữa các hệthống khác nhau Các bản tin SIP được thể hiện dưới dạng text base và truyền đi trong mạng IP tương tự như HTTP Ta có thể phát triển và xâydựng dịch vụ voice dựa trên SIP dễ và nhanh như phát triển các web... http://www.pjsip.org/download.htm/ chọn pjsip _android Copy thư mục prebuilt trong android- ndk-r4-crystax/build vào thư mục pjsip _android/ build/ • cp -r android- ndk-r4-crystax/build/prebuilt pjsip _android/ build/ Build file thư viện liên kết động so, vào thư mục pjsip _android • cd pjsip _android Gọi lệnh make • make APP=pjsip Sau khi xong các bước trên file libpjsipjni.so sẽ được tạo ra trong thư mục /VoipAndroid/libs/ armeabi... Cơ bản về Android Việc hiểu được các thành phần (component) tạo nên một ứng dụngAndroid là rất cần thiết cho việc lập trình trênAndroid 2.3 2.3.1 Activity: Hiểu một cách đơn giản thì Activity là nền của một ứng dụng Khi khởi động một ứng dụngAndroid nào đó thì bao giờ cũng có một main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác Hệ điềuhànhAndroid quản... lượng và băng thông) vì 2 codec trên cũng được hỗ trợ bởi đa số các IP phone ngày nay Lựa chọn thư viện phát triển ứng dụng SIP trên client Môi trường phía client được lựa chọn để xâydựng demo là Android OS (android API 8) PJSIP là thư viện có thể sử dụngtrên nhiều nền tảng, thư viện kích thước nhỏ (small footprint), Tích hợp sẵn các gói thư viện media, NAT để xâydựng ứng SIP client PJSIP là thư... /data/data//databases 2.3.7 XML trong Android: 2.3.6 Sử dụng XML sẽ đơn giản công việc thiết kế giao diện đi rất nhiều Đồng thời sử dụng XML sẽ giúp việc chỉnh sửa ứng dụng sau này trở nên dễ dàng 2.3.8 Android Manifest: Activity, Service, Broadcast Receiver là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest Mỗi ứng dụng đều cần có AndroidManifest.xml để mô tả... SIP_DOMAIN=mysipserver.com Sau khi thực hiện các bước trên, ta có thể dùng sip phone và đăng nhập, thực hiện cuộc gọi tới user khác 1.5.2 Phía Client 1.5.2.1 Build thư viện pjsip cho ứng dụngVoipAndroid Đầu tiên download ndk và giải nén Android Ndk • wget http://www.crystax.net/data /android- ndk-r4-linux-x86-crystax-4.tar.bz2tar -xvf android- ndk-r4-linux-x86-crystax-4.tar.bz2rm android- ndk-r4-linux-x86crystax-4.tar.bz2... thông số dành cho việc cài đặt và khởi động hệthống o package service: Đây có thể gọi là trái tim của VoipAndroid ,package này xử lí gần như toàn bộ chức năng của hệthống ,nó có nhiệm vụ nạp thư viện PJSIP vào bộ nhớ Đưa ra các dịch vụ để cho ứng dụng chính gọi tới: Đăng kí tài khoản ,cập nhật trạng thái , thiết lập cuộc gọi , ngắt kết nối , hold , xử lí điều khiển media:bật tắt loa ,mic … (voice) . 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. Đ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ụ