Trong chương 1 đã trình bày được những nội dung chính như sau:
Tổng quan về IMS, các khái niệm cơ bản,tình hình nghiên cứu cũng như quá trình chuẩn hóa IMS.
Kiến trúc phân lớp tổng thể của phân hệ IMS, gồm các thực thể và các thành phần chức năng của IMS theo mô hình phân lớp mạng NGN.
Một số thủ tục trong mạng IMS. Chương này giúp người đọc hình dung rõ từng bước hoạt động của phân hệ IMS trong việc thiết lập và điều khiển các phiên dịch vụ.
Các giao thức chính sử dụng trong phân hệ IMS. Chương này tập trung vào hai giao thức là SIP và Diametter bởi đây là hai giao thức sử dụng để liên lạc giữa các thực thể của IMS gồm P-CSCF, I-CSCF, S-CSCF và HSS.
CHƯƠNG 2: OPEN IMS CORE 2.1 Tổng quan về Open IMS Core
Ngày nay IMS (IP Multimedia Subsystem) cũng đã trong giai đoạn thử nghiệm 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, 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 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.
Open IMS Core bao gồm hai thành phần chính là Call Session Control Functions (CSCFs) và Home Subscriber Server (HSS). Các thành phần này đều là những phần tử core trong kiến trúc NGN/IMS như đã được tiêu chuẩn hóa trong 3GPP, 3GPP2, ETSI TISPAN.
Khi triển khai (xây dựng IMS Test-bed) thì mỗi khối P,I,S, HSS có thể chạy trên một máy hoặc nhiều máy trong cùng một mạng Lan trên hệ điều hành Linux mà phổ biến nhất là Ubuntu, hay Fedora, Gentoo...Mã nguồn của OpenIMSCore này download miễn phí.
Ngoài ra còn một số IMS Client có thể dùng với IMS Core:
• UCT IMS Client: gồm các chức năng Instant Message, Audio Call, Video Call, XCAP/XDMS support,...
• IMS Communicator: gồm các chức năng AKA, MD5 authentication, Instant Message (Sip/Simple), Audio Call, Video Call, ...
• Counterpath X-lite: MD5 authentication only, Instant Message (Sip/Simple), Audio Call, Video Call (H263 codec only), QoS for voice and video,...
2.2 Kiến trúc Open IMS Core và các thành phần trong Open IMS
Phân hệ mạng lõi đa phương tiện IP là tập hợp các thành phần với các chức năng khác nhau. Một thành phần có thể đảm nhận hai hoặc nhiều chức năng, hoặc hai thành phần cùng đảm nhận một chức năng giống nhau. Mỗi thành phần cũng có thể xuất hiện nhiều lần trong một mạng riêng lẻ. Về mặt cấu trúc, Open IMS bao gồm các thành phần chính như sau:
Hình 2.1. Các thành phần chính của Open IMS
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/ Đầ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
• Có khả năng thay đổi một cách mềm dẻo theo yêu cầu • 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…
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 )
2.3Các dịch vụ chạy trên Open IMS Core
IMS không phải là tiêu chuẩn cho các dịch vụ nhưng nó hỗ trợ trong việc tạo ra các dịch vụ đa phương tiện mới. IMS sử dụng một lớp điều khiển ngang nhằm tách phần mạng truy nhập ra khỏi lớp dịch vụ. Mỗi dịch vụ mới khi được phát triển có thể tái sử dụng cơ sở hạ tầng chung được cung cấp bởi IMS mà không cần đến những tính năng của riêng nó. Có thể kể đến một số tính năng như: chất lượng dịch vụ (Qos), xác thực người dùng, sự tính cước và vấn đề bảo mật... Bởi vậy, IMS cung cấp một nền tảng tốt để phát triển phong phú các dịch vụ đa phương tiện, đặc biệt là những dịch vụ yêu cầu thời gian thực.
2.3.1Thoại qua IP (VoIP)
VoIP (viết tắt của Voice over Internet Protocol, nghĩa là Truyền giọng nói
trên giao thức IP) là công nghệ truyền tiếng nói của con người (thoại) qua mạng thông tinsử dụng bộ giao thức TCP/IP. Nó sử dụng các gói dữ liệu IP (trên mạng LAN, WAN, Internet) với thông tin được truyền tải là mã hoá của âm thanh..
Để thực hiện việc này, điện thoại IP, thường được tích hợp sẵn các nghi thức báo hiệu chuẩn như SIP hay H.323, kết nối tới một tổng đài IP (IP PBX) của doanh nghiệp hay của nhà cung cấp dịch vụ. Điện thoại IP có thể là điện thoại thông thường (chỉ khác là thay vì nối với mạng điện thoại qua đường dây giao tiếp RJ11 thì điện thoại IP nối trực tiếp vào mạng LAN qua cáp Ethernet, giao tiếp RJ45) hoặc phần mềm thoại (soft-phone) cài trên máy tính.
VoIP là một trong những dịch vụ cơ bản nhất chạy trên Open IMS Core. Các phần mềm client trên hệ điều hành Microsoft hay Linux như UCT IMS Client, Mercuro Client, OpenIC_Lite, ... đều có hỗ trợ chức năng gọi thoại. Để sử dụng dịch vụ này trước hết người dùng phải đăng ký trên HSS, sau đó sử dụng những phần mềm trên để đăng nhập và thực hiện cuộc gọi.
2.3.2 IPTV
IPTV (Internet Protocol Television, có nghĩa: Truyền hình giao thức
Internet) là một hệ thống dịch vụ truyền hình kỹ thuật số được phát đi nhờ vào giao thức Internet thông qua một hạ tầng mạng, mà hạ tầng mạng này có thể bao gồm việc truyền thông qua một kết nối băng thông rộng. Một định nghĩa chung của IPTV là truyền hình, nhưng thay vì qua hình thức phát hình vô tuyến hay truyền hình cáp thì lại được truyền phát hình đến người xem thông qua các công nghệ sử dụng cho các mạng máy tính.
Kiến trúc IPTV trên nền IMS có thể cung cấp các dịch vụ IPTV được điều khiển và xử lý bởi IMS và có thể chuyển tiếp độc lập các dịch vụ IPTV với mạng truyền tải IP bên dưới. Để sử dụng dịch vụ IPTV trên nền IMS, ta chỉ cẩn gọi điện thoại tới 1 địa chỉ URI hoặc tới 1 số điện thoại đã được định sẵn, sau đó luồng media trực tiếp được truyền về máy người sử dụng mà không cần phải cài đặt thêm bất cứ cái gì khác.
Khi thực hiện mô phỏng IPTV trên Open IMS Core, có một số phần mềm client đã tích hợp sẵn IPTV, ví dụ như UCT IMS Client chạy trên hệ điều hành Linux. Để xem được chương trình, chỉ cần chọn mục IPTV và xem các kênh theo ý muốn.
Hình 2.2. Mô hình IPTV trên nền IMS
2.4 Kết luận chương 2
Chương 2 đã giới thiệu được những nội dung cơ bản về Open IMS Core, bao gồm:
Hệ thống mã nguồn mở Open IMS Core ra đời 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, 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.
Các thành phần kiến trúc của Open IMS, trong đó có Open IMS Core. Một số dịch vụ được cài đặt và sử dụng trên Open IMS Core.
CHƯƠNG 3: THỬ NGHIỆM OPEN IMS CORE 3.1 Cài đặt và thử nghiệm Open IMS Core
Để tiện cho việc cài đặt và sử dụng Open IMS Core, cần tải đẩy đủ các gói tin của Ubuntu:
• Vào System/Administration/Synapic Package Manager/ • Trên tab Setting/Repositories/
• Tích chọn tất cả các ô (nên chọn Download for United States cho quá trình download diễn ra nhanh hơn)
• Close lại và ra ngoài nhấn vào biểu tượng Reload.
Sau khi đã load về, bắt đầu thực hiện cài đặt Open IMS Core. Ở đây áp dụng cho phiên bản Ubuntu 10.10
Bước 1: cài đặt các phần mềm cần thiết từ source code
Tạo thư mục chứa các file cài đặt #mkdir /opt/OpenIMSCore #cd /opt/OpenIMSCore #mkdir FHoSS
#mkdir ser_ims Tải source code
#apt-get install subversion
#svn checkout http://svn.berlios.de/svnroot/repos/ OpenIMSCore /FHoSS/trunk FHoSS
#svn checkout http://svn.berlios.de/svnroot/repos/ OpenIMSCore /ser_ims/trunk ser_ims
#apt-get install openjdk-6-jdk mysql-server libmysqlclient15-dev libxml2-dev bind9 antflexbison
# cd FHoSS
# ant compile deploy # cd ..
# cd ser_ims
# make install-libs all # cd ..
#gedit /opt/OpenIMSCore/ser_ims/cfg/icscf.sql Thêm 2 users:
grant delete,insert,select,update on icscf.* to icscf@192.168.1.20 identified by 'heslo';
grant delete,insert,select,update on icscf.* to provisioning@192.168.1.20 identified by 'provi'; #gedit /opt/OpenIMSCore/FHoSS/scripts/hss_db.sql Thêm user: grant delete,insert,select,update on hss_db.* to hss@192.168.1.20 identified by 'hss'; #gedit /opt/OpenIMSCore/FHoSS/scripts/userdata.sql Bước 3: thay đổi cấu hình các file *.cfg, *.xml, *.sh
Copy file cấu hình: #cp ser_ims/cfg/*.cfg #cp ser_ims/cfg/*.xml #cp ser_ims/cfg/*.sh
Chạy lệnh sau để thay đổi thông tin về domain và ip
./configurator.sh pcscf.cfg icscf.cfg icscf.xml scscf.cfg scscf.xml ser_ims/cfg/icscf.sql FHoSS/deploy/DiameterPeerHSS.xml FHoSS/deploy/hss.properties FHoSS/scripts/hss_db.sql FHoSS/scripts/userdata.sql
Domain name: open-ims.test IP Address: 192.168.1.20 Bước 4: thiết lập cơ sở dữ liệu
Tạo một account root pass 123 #mysqladmin -u root password 123 Tạo cơ sở dữ liệu:
#cd /opt/OpenIMSCore
#mysql –uroot –p< ser_ims/cfg/icscf.sql #mysql –uroot –p< FHoSS/scripts/hssdb.sql #mysql –uroot –p< FHoSS/scripts/userdata.sql
Bước 5: thay đổi cấu hình cho FHoSS
Vào đường dẫn: /opt/OpenIMSCore/FHoSS/deploy/* Thay đổi các thông tin:
Domain name: open-ims.test
IP: chuyển 127.0.0.1 thành 192.168.1.20 Cấu hình DNS, vào đường dẫn: /etc/bind
Cấu hình tập tin resolv.conf để thiết lặp máy ims core làm DNS Vào đường dẫn /etc/resolv.conf, thêm dòng sau:
nameserver 192.168.1.20 Khởi động lại dịch vụ: #/etc/init.d/bind9 restart Bước 6: Khởi động IMS
#cd /opt/OpenIMSCore Start pcscf
#./pcscf.sh
Listen port: 192.168.1.20:4060
Hình 3.1. Giao diện hoạt động của P-CSCF
#./icscf.sh
Listen port: 192.168.1.20:5060
Hình 3.2. Giao diện hoạt động của I-CSCF
Start scscf #./scscf.sh
Hình 3.3. Giao diện hoạt động của S-CSCF
Start FHoSS #./fohss.sh
Listen port: 192.168.1.20:3868
Listen port for Diameter Cx from ICSCF: 192.168.1.20:3869 Listen port for Diameter Cx from SCSCF: 192.168.1.20:3870 Listen port for Tomcat webserver: 192.168.1.20:8090
Hình 3.4.Giao diện hoạt động của FhoSS
Hình 3.5.Giao diện quản lý user của FHoSS
Lệnh kiểm tra port: netstat -an | grep 4060
netstat -an | grep 5060 netstat -an | grep 6060 netstat -an | grep 3868 netstat -an | grep 3869 netstat -an | grep 3870 netstat -an | grep 8090 Cài đặt UCT IMS client
Cài các gói phụ thuộc:
Linux-based operating system
libosip2 (3.0.3 with version 1.0.10 and 2.2.3 earlier versions) libexosip2 (3.0.3 with version 1.0.10 and 2.2.3 earlier versions) libgtk2-0 libxml2 libcurl3 libgstreamer0.10-0 libgstreamer-plugins-base0.10 libvlc0 vlc
Cài UCT IMS client từ gói .deb dpkg -i uctimsclient1.0.12.deb Cấu hình UCT IMS Client:
Sau khi cấu hình thành công IMS, hệ thống đã tạo sẵn hai người dùng có tên là Bob@ims.vn và Alice@ims.vn. Do đó, ngay sau khi cài đặt, ta có thể sử dụng ngay chính người dùng tên Bob và Alice để thực hiện dịch vụ như: đăng ký, xóa đăng ký, gọi, xem iptv ( channel 1, 2, 3),…
Hình 3.6. Giao diện của trình Option và IPTV trong UCT IMS client.
Hình 3.7.Giao diện cấu hình Preferences: tab Profile và IMS
Hình 3.8. Giao diện cấu hình Preferences: tab Media và XDMS
Tab Profile cho phép cấu hình: các dịch vụ, tinh năng của từng người dùng Tab IMS: cấu hình các thông số chứng thực và tên miền
Tab Media: cấu hình địa chỉ IPTV Server và các thông số truyền thông đa phương tiện.
Hình 3.9. Giao diện của UCT client khi Bob đã đăng ký.
Hình 3.11. Giao diện gửi tin nhắn trong UCT IMS Client
3.2 Bắt bản tin và phân tích hoạt động của hệ thống3.2.1 Giới thiệu chương trình Wireshark 3.2.1 Giới thiệu chương trình Wireshark
Wireshark là một chương trình bắt gói tin trên mạng. Nó sẽ cố gắng bắt tất cả các gói tin và hiển thị thông tin chi tiết nhất có thể. Mục đích của việc sử dụng Wireshark có thể là:
• Quản trị mạng: kiểm tra các lỗi trên mạng • Bảo mật hệ thống: kiểm tra các lỗi về bảo mật • Phát triển hệ thống: gỡ rối hoạt động của giao thức
Hình 3.12.Giao diện chính của chương trình Wireshark
Wireshark có một số ưu điểm như sau:
• Có thể chạy trên cả hệ thống UNIX và Windows • Bắt các bản tin trực tuyến trên card mạng
• Hiện gói tin với thông tin về giao thức
• Có thể mở và lưu lại các dữ liệu đã bắt được
• Import and Export các gói tin từ rất nhiều chương trình khác • Lọc gói tin với nhiều tiêu chí khác nhau
• Tìm kiếm gói tin với nhiều tiêu chí
• Hiển thị gói tin với màu nổi bật dựa trên bộ lọc • Tạo rất nhiều thống kê
3.2.2 Các thủ tục đăng ký
Để phân tích được quá trình liên lạc giữa S-CSCF và I-CSCF với HSS, ta cần sửa địa chỉ của P-CSCF, I-CSCF và S-CSCF thành một địa chỉ khác với địa chỉ của HSS, ở đây ta chọn là 192.168.1.30.
Trong phần này ta sử dụng hai phần mềm được cài đặt trên máy thật là Mercuro IMS Client và Wireshark để đăng ký và bắt gói tin, phân tích hoạt động xảy ra khi thực các thủ tục như đăng ký, hủy đăng ký.
Hình 3.13. Quá trình diễn ra khi đăng ký
Hình 3.14. Tiêu đề bản tin gửi từ UE
Bước 1: UE gửi bản tin REGISTER tới P-CSCF trong đó chứa thông tin về
thuê bao:
• SIP URI: nga@open-ims.test
• Địa chỉ P-CSCF (được cấu hình tại UE): 192.168.1.10:3246
Bước 2: Sau khi nhận được bản tin REGISTER từ P-CSCF, I-CSCF sẽ chất
vấn HSS về S-CSCF phục vụ cho P-CSCF thực hiện chất vấn (thông qua giao thức Diameter)
• P-CSCF gửi Diameter authorization request đến HSS.
Bước 3: HSS gửi trả về cho I-CSCF bản tin đáp ứng chứa thông tin về S-
CSCF
cần liên lạc trong trường AVP: Server-name.
Bước 4: I-CSCF chuyển bản tin đăng ký của thuê bao sang S-CSCF tương
Bước 5: S-CSCF chất vấn HSS về thông tin xác thực thuê bao qua giao thức
Diameter.
Bước 6: Khi hệ thống cấu hình yêu cầu thông tin xác thực, S-CSCF gửi bản
tin 401 chất vấn lại tính xác thực của thuê bao thực hiện việc đăng ký.
Bước 7: Sau khi nhận được bản tin 401, dựa vào thống nhất thuật toán mã
hóa với hệ thống, UE gửi bản tin đăng ký trong đó có chứa thông tin mã hóa ở trường “nonce” trong trường Authorization của bản tin.