với nhiều doanh nghiệp trên khắp thế giới, các nỗ lực phát triển và nghiên cứu, đặc biệt đối với mạng NGN giống như việc tăng thêm nhiều hơn sự hỗ trợ trong 1 số lượng lớn khách hàng, đặc biệt cho việc phát triển các dịch vụ. Trong khi đã có nhiều dự án mã nguồn mở được thiết lập trong mảng VoIP cho các SIP clients, SIP client, proxy, stack và các công cụ xung quanh chuẩn SIP của IETF thì hiện nay thực tế vẫn chưa có 1 dự án mã nguồn mở nào tập trung cụ thể vào IMS.
Dự án mã nguồn mở OPEN SOURCE IMS Core nhằm mục đích đáp ứng sự thiếu hụt của các phần mềm mã nguồn mở cho IMS với những giải pháp linh động và có thể mở rộng được. Tính thích nghi và khả năng của các giải pháp này đã được chứng minh trong các dự án nghiên cứu và phát triển quốc gia và quốc tế. Mục đích của nó trong thời gian tiếp theo là tạo ra một cộng đồng các nhà phát triển cho phần core của mạng NGN. Phần mềm mã nguồn mở này là cho phép sự phát triển của các dịch vụ IMS và thử nghiệm các khái niệm xung quanh phần core IMS.
3.1 Giới thiệu chung về phần mềm OpenIMS của FOKUS
Là một dự án triển khai IMS trên mã nguồn mở của FOKUS (Fraunhofer Institute for Open Communication Systems )
Hình 1.1 Các thành phần của OpenIMS
Hình 3.1 mô tả các thành phần chính của OpenIMS
* Open Source IMS Core :
Đây là phần lõi của OpenIMS, nó gồm có 2 thành phần chính : + HSS (Home Subcriber Server): Trong OpenIMS gọi là FHoSS
+ Call Session Control Functions ( CSCFs ): Là khối trung tâm của mã nguồn mở Open Source IMS Core, khối này điều khiển bất kỳ báo hiệu IMS nào.
OpenIMSCore được đưa ra tại website http://openimscore.org/
Được phát triển tại website http://developer.berlios.de/projects/openimscore/
*Đầu cuối IMS (IMS Client)
Trong tất cả các thành phần của OpenIMS, IMS client là thành phần quyết định đánh giá sự thành công của IMS. Nó hoạt động như một môi trường đa ứng dụng để chứng minh khả năng phát triển dịch vụ trên mạng IMS. Có nhiều phần mềm IMS Client, bộ khung OpenIMS Client của FOKUS cung cấp giao diện lập trình được cho các nhà phát triển dịch vụ của IMS. Đặc điểm của OpenIMS Client :
+ Xây dựng các IMS API chuẩn
+ Tương thích đa nền (Windows XP, Windows CE, Linux) + Được triển khai trên Java hoặc .NET
+ Dễ dàng kết nối với các thiết bị khác
+ Tuân theo các chuẩn IEFT, 3GPP, TISPAN…
Hình 1.2 OpenIMS Client khi chạy lần đầu tiên
Khi OpenIMS Client khởi động lần đầu tiên, nó sẽ hiện ra cửa sổ cho phép cấu hình.
Phần User Profile ta có thể cấu hình các thông số sau :
+ Display name: Tên ngưởi sử dụng sẽ được dùng trong ứng dụng
+ Public Identity: Nhận dàng công cộng, ví dụ sip:ha@open-ims.test, đúng theo mẫu đã nói trong mục 1.5.1 (Nhận dạng người dùng công cộng)
+ Private Identity: Nhận dạng cá nhân, ví dụ ha@open-ims.test, đúng theo mẫu trong mục 1.5.2 (Nhận dạng người dùng cá nhân)
+ Secret Key: Chìa khóa bảo mật, sẽ được sử dụng trong các quá trình chứng thực trên mạng.
Phần Server profile cho phép ta cấu hình :
+ Proxy IP: địa chỉ IP của máy chủ P-CSCF trong mạng, ví dụ 192.168.7.97 + Port Nr: Số cổng của P-CSCF trong mạng, ví dụ 4060
+ Realm : Tên miền của mạng IMS, ví dụ open-ims.test
* Open IMS SIP AS ( SIPSEE – Sip Servlet Execution Environment )
Đây là SIP Application Server cung cấp sự hội tụ của 2 môi trường dịch vụ là SIP và HTTP cho việc xây dựng các dịch vụ
* Parlay X Gateway (OCS-X)
Cho phép các nhà phát triển dịch vụ tạo các ứng dụng qua web
* IMS Management
Kiến trúc IMS Management để quản lý và điều khiển mọi thành phần cần cho mạng lõi IMS
* XML Document Management Server ( XDMS )
Máy chủ cung cấp hướng dẫn người dung về thông tin dịch vụ và cách truy cập…
* Media Server :
Hỗ trợ các dịch vụ như :
+ Voicemail, lưu lại bản tin rồi gửi vào mail + Hội thảo ( Conferencing )
+ Nhạc chờ + …
3.2 Fokus Home Subcriber Server ( FHoSS )
Giới thiệu chung
Trong phần mềm OpenIMS do FOKUS phát triển, khối HSS được còn được gọi là FHoSS. ( Fokus Home Subcriber Server )
Hình 1.1 FHoSS trong OpenIMS
FHoSS được xây dựng như một dự án Java, dựa trên một số phần mềm mã nguồn mở khác như MySQL, Tomcat. Dữ liệu người sử dụng được lưu giữ trong cơ sở dữ liệu MySQL. Giao diện web để quản lý chạy trên Tomcat. FHoSS được xây dựng 3 giao diện dựa trên giao thức Diameter ( RFC 3588 ) :
+ Giao diện Sh để cho Application Server truy cập vào HSS
+ Giao diện Cx dung trong các quá trình đăng ký ( cụ thể là giao diện kết nối với I-CSCF và S-CSCF)
Phần lõi của FHoSS là một HssDiameterStack. Nó sử dụng DiameterPeer để gửi yêu cầu tới các khối khác và nhận các yêu cầu cũng như hồi đáp theo kiểu CommandListener
Những dữ liệu của HSS được lưu trong một cơ sở dữ liệu. Cơ cấu (Framework) Hibernate persistence được sử dụng để xây dựng tầng truy cập dữ liệu. (Hibernate là một công nghệ rất phổ biến để xây dựng tầng truy cập cơ sở dữ liệu trong các dự án Java)
FHoSS được quản lý bằng giao diện web. Nó được triển khai dựa trên công nghệ servlet trong đó kết hợp với Apache Struts Web framework.
Hình 1.2 Giao diện web quản lý FHoSS
Giao diện web này gồm có các mục chính sau: • Home: Trang chủ
• User Identities: cho phép cấu hình thông tin người dùng như IMPU (IP Multimedia Public Identity), IMPI (IP Multimedia Private Identity), IMSU (IMS Subscription) và liên kết các thông tin này lại, một IMPI có thể liên kết với nhiều IMPU
Hình 1.3 Trang cấu hình nhận dạng người dùng cá nhân
• SERVICES: cấu hình thông tin dịch vụ
Hình 1.4 Trang cấu hình thông tin dịch vụ
• Network Configuration: Cấu hình các thông tin về mạng Cấu trúc phần mềm của FHoSS
-
Hình 1.5 Cấu trúc thư mục của FHoSS
- Gói main
+ Đây là gói chính để chạy ứng dụng HSS
+ Chứa file HSSContainer.java trong đó có hàm main() để bắt đầu ứng dụng - Gói diam :
+ Xây dựng nhờ vào JavaDiameterPeer ở phía trên + Thực thi giao diẹn command listeners
+ Chứa Diameter Stack - Gói auth :
+ Chứa file Milenage.java triển khai chức năng xác thực - Gói db :
+ Chức tất cả các gói nhỏ liên quan đến cơ sở dữ liệu : + Gói model chứa tất cả các loại bảng dữ liệu
+ Gói op chứa các gói liên quan đến lớp DAO (Data Access Object )
+ Gói hibernate triển khai theo công nghệ hibernate trong java để kết nối với cơ sở dữ liệu
- Các gói cx, sh, zh triển khai các giao diện tương ứng, trong mỗi gói có chứa gói op bao gồm tất cả các phương thức cần dung cho giao diện đó
Chương 4 CÁC MÔ PHỎNG