endlesslove0790

New Member
Tải Lập trình SIP cho thiết bị di động bằng Java

Download miễn phí Lập trình SIP cho thiết bị di động bằng Java


MỤC LỤC
Trang
Trang 1
Lời cam đoan1
Mục lục2
Danh mục các chữ viết tắt6
Danh mục các hình vẽ8
MỞ ĐẦU10
Chương 1 – GIAO THỨC ĐIỀU KHIỂN PHIÊN (SIP)11
1.1. Khái niệm11
1.2. Các đặc điểm của SIP11
1.3. Các phần tử mạng SIP12
1.3.1. User agent (UA)12
1.3.2. Proxy Server12
1.3.2.1. Proxy server không trạng thái12
1.3.2.2. Proxy server trạng thái13
1.3.3. Registrar server13
1.3.4. Redirect server13
1.4. Các bản tin SIP14
1.4.1. Các bản tin yêu cầu14
1.4.2. Các bản tin phúc đáp17
1.5. Các giao dịch SIP19
1.6. Các hội thoại SIP20
1.6.1. Các hội thoại làm cho định tuyến thuận tiện21
1.6.2. Nhận dạng hội thoại22
1.7. Những kịch bản SIP điển hình.23
1.7.1. Đăng ký23

1.7.2. Khởi tạo phiên23
1.7.3. Kết thúc phiên24
1.7.4. Định tuyến bản ghi25
1.8. So sánh SIP và H.32326
Chương 2 - CƠ BẢN VỀ LẬP TRÌNH CHO THIẾT BỊ DI ĐỘNG BẰNG JAVA
2.1. Giới thiệu29
2.2. Máy ảo Java (JVM – Java Virtual Machine)29
2.3. Cấu hình thiết bị29
2.3.1. Cấu hình thiết bị kết nối29
2.3.2. Cấu hình thiết bị hạn chế kết nối30
2.3.2.1. Những khác biệt của CLDC so với Java chuẩn30
2.3.2.2. Các lớp CLDC kế thừa từ J2SE30
2.3.2.3. Khung kết nối chung (GCF – Generic Connection Framework)
2.4. Profile
2.5. Máy ảo Java cho CLDC33
2.6. Xác minh file lớp (.class)34
2.6.1. Tiền xác minh34
2.6.2. Xác minh bởi thiết bị34
2.7. MIDLET34
2.7.1. Cơ bản về MIDlet34
2.7.1.1. Quản lý ứng dụng và môi trường thực thi Runtime35
2.7.1.2. File lưu trữ Java (JAR)35
2.7.1.3. Bộ mô tả ứng dụng Java (file JAD)36
2.7.2. Vòng đời của MIDlet37
2.7.3. Tạo ra một MIDlet


2.7.4. MIDlet API39
2.7.5. Giao tiếp từ bộ quản lý ứng dụng39
2.7.6. Giao tiếp tới bộ quản lý ứng dụng40
2.7.7. Truy vấn thuộc tính MIDlet40
Chương 3 - BỘ CÔNG CỤ KHÔNG DÂY J2ME
3.1. Giới thiệu41
3.1.1. Các công cụ trong bộ công cụ41
3.1.2. Đặc điểm bộ công cụ41
3.1.3. Các công nghệ hỗ trợ42
3.2. Phát triển các bộ MIDlet42
3.2.1. Dự án (Project)42
3.2.2. Quy trình phát triển đơn giản44
3.2.3. Quy trình phát triển đầy đủ44
3.3. Làm việc với các project45
3.3.1. Lựa chọn các API45
3.3.2. Thay đổi các thuộc tínhcủa bộ MIDlet45
3.3.3. Thao tác MIDlet
3.3.4. Cấu trúc thư mục dự án46
3.3.5. Sử dụng các thư viện của bên thứ ba46
3.3.5.1. Các thư viện của bên thứ ba cho một project47
3.3.5.2. Các thư viện của bên thứ ba cho tất cả project47
3.4. An toàn và đánh dấu MIDlet47
3.4.1. Sự cho phép (permission)47
3.4.2. Các vùng bảo vệ (protect domain)48
3.4.3. Đánh dấu một bộ MIDlet49
3.4.4. Quản lý khóa49
3.4.4.1. Tạo một cặp khóa mới


3.4.4.2. Nhận các khóa thực
Chương 4 - GIAO TIẾP LẬP TRÌNH ỨNG DỤNG CHO J2ME
4.1. SipConnection53
4.2. Tích hợp vào khung kết nối chung53
4.3. Định tuyến yêu cầu gửi đến54
4.4. SipClientConnection55
4.5. SipServerConnection56
4.6. SipConnectionNotifier57
4.7. SipClientConnectionListener58
4.8. SipServerConnectionListener58
4.9. SipDialog58
4.10. SipHeader60
4.11. SipAddress60
4.12. SipRefreshHelper61
4.13. SipRefreshListener62
4.14. SipException62
Chương 5 - LẬP CHƯƠNG TRÌNH63
5.1. Điều kiện thực hiện chương trình63
5.2. Lưu đồ thuật toán63
5.3. Đăng nhập SIP65
5.4. Gọi đi69
5.5. Chờ gọi đến và trả lời71
5.6. Tạo project đóng gói chương trình73
5.7. Mô phỏng73
KẾT LUẬN74
TÀI LIỆU THAM KHẢO75



MỞ ĐẦU
Ngày nay công nghệ thông tin di động đang phát triển. Các máy điện
thoại di động ngoài việc thực hiện chức năng thoại bình thường còn được tích
hợp thêm nhiều chức năng khác như cho phép người sử dụng có thể cài đặt
thêm chương trình. Hãng Sun MicroSystem đã phát triển phần mềm Java cho
lập trình di động (J2ME) mà hiện nay nhiều nhà sản xuất thiết bị đã tích hợp
vào. Song song với thông tin di động thì mạng IP cũng đang phát triển nhanh
chóng. Đã có nhiều nhà cung cấp dịch vụ thoại qua mạng IP nhưng thoại qua
mạng IP sử dụng thiết bị đầu cuối di động còn ít. Giao thức điều khiển báo
hiệu phiên (SIP) là một giao thức báo hiệu đơn giản nhưng có khả năng cao
để điều khiển báo hiệu trong mạng IP.
Trong quá trình học cao học ngành xử lý thông tin và truyền thông, em
rất tâm đắc với môn học lập trình hệ phân tán của thầy giáo, TS Hà Quốc
Trung. Do vậy em quyết định chọn đề tài “Lập trình SIP cho thiết bị di động
bằng Java”. Em xin chân thành Thank thầy giáo TS Hà Quốc Trung tận tình
hướng dẫn em trong quá trình thực hiện luận văn. Em cũng xin Thank bạn
bè, đồng nghiệp đã hỗ trợ em trong quá trình thực hiện luận văn này.
Luận văn gồm 5 chương:
Chương 1 nghiên cứu về giao thức điều khiển báo hiệu phiên (SIP).
Chương 2 nghiên cứu về lập trình cho thiết bị di động.
Chương 3 nghiên cứu sử dụng bộ công cụ để phát triển các MIDlet.
Chương 4 nghiên cứu về các giao diện ứng dụng chương trình SIP.
Chương 5 là lập một chương trình SIP có các chức năng đăng nhập, gọi
đến một thiết bị SIP khác, chờ và trả lời cuộc gọi từ một thiết bị SIP khác đến.


Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

2. Hội thoại SIP
Một số bản tin thiết lập một hội thoại, một số thì không. Điều này cho
phép biểu diễn rõ ràng mối quan hệ của các bản tin và đồng thời để gửi các
bản tin mà không liên quan tới các bản tin khác ngoài hội thoại. Điều này thực
hiện dễ dàng hơn bởi vì UA không phải giữ trạng thái hội thoại.
Giao
dịch
1
Giao
dịch
2
Hội
h i
21
Ví dụ bản tin INVITE thiết lập một hội thoại bởi vì nó sẽ được kèm
theo sau bởi yêu cầu BYE để kết thúc phiên được thiết lập bởi INVITE. Bản
tin BYE này được gửi trong cùng một hội thoại được thiết lập bởi INVITE.
Nhưng nếu một UA gửi một yêu cầu MESSAGE thì yêu cầu này không thiết
lập hội thoại. Các bản tin sau sẽ được gửi độc lập với bản tin trước.
1.6.1. Các hội thoại làm cho định tuyến thuận tiện
Chúng ta biết rằng các hội thoại cũng được sử dụng để định tuyến các
bản tin giữa các UA.
Giả sử rằng user sip:[email protected] muốn nói chuyện với
user:p[email protected]. Chủ gọi biết địa chỉ SIP của bị gọi nhưng địa chỉ này
không nói bất kỳ điều gì về vị trí hiện tại của user – chủ gọi không biết phải
gửi yêu cầu tới host nào. Vì vậy yêu cầu INVITE được gửi tới một proxy
server.
Yêu cầu sau đó được gửi từ proxy đến proxy tới khi nó đến một proxy
mà biết vị trí hiện tại của bị gọi. Quá trình này được gọi là định tuyến. Khi
yêu cầu đã đến được bị gọi, bị gọi sẽ tạo một phúc đáp gửi lại cho chủ gọi. Bị
gọi đồng thời cũng đưa trường đầu đề “Contact” vào trong phúc đáp và sẽ
chứa địa chỉ hiện tại của user. Yêu cầu gốc cũng chứa trường đầu đề
“Contact” có nghĩa là cả hai UA biết vị trí hiện tại của nhau.
Bởi vì các UA biết vị trí của nhau nên không cần thiết phải gửi yêu cầu
qua các proxy nữa, chúng có thể được gửi trực tiếp từ UA đến UA. Đó chính
là hội thoại làm cho định tuyến thuận tiện.
Các bản tin trong cùng một hội thoại sau đó sẽ được gửi trực tiếp từ UA
đến UA. Điều này giúp cải thiện hiệu năng bởi vì các proxy không xem tất cả
các bản tin trong cùng một hội thoại, chúng thường được sử dụng để định
tuyến yêu cầu đầu tiên mà thiét lập hội thoại. Các bản tin trực tiếp đồng thời
cũng được truyền với độ trễ nhỏ hơn nhiều bởi vì một proxy thường thực hiện
22
các phép toán logic định tuyến phức tạp. Hình 1.3 là một ví dụ minh họa
những điều trên.
Hình 1.3. Hình thang SIP
1.6.2. Nhận dạng hội thoại
Chúng ta đã biết rằng sự nhận dạng hội thoại bao gồm ba phần : Call-
Id, From tag và To tag. Nhưng nó không rõ ràng tại sao các phần nhận dạng
hội thoại lại được tạo chính xác và ai đóng góp phần nào.
Call-Id được gọi là phần nhận dạng cuộc gọi. Nó phải là một chuỗi ký
tự duy nhất để nhận dạng một cuộc gọi. Một cuộc gọi bao gồm một hay nhiều
hội thoại. Đa UA có thể phúc đáp cho một yêu cầu khi một proxy phân nhánh
yêu cầu đó. Mỗi UA gửi một phúc đáp 2xx thiết lập một hội thoại riêng rẽ với
chủ gọi. Tất cả các hội thoại này là một phần của cùng một cuộc gọi và có
cùng tham số “Call-Id”.
From tag được tạo ra bởi chủ gọi và nó nhận dạng duy nhất hội thoại
trong UA của chủ gọi.
23
To tag được tạo ra bởi bị gọi và nó nhận dạng duy nhất hội thoại trong
UA của bị gọi.
Sự nhận dạng hội thoại phân cấp này là cần thiết bởi vì một sự mời
cuộc gọi có thể tạo ra vài hội thoại và chủ gọi phải có khả năng phân biệt
chúng.
1.7. Những kịch bản SIP điển hình.
Phần này trình bày một cách khái quát các kịch bản SIP điển hình
thường xảy ra.
1.7.1. Đăng ký
Người sử dụng phải đăng ký với một registrar để những người sử dụng
khác có thể liên lạc đến được. Một sự đăng ký bao gồm một bản tin
“REGISTER” và một phúc đáp “200 OK” từ registrar nếu sự đăng ký là thành
công. Sự đăng ký thường phải xác thực do đó một phúc đáp “407” có thể
được gửi nếu người sử dụng không cung cấp sự tin cậy hợp lệ. Hình 1.4 là
một ví dụ về sự đăng ký.
Hình 1.4. Sự đăng ký
1.7.2. Khởi tạo phiên
Một sự khởi tạo phiên bao gồm một yêu cầu “INVITE” mà thường là
gửi tới một proxy. Proxy gửi ngay một phúc đáp “100 Trying” để ngừng việc
gửi lại và chuyển yêu cầu sau này.
24
Tất cả phúc đáp tạm thời được tạo bởi bị gọi được gửi lại cho chủ gọi.
Khi bị gọi đổ chuông nó gửi phúc đáp cho chủ gọi bản tin “180 Ringing”.
Khi bị gọi nhấc máy nó gửi lại bản tin “200 OK”và nó được gửi lại cho
đến khi nhận được một “ACK” từ chủ gọi. Phiên được thiết lập ở điểm này.
Hình 1.5 là một ví dụ minh họa sự khởi tạo phiên.
Hình 1.5. Khởi tạo phiên
1.7.3. Kết thúc phiên
Kết thúc phiên được thược hiện bằng cách gửi bản tin “BYE”. Bản tin
“BYE” được gửi trực tiếp từ một UA đến UA khác trừ khi một proxy trên
đường đi của yêu cầu “INVITE” chỉ ra rằng nó phải đi theo bằng cách sử
dụng định tuyến bản ghi.
Bên muốn kết thúc phiên gửi một yêu cầu “BYE” tới bên kia. Bên kia
sẽ gửi lại một phúc đáp “200 OK” để xác nhận yêu cầu “BYE” và phiên chấm
dứt.
25
1.7.4. Định tuyến bản ghi
Tất cả yêu cầu trong một hội thoại mặc định được gửi trực tiếp từ một
UA đến UA khác. Chỉ những yêu cầu ngoài một hội thoại là đi qua các proxy.
Cách này làm cho mạng SIP mềm dẻo hơn bởi vì chỉ có một số nhỏ bản tin
đến proxy.
Có những tình huống mà proxy cần lưu lại đường đi của tất cả bản tin.
Ví dụ proxy điều khiển hộp NAT hay proxy thực hiện tính cước cần lưu
lại đường đi của yêu cầu “BYE”.
Hình 1.6. Chấm dứt phiên
Kỹ thuật mà một proxy có thể cho các UA biết là nó muốn lưu lại
đường đi của tất cả bản tin được gọi là định tuyến bản ghi. Proxy này sẽ chèn
trường đầu đề “Record-Route” vào các bản tin SIP mà có chứa địa chỉ của
proxy đó. Các bản tin được gửi trong một hội thoại sẽ đi qua tất cả proxy mà
chèn một trường “Record-Route” vào bản tin đó.
Bên nhận yêu cầu đó nhận được một tập các trường “Record-Route”
trong bản tin đó. Nó phải ánh xạ lại tất cả trường đó vào trong phúc đáp bởi vì
bên phát yêu cầu đó cũng cần biết tập proxy đó.
không có định tuyến bản ghi có định tuyến bản ghi
26
1.8. So sánh SIP và H.323
Ngoài SIP còn có một giao thức báo hiệu khác được sử dụng phổ biến
hiện nay là H323.
Giữa H.323 và SIP có nhiều điểm tưng đồng. Cả hai đều cho phép điều
khiển, thiết lập và huỷ cuộc gọi. Cả H.323 và SIP đều hỗ trợ tất cả các dịch vụ
cần thiết, tuy nhiên có một số điểm khác biệt giữa hai chuẩn này. Đó là:
• H.323 hỗ trợ hội nghị đa phưng tiện rất phức tạp. Hội nghị H.323
về nguyên tắc có thể cho phép các thành viên sử dụng những
dịch vụ như bảng thông báo, trao đổi dữ liệu, hay hội nghị
video.
• SIP hỗ trợ điều khiển cuộc gọi từ một đầu cuối thứ 3. Hiện nay
H.323 đang được nâng cấp để hỗ trợ chức năng này.
Dưới đây là bảng so sánh giữa hai giao thức...
 

Các chủ đề có liên quan khác

Top