280 likes | 488 Views
và xây dựng ứng dụng softphone. Tìm hiểu giao thức Session Initiation Protocol. Sinh viên thực hiện: Mai Tiến Hải Lớp: KTMT – K51 Giáo viên hướng dẫn: ThS. Dư Thanh Bình KS. Nguyễn Hữu Nam Dương. Nội dung. Đặt vấn đề. Lý thuyết. Session Initiation Protocol.
E N D
và xây dựng ứng dụng softphone Tìm hiểu giao thức Session Initiation Protocol Sinh viên thực hiện: Mai Tiến Hải Lớp: KTMT – K51 Giáo viên hướng dẫn: ThS. Dư Thanh Bình KS. Nguyễn Hữu Nam Dương
Nội dung Đặt vấn đề Lý thuyết Session Initiation Protocol Xây dựng chương trình Login Yêu cầu đàm thoại Demo Đồng ý Đáp ứng yêu cầu Từ chối Ngắt đàm thoại
Đặt vấn đề Communication devices Communication services • Yêu cầu • Dễ tích hợp • Đảm bảo đảm sự riêng tư • Mục đích • Đa dạng • Dễ mở rộng • Di động
Ưu điểm của VoIP Tiết kiệm chi phí Dễ triển khai VoIP Ứng dụng rộng rãi
Application Layer Transport Layer Network Layer Network interface Layer Các chuẩn VoIP • H.323 - ITU-T • Session Initiation Protocol (SIP) - IETF
Session Initiation Protocol (SIP) • Được tổ chức Internet Engineering Task Force (IETF) đề xuất. • Là giao thức ở lớp ứng dụng (Application layer control protocol). • Giống như Hypertext Transfer Protocol (HTTP), SIP là một giao thức có kiến trúc dạng văn bản (text-based).
Nội dung Bản tin SIP SIP Transaction SIP Dialog
Bản tin SIP (*): Request-Line đối với bản tin yêu cầu và Status-Line đối với bản tin đáp ứng
SIP Transaction User Agent Client (Alice): Tạo ra và gửi bản tin yêu cầu (INVITE). User Agent Server (Bob): Tiếp nhận, xử lý bản tin yêu cầu và gửi bản tin đáp ứng thích hợp (OK). SIP Proxy: Chuyển tiếp các bản tin SIP
SIP Dialog • Confirmed Dialog: Đối với các bản tin đáp ứng là OK (mã 200) • Early Dialog: Đối với các bản tin có mã đáp ứng là Ringing (mã 180) hoặc Trying (mã 100) Các thuộc tính của SIP Dialog Các giá trị của SIP Dialog
Xây dựng chương trình Ngôn ngữ và thư viện Chức năng chính Phân tích thiết kế simplecall Kết quả đạt được
Xây dựng chương trình • Ngôn ngữ • Java • Thư viện • NIST-SIP • JRTP • JSpeex • Apache Log4j Ngôn ngữ và thư viện Chức năng chính Phân tích thiết kế Kết quả đạt được
Xây dựng chương trình • Login • Yêu cầu đàm thoại • (User Agent Client) • Đáp ứng yêu cầu • (User Agent Server) • Đồng ý • Từ chối • Ngắt đàm thoại Ngôn ngữ và thư viện Chức năng chính Phân tích thiết kế Kết quả đạt được
Xây dựng chương trình • Kiến trúc của chương trình • Các module chính • Sơ đồ thuật toán Ngôn ngữ và thư viện Chức năng chính Phân tích thiết kế Kết quả đạt được
Xây dựng chương trình • Kết quả đạt được • Phương hướng phát triển Ngôn ngữ và thư viện Chức năng chính Phân tích thiết kế Kết quả đạt được
Các module chính Signaling module: • Tạo ra và gửi các bản tin yêu cầu và bản tin đáp ứng qua 1 cổng riêng (SIP port) • Thu nhận các bản tin cũng qua cổng này Media module: • Thu nhận và xử lý tín hiệu âm thanh • Đóng gói và gửi tín hiệu âm thanh qua 1 riêng (media port)
Signaling module SipProvider SipStack Implementation Bản tin UserAgent (SipListener) Dialog Dialog Sự kiện Bản tin Transaction Sự kiện Transaction Transaction Bản tin Req Res Req Req Res Sự kiện Parser Encoder Network (Raw Bytes)
Media module RTPManagement (RtpListener) JSpeex Java Sound Lệnh JSpeexEncoder TargetDataLine Dữ liệu Dữ liệu JSpeexDecoder SourceDataLine Dữ liệu Dữ liệu Tín hiệu Receiver Sender Network (Raw Bytes)
Sơ đồ thuật toán Register • Thông tin bao gồm • Username. • Password. • Registrar domain.
Sơ đồ thuật toán Invite • Thông tin đối tượng muốn gọi • SIP URI • username@sipdomain.com
Xây dựng chương trình Kếtquảđạtđược • Tìm hiểu cơ bản về giao thức Session Initiation Protocol. • Xây dựng được chương trình softphone (software IP phone). • Hoàn thiện một số tính năng chính của một chương trình softphone. Hướngpháttriển • Hoàn thiện các tính năng đã có sẵn. • Hướng tới phát triển cộng đồng. • Phát triển thêm các tính năng mở rộng (phone book, call log, …) • Tăng tính bảo mật và chất lượng cuộc gọi. • Phát triển riêng một SIP Server (Location Service, Proxy, Registrar).
Demo Cửa sổ đăng nhập Cửa sổ chính Cửa sổ nhận cuộc gọi
Demo • Kiểm tra chương trình • Công cụ: tracesviewer • Register Transaction
Demo • Kiểm tra chương trình • Công cụ: tracesviewer • Invite Transaction
Demo • Kiểm tra chương trình • Công cụ: tracesviewer • Bye Transaction