Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 72 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
72
Dung lượng
318,06 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SỸ KHOA HỌC LẬP TRÌNH SIP CHO THIẾT BỊ DI ĐỘNG BẰNG JAVA NGÀNH : XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG MÃ SỐ: TRẦN XUÂN THẢO Người hướng dẫn khoa học: TS HÀ QUỐC TRUNG HÀ NỘI 2006 MỤC LỤC Trang Trang Lời cam đoan Mục lục Danh mục chữ viết tắt Danh mục hình vẽ MỞ ĐẦU 10 Chương – GIAO THỨC ĐIỀU KHIỂN PHIÊN (SIP) 11 1.1 Khái niệm 11 1.2 Các đặc điểm SIP 11 1.3 Các phần tử mạng SIP 12 1.3.1 User agent (UA) 12 1.3.2 Proxy Server 12 1.3.2.1 Proxy server không trạng thái 12 1.3.2.2 Proxy server trạng thái 13 1.3.3 Registrar server 13 1.3.4 Redirect server 13 1.4 Các tin SIP 14 1.4.1 Các tin yêu cầu 14 1.4.2 Các tin phúc đáp 17 1.5 Các giao dịch SIP 19 1.6 Các hội thoại SIP 20 1.6.1 Các hội thoại làm cho định tuyến thuận tiện 21 1.6.2 Nhận dạng hội thoại 22 1.7 Những kịch SIP điển hình 1.7.1 Đăng ký 23 23 1.7.2 Khởi tạo phiên 23 1.7.3 Kết thúc phiên 24 1.7.4 Định tuyến ghi 25 1.8 So sánh SIP H.323 26 Chương - CƠ BẢN VỀ LẬP TRÌNH CHO THIẾT BỊ DI 29 ĐỘNG BẰNG JAVA 2.1 Giới thiệu 29 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ối 29 2.3.2 Cấu hình thiết bị hạn chế kết nối 30 2.3.2.1 Những khác biệt CLDC so với Java chuẩn 30 2.3.2.2 Các lớp CLDC kế thừa từ J2SE 30 2.3.2.3 Khung kết nối chung (GCF – Generic Connection 32 Framework) 2.4 Profile 33 2.5 Máy ảo Java cho CLDC 33 2.6 Xác minh file lớp (.class) 34 2.6.1 Tiền xác minh 34 2.6.2 Xác minh thiết bị 34 2.7 MIDLET 34 2.7.1 Cơ MIDlet 34 2.7.1.1 Quản lý ứng dụng môi trường thực thi Runtime 35 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 MIDlet 37 2.7.3 Tạo MIDlet 38 2.7.4 MIDlet API 39 2.7.5 Giao tiếp từ quản lý ứng dụng 39 2.7.6 Giao tiếp tới quản lý ứng dụng 40 2.7.7 Truy vấn thuộc tính MIDlet 40 Chương - BỘ CÔNG CỤ KHÔNG DÂY J2ME 41 3.1 Giới thiệu 41 3.1.1 Các công cụ công cụ 41 3.1.2 Đặc điểm công cụ 41 3.1.3 Các công nghệ hỗ trợ 42 3.2 Phát triển MIDlet 42 3.2.1 Dự án (Project) 42 3.2.2 Quy trình phát triển đơn giản 44 3.2.3 Quy trình phát triển đầy đủ 44 3.3 Làm việc với project 45 3.3.1 Lựa chọn API 45 3.3.2 Thay đổi thuộc tínhcủa MIDlet 45 3.3.3 Thao tác MIDlet 46 3.3.4 Cấu trúc thư mục dự án 46 3.3.5 Sử dụng thư viện bên thứ ba 46 3.3.5.1 Các thư viện bên thứ ba cho project 47 3.3.5.2 Các thư viện bên thứ ba cho tất project 47 3.4 An toàn đánh dấu MIDlet 47 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 MIDlet 49 3.4.4 Quản lý khóa 49 3.4.4.1 Tạo cặp khóa 49 3.4.4.2 Nhận khóa thực 51 Chương - GIAO TIẾP LẬP TRÌNH ỨNG DỤNG CHO J2ME 52 4.1 SipConnection 53 4.2 Tích hợp vào khung kết nối chung 53 4.3 Định tuyến yêu cầu gửi đến 54 4.4 SipClientConnection 55 4.5 SipServerConnection 56 4.6 SipConnectionNotifier 57 4.7 SipClientConnectionListener 58 4.8 SipServerConnectionListener 58 4.9 SipDialog 58 4.10 SipHeader 60 4.11 SipAddress 60 4.12 SipRefreshHelper 61 4.13 SipRefreshListener 62 4.14 SipException 62 Chương - LẬP CHƯƠNG TRÌNH 63 5.1 Điều kiện thực chương trình 63 5.2 Lưu đồ thuật tốn 63 5.3 Đăng nhập SIP 65 5.4 Gọi 69 5.5 Chờ gọi đến trả lời 71 5.6 Tạo project đóng gói chương trình 73 5.7 Mơ 73 KẾT LUẬN 74 TÀI LIỆU THAM KHẢO 75 10 MỞ ĐẦU Ngày công nghệ thông tin di động phát triển Các máy điện thoại di động việc thực chức thoại bình thường cịn tích hợp thêm nhiều tính khác cho phép người sử dụng 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à 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 mạng IP phát triển nhanh chóng Đã có nhiều nhà cung cấp dịch vụ thoại qua mạng IP thoại qua mạng IP sử dụng thiết bị đầu cuối di động cịn Giao thức điều khiển báo hiệu phiên (SIP) giao thức báo hiệu đơn giản có khả cao để điều khiển báo hiệu mạng IP Trong trình học cao học ngành xử lý thơng tin truyền thông, em tâm đắc với môn học lập trình hệ phân tán thầy giáo, TS Hà Quốc Trung Do em định chọn đề tài “Lập trình SIP cho thiết bị di động Java” Em xin chân thành cảm ơn thầy giáo TS Hà Quốc Trung tận tình hướng dẫn em trình thực luận văn Em xin cảm ơn bạn bè, đồng nghiệp hỗ trợ em trình thực luận văn Luận văn gồm chương: Chương nghiên cứu giao thức điều khiển báo hiệu phiên (SIP) Chương nghiên cứu lập trình cho thiết bị di động Chương nghiên cứu sử dụng công cụ để phát triển MIDlet Chương nghiên cứu giao diện ứng dụng chương trình SIP Chương lập chương trình SIP có chức đăng nhập, gọi đến thiết bị SIP khác, chờ trả lời gọi từ thiết bị SIP khác đến CHƯƠNG 1: GIAO THỨC ĐIỀU KHIỂN PHIÊN (SIP) 1.1 Khái niệm SIP giao thức lớp ứng dụng thiết kế phát triển IETF Đặc tả SIP có vài RFC, quan trọng RFC 3261 SIP giao thức báo hiệu cho điều khiển phiên đa phương tiện Nói cách khác, SIP cung cấp cách thiết lập truyền thông thoại, video tin nhắn thiết bị SIP dựa HTTP (Hyper Text Transfer Protocol – giao thức truyền siêu văn bản) SIP giao thức Client/Server, yêu cầu bên gọi (client) đưa bên bị gọi (server) trả lời 1.2 Các đặc điểm SIP Tính di động: SIP cho phép client vị trí cố định bất kỳ, gọi định tuyến tới sử dụng địa biết địa email Cấu trúc tin mềm dẻo: tin SIP có dạng văn (text) làm cho dễ dàng mở rộng thêm ứng dụng Phân tán chức thiết bị: SIP cho phép yêu cầu định tuyến động qua thiết bị khác nhau, cho phép chức phân tán yêu cầu định tuyến qua thiết bị liên quan Sự thỏa thuận tính hỗ trợ: điều làm cho SIP thích nghi mở rộng phương tiện giao thức sử dụng cho gọi riêng biệt thỏa thuận client gọi Kết SIP thiết lập kiểu hội thoại bao gồm thoại, video, tin nhắn Tách riêng báo hiệu thông tin: SIP đường báo hiệu thông tin hoàn toàn độc lập Bắt đầu Sự chia nhánh: điều cho phép thiết bị liên kết với địa đơn, tất lựa chọn thiết bị liên lạc đồng thời tùy thuộc sách địa phương 1.3 Các phần tử mạng SIP 1.3.1 User agent (UA) UA thiết bị đầu cuối mạng SIP UA máy tính cài phần mềm SIP, điện thoại SIP, điện thoại di động, PDA … UA thường đề cập tới UA server (UAS) UA client (UAC) UAS UAC thực thể logic, UA chứa UAS UAC UAC phần UA mà gửi yêu cầu nhận trả lời UAS phần UA mà nhận yêu cầu gửi trả lời 1.3.2 Proxy Server Proxy server thiết bị trung gian UA Proxy server chuyển yêu cầu trả lời UA Có loại proxy server proxy server trạng thái (stateful) proxy server không trạng thái (stateless) 1.3.2.1 Proxy server không trạng thái Proxy server không trạng thái đơn giản chuyển tiếp tin Nó chuyển tiếp tin độc lập với Mặc dù tin xếp vào giao dịch khơng quan tâm đến giao dịch Proxy server không trạng thái đơn giản nhanh proxy server trạng thái Một hạn chế proxy server khơng trạng thái khơng có khả truyền lại tin thực định tuyến phức tạp ví dụ chia nhánh 1.3.2.2 Proxy server trạng thái Proxy server trạng thái phức tạp Khi nhận yêu cầu, proxy server tạo trạng thái, trạng thái trì kết thúc phiên giao dịch Một số giao dịch, đặc biệt giao dịch tạo “INVITE” kéo dài lâu (đến bị gọi nhấc máy từ chối gọi) Bởi máy chủ phải quản lý trạng thái suốt thời gian giao dịch nên thực thi bị giới hạn Khả liên kết tin SIP vào giao dịch làm cho proxy server có số tính thú vị Proxy server thực việc chia nhánh, tức nhận tin hai hay nhiều tin khác gửi Proxy server thực việc truyền lại tin từ trạng thái giao dịch biết nhận tin chưa Proxy server thực phương pháp phức tạp để tìm kiếm người sử dụng, ví dụ máy người sử dụng quan khơng trả lời chuyển gọi đến máy di động người Hầu hết SIP proxy trạng thái cấu hình chúng thường phức tạp 1.3.3 Registrar server Registrar server thiết bị nhận yêu cầu đăng ký lưu trữ thông tin người sử dụng 1.3.4 Redirect server Redirect server thiết bị nhận tin yêu cầu gửi trả lại tin trả lời chứa danh sách vị trí người sử dụng 1.4 Các tin SIP Truyền thông sử dụng SIP (thường gọi báo hiệu) bao gồm dãy tin Các tin truyền độc lập mạng Thông thường tin truyền gam liệu UDP Mỗi tin bao gồm phần dòng đầu tiên, phần đầu đề phần thân tin Phần dòng loại tin Có hai loại tin SIP Bản tin yêu cầu sử dụng để khởi tạo số hành động báo cho người nhận yêu cầu Bản tin trả lời để xác nhận yêu cầu nhận xử lý chứa trạng thái việc xử lý 1.4.1 Các tin yêu cầu INVITE : tin sử dụng để thiết lập phiên Ví dụ tin INVITE sau: INVITE sip:7170@iptel.org SIP/2.0 Via: SIP/2.0/UDP 195.37.77.100:5040;rport Max-Forwards: 10 From: "jiri" ;tag=76ff7a07-c091-4192-84a0d56e91fe104f To: Call-ID: d10815e0-bf17-4afa-8412-d9130a793d96@213.20.128.35 CSeq: INVITE Contact: User-Agent: Windows RTC/1.0 Proxy-Authorization: Digest username="jiri", realm="iptel.org", algorithm="MD5", uri="sip:jiri@bat.iptel.org", nonce="3cef753900000001771328f5ae1b8b7f0d742da1feb5753c", response="53fe98db10e1074 b03b3e06438bda70f"