Nghiên cứu hệ thống phần mềm tổng đài SER - SEMS & phát triển ứng dụng IVR

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Định hướng đề tài Đề tài tập trung nghiên cứu về hệ thống phần mềm tổng đài PBX mã nguồn mở SER và SEMS của viện nghiên cứu FOKUS - Đức, nghiên cứu phát triển dịch vụ trả lời tự động (IVR) cho hệ thống SER-SEMS. Các nhiệm vụ cụ thể của ĐATN Nghiên cứu tổng quan về công nghệ VoIP, xu hướng phát triển trên thế giới và ở Việt Nam Nghiên cứu giao thức SIP – giao thức khởi tạo phiên, một giao thức đang trở tha

doc102 trang | Chia sẻ: huyen82 | Lượt xem: 2202 | Lượt tải: 0download
Tóm tắt tài liệu Nghiên cứu hệ thống phần mềm tổng đài SER - SEMS & phát triển ứng dụng IVR, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
̀nh chuẩn trong công nghệ VoIP Nghiên cứu về SER – SIP Express Router, SER đóng vai trò điều khiển cuộc gọi và báo hiệu trong hệ thống VoIP. Nó xử lý các bản tin SIP, thiết lập các kênh liên lạc giữa các người dùng Nghiên cứu về SEMS – SIP Express Media Server, SEMS đóng vai trò là một media server, cung cấp các dịch vụ gia tăng cho mạng VoIP như: hội thảo, voicemail, mailbox, announcement, dịch vụ trả lời tự động (IVR),… Nghiên cứu và phát triển các ứng dụng trả lời tự động trên SEMS. Ngôn ngữ sử dụng là Python – một ngôn ngữ script hướng đối tượng khá linh hoạt. Lời cam đoan của sinh viên Tôi – Nguyễn Minh Khôi – cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của Ths. Bùi Thị Hòa. Các kết quả nêu trong ĐATN là trung thực, không phải sao chép toàn văn của bất kỳ công trình nào khác. Hà Nội, ngày 26 tháng 05 năm 2007 Tác giả ĐATN Nguyễn Minh Khôi Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho bảo vệ. Nghiên cứu hệ thống phần mềm tổng đài SER-SEMS và phát triển ứng dụng IVR TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Sự phát triển mạnh mẽ của các công nghệ Internet và đường truyền tốc độ cao từ những công ty, doanh nghiệp đến tận các hộ gia đình đã thúc đẩy sự ra đời của VoIP – Voice over Internet Protocol hay giao thức truyền âm thanh qua mạng máy tính, một công nghệ điện thoại mới. VoIP xuất hiện trở thành một sự kiện ̣ hấp dẫn đặc biệt đối với các công ty, các nhà cung cấp dịch vụ và người dùng cuối. Công nghệ này cho phép mạng Internet và các mạng lưới dữ liệu khác như mạng văn phòng, nhà máy hay mạng trường học… có thể truyền dữ liệu thoại, hội thảo truyền hình cũng như các ứng dụng truyền thông thời gian thực khác. Nhờ ứng dụng giao thức IP để truyền tín hiệu thoại (voice) dưới dạng các gói tin (packets) trong mạng IP nên VoIP có thể hoạt động được trên bất kỳ mạng dữ liệu sử dụng giao thức IP nào (Internet, Intranet, Local Area Network - LAN). Hiện nay, ranh giới giữa Công nghệ thông tin và Điện tử viễn thông ngày càng thu hẹp. Điển hình́ như hiện tượng các tổng đài điện thoại PBX truyền thống bằng phần cứng đắt tiền đang dần được thay thế bởi các phần mềm tổng đài điện thoại cá nhân (softPBX) hoặc các dịch vụ giá trị gia tăng cho điện thoại được lập trình bằng các ngôn ngữ lập trình hướng đối tượng thông dụng. Việc chuyển từ phần cứng sang phần mềm làm hạ giá thành, dễ dàng phát triển thêm được nhiều dịch vụ mới. Tổng đài IS-COM là một đề tài nghiên cứu của khoa Điện Tử Viễn Thông Đại học Bách Khoa Hà Nội hợp tác với viện FOKUS của Đức. Đó là hệ thống phần mềm tổng đài điện thoại phát triển trên nền bộ phần mềm mã nguồn mở SER, SEMS và SERWEB của FOKUS. IS-COM cung cấp các dịch vụ giá trị gia tăng cho điện thoại như dịch vụ gọi điện thoại PC-to-PC, PC-to-Phone, các ứng dụng IVR, hộp thư thoại, thông báo, SMS, hội thảo (conference),…Hệ thống cũng đóng vai trò kết nối giữa mạng điện thoại IP và mạng điện thoại công cộng PSTN truyền thống. Đề tài tốt nghiệp này là một phần trong đề tài nghiên cứu hệ thống IS-COM. Nhiệm vụ của đề tài là nghiên cứu về công nghệ VoIP, giao thức SIP, nghiên cứu tổng quan về hệ thống SER-SEMS và phát triển các ứng dụng trả lời tự động (IVR) cho hệ thống. Từ khóa: VoIP, phần mềm tổng đài, SER, SEMS, trả lời tự động(IVR), SIP, Python ABSTRACT OF THE THESIS The dizzy development pace of Internet techonologies and high-speed link access in companies, entrepreneur, and even households has given birth to VoIP, also called Voice over Internet Protocol, a cutting-edge telephony techonology. The apperance of VoIP has shed a new light on enterprises, service providers and end-users. The techonology allows Internet and other data networks like office networks, school networks, or enterprise networks to transmitt voice signals, video conferences and other real-time applications. VoIP can function over any Data/IP network (inclulding Internet, Intranet, Local Area Network-LAN) by applying IP protocol to transmit voice signal as packets over the IP network. Currently, the gap between Information Technology and Telecomunitaions has non-stopped reducing. For instance, the replacement of tradtional Private Branch Exchange (PBX), which is built on expensive hardware, with soft-PBX, a software –based PBX, or Value-added Telephone Services written in popular object-oriented programming languages. The shift from hardware to software is a cost-reduction and so many other new services can be easily developed. IS-COM is a co-operative research, which is carried out by Ha Noi University of Technology’s Falculty of Electronics and Telecomunications and German’s FOKUS. This software telephone exchange system is built on SER, SEMS, and SERWEB, which are open-source softwares of FOKUS. IS-COM provided value-added telephone services such as PC-to-PC calling, PC-to-Phone calling, IVR-application, Voice-mail Service, Instant Message, SMS, Coference...etc. Moreover, the system also play a role as a connector betwwen IP-Telephone and traditional public switched telephone network (PSTN). This graduation thesis is part of IS-COM research. It targets at studying VoIP technology, SIP protocol, SER-SEMS system, and developing interactive voice response for the system. Keywords: VoIP, softPBX, SER, SEMS, interactive voice response (IVR), SIP, Python. Mục lục Danh mục hình vẽ Hình 1 Sơ đồ mạng VoIP đơn giản 19 Hình 2 Sơ đồ hệ thống VoIP phức tạp 19 Hình 3 Tổng quan hệ thống IS-COM 24 Hình 4. UAS và UAC 34 Hình 5. Lời mời phiên 36 Hình 6. SIP Gateway 38 Hình 7. Tổng quan về đăng ký 39 Hình 8. Chuyển hướng SIP 39 Hình 9. SIP transaction 41 Hình 10. Luồng cuộc gọi trong một Dialog SIP 42 Hình 11. Định tuyến dễ dàng trong dialog 43 Hình 12.Mô hình chồng giao thức multimedia 44 Hình 13. Luồng trong một giao dịch đăng ký 45 Hình 14. Luồng giao dịch INVITE khởi tạo cuộc gọi 46 Hình 15. Luồng bản tin Instant Message trong SIP 47 Hình 16. Cấu trúc SER 49 Hình 17. IS-CC và SIP stack của IS-ME 57 Hình 18. Các lớp của IS-ME 58 Hình 19. Các plug-in trong IS-ME 59 Hình 20. Các audio plug-in trong SEMS 60 Hình 21. Application plug-in 61 Hình 22. Thiết tạo Session 61 Hình 23. Đối tượng session trong SessionContainer 62 Hình 24. Các sự kiện được truyền đến Session 62 Hình 25. Dòng media t rong SEMS 63 Hình 26. Lớp AmRtpAudio 63 Hình 27. Lớp “thiết bị” AmAudio 64 Hình 28. Chơi media từ một file 64 Hình 29. Một session được kết nối với một conference 65 Hình 30. Các thread trong SEMS 66 Hình 31. Kiểm soát keypress/DTMF 66 Hình 32. lớp AmSession 67 Hình 33. Sơ đồ thừa kế của AmThread 67 Hình 34. lớp AmSessionContainer 68 Hình 35. lớp AmRtpAudio 69 Hình 36.Cấu trúc thư mục phát triển một ứng dụng Python 85 Hình 37. Mô hình hệ thống 88 Hình 38. phần mềm x-lite 88 Hình 39. Thêm SIP account mới 89 Hình 40. Điền các thông só đăng ký user SIP 90 Hình 41. Đăng ký qua mạng Internet 91 Hình 42.Hệ thống báo điểm thi 92 Hình 43. Menu chính hệ thống báo điểm thi 94 Hình 44. Menu xem điểm thi 95 Hình 45. chạy hệ thống SER và phần mềm điện thoại X-Lite 95 Hình 46. Chạy hệ thống SEMS 96 Hình 47. Trang web quản lý điểm thi 96 Hình 48. Nghe nhạc theo yêu cầu 98 Danh mục bảng Bảng 1.2.2.1. So sánh giữa PBX truyền thống với IP-PBX 21 Bảng 2.4.1.1. Cấu trúc bản tin SIP 31 Bảng 2.4.1.2.Cấu trúc một bản tin SIP Requeset 32 Bảng 9.2.2.1. Bảng Student 92 Bảng 9.2.2.2. Bảng Subject 93 Bảng 9.2.2.3. Bảng ClassCourse 93 Bảng 9.2.2.4. Bảng ClassCourseStudent 93 Bảng 9.2.2.5. Bảng ClassCourseSubject 93 Bảng 9.2.2.6. Bảng Mark 93 Danh mục từ viết tắt Từ viết tắt Từ đầy đủ Giải nghĩa IVR Interactive Voices Response Dịch vụ trả lời tự động PSTN Public switched telephone network Mạng điện thoại công cộng VoIP Voice over Internet Protocol Truyền các ứng dụng voice qua mạng IP PBX Private Branch eXchange Tổng đài điện thoại nội bộ IP-PBX Internet protocol – Private Branch eXchange Tổng đài điện thoại nội bộ hỗ trợ công nghệ VoIP SIP Session Initiation Protocol Giao thức khởi tạo phiên SER SIP Express Router Server xử lý các bản tin SIP SEMS SIP Express Media Server Server cung cấp các dịch vụ gia tăng dùng trong SER UA, UAC, UAS User Agent, User Agent Client, User Agent Server Tác nhân người dùng SDP Session Description Protocol Giao thức mô tả phiên RTP Real-time transport protocol Giao thức truyền thời gian thực RCTP Real Time Control Protocol Giao thức điều khiển thời gian thực LAN Local Area Network Mạng cục bộ ADSL asymmetric digital subscriber line Đường thuê bao số không đồng bộ ATA Analog Telephone Adaptor Thiết bị chuyển đổi giúp sử dụng điện thoại thường trong mạng VoIP RJ11, RJ45 Registered Jacks 11, Registered Jacks 45 Đầu nối đường đường dây điện thoại thường (RJ11) và đầu nối dây trong mạng LAN (RJ45) FXS Foreign eXchange Subscriber Đường kết nối từ nhà cung cấp điện thoại tới máy điện thoại (rắc cắm trên tường) FXO Foreign eXchange Office Thiết bị nhận tín hiệu từ nhà cung cấp dịch vụ điện thoại (nằm trong điện thoại) IETF Internet Engineering Task Force Tổ chức chuyên đưa ra các chuẩn cho mạng internet. MAN Metropolitan Area Network Mạng thành phố WAN Wide Area Network Mạng diện rộng (mạng internet) ITU International Telecommunications Union Tổ chức viễn thông quốc tế Lời cảm ơn Trước tiên em xin tỏ lòng biết ơn sâu sắc tới Ths. Bùi Thị Hòa. Cô là người trực tiếp hướng dẫn em thực hiện đề tài này, cũng là người tận tình chỉ bảo em trong quá trình làm đồ án tốt nghiệp. Em xin chân thành cám ơn TS. Nguyễn Hữu Thanh – Phó khoa Điện tử viễn thông, Ths. Nguyễn Tài Hưng đã tận tình hướng dẫn, giúp đỡ em trong quá trình tham gia nghiên cứu đề tài và làm đồ án tốt nghiệp. Em xin gửi lời cám ơn sâu sắc tới các thầy cô giáo trong khoa Công nghệ thông tin và trường Đại học Bách Khoa Hà Nội đã dạy giỗ em trong suốt thời gian em học và làm đồ án ở trường. Em cũng xin cám ơn các bạn trong phòng lab C9-411 đã giúp đỡ em trong thời gian làm đồ án vừa qua. Cuối cùng em xin cảm ơn gia đình, bạn bè đã luôn ở bên em, quan tâm, động viên và đóng góp ý kiến giúp em hoàn thành đồ án. Do thời gian, kiến thức và kinh nghiệm của em còn hạn chế nên đồ án chắc chắn có những khiếm khuyết, em mong được các thầy cô, anh chị và các bạn góp ý để đồ án được hoàn thiện hơn. Hà nội, ngày 26 tháng 5 năm 2007 Sinh viên Nguyễn Minh Khôi Đặt vấn đề Telephony là sự giao tiếp bằng âm thanh giữa hai hoặc nhiều bên tham gia bằng tín hiệu được truyền qua đường dây điện thoại hoặc sóng radio. Kể từ khi Alexander Graham Bell phát minh ra mạch điện thoại và hệ thống điện thoại công cộng đầu tiên xuất hiện cho đến nay, điện thoại đã trở thành một phương tiện trao đổi thông tin không thể thiếu của loài người. Qua thời gian hệ thống truyền thoại qua mạng chuyển mạch kênh cũ đã bộc lộ nhiều hạn chế như: tốc độ đường truyền thấp, giới hạn số lượng trong hội thảo hội nghị, khả năng phục vụ đồng thời ít, khả năng lưu trữ thấp, …Sự ra đời của công nghệ VoIP(Voice over Internet Protocol) đã khắc phục được các nhược điểm đó. Về bản chất công nghệ VoIP là công nghệ sử dụng giao thức IP để truyền tín hiệu thoại (voice) dưới dạng các gói tin (packets) trong mạng IP. Việc sử dụng chuyển mạch gói thay cho chuyển mạch kênh đã tạo ra được sự tối ưu hơn: không phải giữ riêng kênh truyền trong suốt cuộc gọi, do vậy có thể cùng lúc truyền được nhiều cuộc hội thoại trên một kênh truyền. Đối với mạng chuyển mạch kênh, các hệ thống tổng đài PBX thường là các phần cứng đắt tiền, chức năng cũng không nhiều. Đối với các hệ thống VoIP, tổng đài thường là sự kết hợp giữa phần cứng và phần mềm. Phát triển các dịch vụ gia tăng trên các tổng đài trở nên đơn giản hơn do nó được quy về phát triển phần mềm.Với các tổng đài loại kết hợp giữa phần cứng và phần mềm (IP-PBX) thì giá thành của nó vẫn còn cao. Hệ thống tổng đài bằng phần mềm có được nhiều lợi thế: giá thành thấp, dễ tùy biến, cấu hình, dễ phát triển các dịch vụ trên nó. Nếu có thêm card giao tiếp với mạng PSTN thì hoàn toàn có thể biến chiếc máy tính bình thường trở thành một tổng đài điện thoại. Do đó bài toán được đặt ra là xây dựng một hệ thống tổng đài VoIP bằng phần mềm đáp ứng được các nhu cầu của một doanh nghiệp vừa và nhỏ. Tổng đài IS-COM là một đề tài nghiên cứu của khoa Điện Tử Viễn Thông Đại học Bách Khoa Hà Nội hợp tác với viện FOKUS của Đức. Đó là hệ thống phần mềm tổng đài điện thoại phát triển trên nền bộ phần mềm mã nguồn mở SER, SEMS và SERWEB của FOKUS. IS-COM cung cấp các dịch vụ giá trị gia tăng cho điện thoại như dịch vụ gọi điện thoại PC-to-PC, PC-to-Phone, các ứng dụng IVR, hộp thư thoại, thông báo, SMS, hội thảo (conference),…Hệ thống cũng đóng vai trò kết nối giữa mạng điện thoại IP và mạng điện thoại công cộng PSTN truyền thống. Đề tài tốt nghiệp này là một phần trong đề tài nghiên cứu hệ thống IS-COM. Nhiệm vụ của đề tài là nghiên cứu về công nghệ VoIP, giao thức SIP, nghiên cứu tổng quan về hệ thống SER-SEMS và phát triển các ứng dụng trả lời tự động (IVR) cho hệ thống. Bố cục trình bày của đồ án được chia làm 6 chương có nội dung như sau: Chương 1 Chương 1 giới thiệu tổng quan về công nghệ VoIP, các ưu điểm của công nghệ này. Chương 2 Chương 2 giới thiệu một số khái niệm, kiến thức liên quan đến công nghệ VoIP: mạng PSTN truyền thống, giao thức SIP – một giao thức chuẩn cho VoIP,… Chương 3 Chương 3 giới thiệu kiến trúc của hệ thống SER Chương 4 Chương 4 giới thiệu kiến trúc của hệ thống SEMS, cách cấu hình để cho 2 hệ thống SER và SEMS có thể giao tiếp được với nhau. Chương 5 Chương 5 giới thiệu về IVR, cách phát triển một ứng dụng IVR cho SEMS và một số chương trình phát triển thử nghiệm. Chương 6 Chương 6 là kết luận và hướng phát triển tiếp theo của đề tài này Cuối cùng là phần tài liệu tham khảo GIỚI THIỆU VỀ VoIP Trong chương này: Giới thiệu tổng quan về VoIP Tổng đài PBX Tóm tắt các bước thiết lập hệ thống VoIP ở doanh nghiệp Giới thiệu hệ thống tổng đài IS-COM Giới thiệu một số hệ thống tổng đài IP-PBX khác Tổng quan về VoIP VoIP là gì Với sự phát triển mạnh mẽ của các công nghệ Internet và đường truyền tốc độ cao trong các công ty, doanh nghiệp cho đến tận các gia đình, một công nghệ điện thoại mới đã ra đời – công nghệ VoIP (Voice over Internet Protocol hay Giao thức truyền âm thanh qua mạng máy tính). VoIP sử dụng giao thức IP để truyền tín hiệu thoại (voice) dưới dạng các gói tin (packets) trong mạng IP. Do vậy, VoIP có thể được sử dụng trên bất kỳ mạng dữ liệu nào mà sử dụng giao thức IP (như Internet, Intranet, Local Area Network - LAN). Trong các mạng này, tín hiệu thoại sẽ được số hóa, nén lại, chuyển thành các gói tin IP và truyền đi. Khi đến nơi nhận, các gói tin được ghép lại, giải nén và chuyển ngược lại thành các tín hiệu tương tự để phục hồi tín hiệu thoại. Hệ thống truyền dẫn voice cổ điển có một số hạn chế: tốc độ truyền dẫn thấp (56 kbps), số lượng phục vụ đồng thời ít, giới hạn trong hội thảo hội nghị (conference), khả năng lưu trữ thấp,…Các tổ chức nhận ra được sự tiện ích của công nghệ VoIP, họ có thể ứng dụng công nghệ này trực tiếp vào mô hình sẵn có của công ty, sử dụng được nhiều tính năng viễn thông mới, tiết kiệm chi phí và nâng cao hiệu năng sử dụng dịch vụ. Theo số liệu thống kê của Bộ Bưu Chính Viễn Thông (website: ) tính đến tháng 4/2007 cả nước ta đã có 33.140.000 thuê bao điện thoại, tỷ lệ số máy trên 100 dân là 39,26%. Còn số lượng thuê bao internet tính đến tháng 4/2007 đã đạt tới con số 4.379.073 thuê bao, tỷ lệ số dân sử dụng internet đã tăng lên 18,9%. Đây quả thực là những con số rất có ý nghĩa. Sự tăng trưởng mạnh của số lượng thuê bao điện thoại là do giá cước viễn thông giảm và nhu cầu sử dụng của người dân tăng lên. Số lượng người sử dụng điện thoại tăng kéo theo sự tăng trưởng của số người dùng Internet, nhất là sau năm 2004, khi mạng internet băng thông rộng ADSL có mặt ở Việt Nam, số lượng thuê bao đã tăng trưởng nhanh chóng. Số lượng người dùng điện thoại và số thuê bao internet lớn, băng thông internet cao, đó là những tiền đề tốt để phát triển các dịch vụ VoIP cho thị trường Việt Nam. Ranh giới giữa Công nghệ thông tin và Điện tử viễn thông càng thu hẹp, điển hình đó là sự xuất hiện của các phần mềm tổng đài điện thoại cá nhân (softPBX) thay thế cho các tổng đài điện thoại PBX truyền thống bằng phần cứng đắt tiền, đó là các dịch vụ giá trị gia tăng cho điện thoại được lập trình bằng các ngôn ngữ lập trình hướng đối tượng thông dụng. Việc chuyển từ phần cứng sang phần mềm đã làm hạ giá thành, dễ dàng phát triển thêm được các dịch vụ mới. Các thiết bị có thể gọi điện thoại IP được: Sử dụng microphone hoặc headphone kết hợp với softphone (phần mềm dùng để gọi điện thoại VoIP) Sử dụng USB Phone cắm vào máy tính Sử dụng điện thoại thường thông qua thiết bị chuyển đổi ATA (Analog Telephone Adaptor), thường thiết bị này có hai đầu: một đầu RJ11 nối với điện thoại, một đầu RJ45 nối với mạng LAN Sử dụng IP Phone: một số hãng cung cấp như Cisco, 3Com, cắm thẳng trực tiếp vào mạng LAN Sử dụng wireless IP Phone: điện thoại IP không dây Ưu điểm và nhược điểm của công nghệ VoIP Ưu điểm VoIP ra đời nhằm khai thác tính hiệu quả của các mạng truyền số liệu, khai thác tính linh hoạt trong phát triển các ứng dụng mới của giao thức IP và nó được áp dụng trên một mạng toàn cầu là mạng Internet. Các tiến bộ của công nghệ đã mang đến cho VoIP những ưu điểm sau: Giảm chi phí cuộc gọi: Ưu điểm nổi bật nhất của dịch vụ điện thoại VoIP so với dịch vụ điện thoại truyền thống là khả năng cung cấp những cuộc gọi đường dài giá rẻ với chất lượng chấp nhận được. Chi phí cho một cuộc gọi đường dài sẽ chỉ tương đương với chi phí truy nhập internet. Nguyên nhân dẫn đến chi phí thấp như vậy là do tín hiệu thoại được truyền tải trong mạng IP có khả năng sử dụng kênh hiệu quả cao; kỹ thuật nén thoại tiên tiến giảm tốc độ bít từ 64 Kbps xuống thấp tới 8 Kbps (theo tiêu chuẩn nén thoại G.729A của ITU-T); tốc độ xử lý nhanh của các bộ vi xử lý ngày nay đã cho phép việc truyền tiếng nói theo thời gian thực là có thể thực hiện được với lượng tài nguyên băng thông thấp hơn nhiều so với kỹ thuật cũ. Tích hợp mạng thoại, mạng số liệu và mạng báo hiệu: Trong điện thoại IP, tín hiệu thoại, số liệu và ngay cả báo hiệu đều có thể cùng đi trên cùng một mạng IP. Điều này sẽ tiết kiệm được chi phí đầu tư để xây dựng những mạng riêng rẽ. Khả năng mở rộng: Nếu như các hệ tổng đài thường là những hệ thống kín, rất khó để thêm vào đó những tính năng thì các thiết bị trong mạng internet thường có khả năng thêm vào những tính năng mới. Chính tính mềm dẻo đó mang lại cho dịch vụ VoIP khả năng mở rộng dễ dàng hơn so với điện thoại truyền thống. Không cần thông tin điều khiển để thiết lập kênh truyền vật lý: Gói thông tin trong mạng IP truyền đến đích mà không cần một sự thiết lập kênh nào. Gói thông tin chỉ cần mang địa chỉ của nơi nhận cuối cùng là thông tin đó có thể đến được đích. Do vậy, việc điều khiển cuộc gọi trong mạng IP chỉ cần tập trung vào chức năng cuộc gọi mà không phải tập trung vào chức năng thiết lập kênh. Quản lý băng thông: Trong điện thoại chuyển mạch kênh, tài nguyên băng thông cung cấp cho một cuộc liên lạc là cố định (một kênh 64Kbps), nhưng trong điện thoại IP việc phân chia tài nguyên cho các cuộc thoại linh hoạt hơn nhiều. Khi một cuộc liên lạc diễn ra, nếu lưu lượng của mạng thấp, băng thông dành cho liên lạc sẽ cho chất lượng thoại tốt nhất có thể; nhưng khi lưu lượng của mạng cao, mạng sẽ hạn chế băng thông của từng cuộc gọi ở mức duy trì chất lượng thoại chấp nhận được nhằm phục vụ cùng lúc được nhiều người nhất. Điểm này cũng là một yếu tố làm tăng hiệu quả sử dụng của điện thoại IP. Việc quản lý băng thông một cách tiết kiệm như vậy cho phép người ta nghĩ tới những dịch vụ cao cấp hơn như truyền hình hội nghị, điều mà với công nghệ chuyển mạch cũ người ta đã không thực hiện vì chi phí quá cao. Nhiều tính năng dịch vụ: Tính linh hoạt của mạng IP cho phép tạo ra nhiều tính năng mới trong dịch vụ thoại. Ví dụ cho biết thông tin về người gọi tới hay một thuê bao điện thoại IP có thể có nhiều số liên lạc mà chỉ cần một thiết bị đầu cuối duy nhất (Ví dụ như một thiết bị IP Phone có thể có một số điện thoại dành cho công việc, một cho các cuộc gọi riêng tư). Khả năng multimedia: Trong một “cuộc gọi” người sử dụng có thể vừa nói chuyện vừa sử dụng các dịch vụ khác như truyền file, chia sẻ dữ liệu, hay xem hình ảnh của người đang nói chuyện. Nhược điểm Kỹ thuật phức tạp: Truyền tín hiệu theo thời gian thực trên mạng chuyển mạch gói là rất khó thực hiện do mất gói trong mạng là không thể tránh được và độ trễ không cố định của các gói thông tin khi truyền trên mạng. Để có được một dịch vụ thoại chấp nhận được, cần thiết phải có một kỹ thuật nén tín hiệu đạt được những yêu cầu khắt khe: tỉ số nén lớn (để giảm được tốc độ bit xuống), có khả năng suy đoán và tạo lại thông tin của các gói bị thất lạc... Tốc độ xử lý của các bộ Codec (Coder and Decoder) phải đủ nhanh để không làm cuộc đàm thoại bị gián đoạn. Đồng thời cơ sở hạ tầng của mạng cũng cần được nâng cấp lên các công nghệ mới như Frame Relay, ATM,... để có tốc độ cao hơn và/hoặc phải có một cơ chế thực hiện chức năng QoS (Quality of Service). Vấn đề bảo mật: Mạng Internet là một mạng có tính rộng khắp và hỗn hợp. Trong đó có rất nhiều loại máy tính khác nhau cùng các dịch vụ khác nhau cùng sử dụng chung một cơ sở hạ tầng. Do vậy không có gì đảm bảo rằng thông tin liên quan đến cá nhân cũng như số liên lạc truy nhập sử dụng dịch vụ của người dùng được giữ bí mật. Vì vậy, việc sử dụng VoIP đòi hỏi phải có sự đầu tư cơ sở hạ tầng và công nghệ cao. Một số vấn đề nhỏ khác: Hệ thống điện thoại truyền thống (PSTN) sử dụng đường dây riêng, nên khi mất điện vẫn hoạt động được, còn hệ thống VoIP sử dụng mạng Internet, nên khi mất điện thì sẽ không sử dụng được. Các số điện thoại nóng 113, 114, 115,…: không tự động xác định được vị trí của người gọi để chuyển cuộc gọi đến trung tâm gần nhất Sự phát triển của các dịch vụ VoIP Khái niệm về VoIP bắt đầu từ năm 1995, khi người ta bắt đầu nhận ra tiềm năng của việc gửi dữ liệu âm thanh qua mạng Internet thay vì giao tiếp qua mạng điện thoại chuẩn. Khái niệm này cho phép người sử dụng PC tránh được chi phí cho các cuộc gọi đường dài. Năm 1995, một công ty nhỏ tên là Vocaltec đã cho ra đời phiên bản đầu tiên của phần mềm điện thoại internet. Phần mềm này chạy trên các máy PC thông thường, sử dụng card âm thanh, microphone và loa của máy tính. Phần mềm này sử dụng giao thức H.323 thay vì giao thức SIP hiện thời đang phổ biến. Có thể nói nó là Skype của giữa những năm 90. Hạn chế duy nhất của nó là sự hạn chế của băng thông đường truyền Internet vào thời bấy giờ, chủ yếu sử dụng kết nối internet thông qua modem quay số (tốc độ 56kbps), do đó chất lượng âm thanh thấp hơn so với điện thoại thường. Tuy nhiên đó vẫn là một cột mốc quan trọng đánh dấu sự ra đời của VoIP. Đến năm 1998, lưu lượng sử dụng dịch vụ VoIP đã đạt con số sấp xỉ 1% tổng lưu lượng thoại ở Mỹ. Các nhà đầu tư đã nhảy vào thị trường đầy tiềm năng này và đã tạo ra các thiết bị cho phép gọi điện thoại từ máy tính đến điện thoại(PC-to-Phone) và từ điện thoại đến điện thoại(Phone-To-Phone). Các nhà cung cấp thiết bị mạng như Cisco và Lucent đã tạo ra các thiết bị cho phép định tuyến và chuyển mạch lưu lượng VoIP và kết quả là đến năm 2000, tổng lưu lượng VoIP đã đạt được trên 3% tổng lưu lượng thoại. Cho đến năm 2005 vấn đề chính về chất lượng thoại đã được giải quyết và các lưu lượng VoIP đã được ưu tiên hơn lưu lượng dữ liệu để đảm bảo độ tin cậy, chất lượng âm thanh cao và cuộc gọi thành công (không bị ngắt đột ngột giữa chừng). Thu nhập từ thị trường thiết bị VoIP đạt tới mức 3 tỉ USD trong năm 2005 và dự tính sẽ đạt tới 8 tỉ USD trong năm 2008. Đó là do các tiện ích mà công nghệ VoIP đem lại: giá rẻ, không giới hạn cuộc gọi và sự phong phú của các dịch vụ liên quan đến công nghệ VoIP. Một công ty thành công nhất trong lĩnh vực VoIP chính là Skype. Tính tới thời điểm hiện thời, Skype đã có khoảng hơn 100 triệu người đăng ký sử dụng trên toàn cầu, nhiều hơn bất cứ nhà cung cấp dịch vụ VoIP nào khác. Hãng miễn phí mọi cuộc gọi giữa hai máy tính (PC-to-PC) nhưng vẫn thu cước dịch vụ gọi tới số điện thoại cố định và di động thông thường (SkypeOut). Giá thành cho các cuộc gọi từ PC đến điện thoại thường khá rẻ: 0,02 USD/phút cho cuộc gọi đến các nước thuộc “thế giới thứ nhất”. Theo hãng nghiên cứu Gartner, năm 2009 sẽ có khoảng 1/3 người Mỹ và châu Âu từ bỏ đường điện thoại truyền thống và chuyển sang điện thoại băng thông rộng không dây như một sự thay thế giá rẻ. Yahoo cũng đã bắt đầu chú ý đến thì trường này với bản Yahoo Messenger 7.0 with Voice cung cấp gọi điện thoại Internet và dịch vụ tin nhắn qua VoIP đến máy di động. Và còn rất nhiều nhà cung cấp dịch vụ VoIP khác nữa như: Google Talk, Vonage, Open Wengo, … Thị trường Việt Nam cũng đang phát triển mạnh mẽ với nhiều nhà cung cấp dịch vụ VoIP. Các nhà cung cấp chính bao gồm: Tổng công ty Bưu chính Viễn thông Việt Nam (VNPT) Công ty cổ phần dịch vụ Bưu chính, Viễn thông Sài Gòn (Saigon Postel) Công ty Thông tin điện tử Hàng Hải (Vishipel) Công ty cổ phần viễn thông Hà Nội (Hanoi Telecom) Tổng công ty Viễn thông quân đội (Viettel) Ngoài ra còn rất nhiều các nhà cung cấp khác như: Trung tâm Viễn thông Thế hệ mới Việt Nam (VNGT), FPT, NetNam,… Các dịch vụ điện thoại VoIP giá rẻ đã được sử dụng từ vài năm trở lại đây: 171, 1717 của VNPT, 177 của Saigon Postel, 178 của Viettel, 179 của Điện lực thành phố, 175 của Viễn Thông Hàng Hải. Người dùng sử dụng điện thoại thông thường để gọi, chỉ cần thêm vào trước số cần gọi một trong các số trên là đã được sử dụng dịch VoIP giá rẻ. Số lượng người dùng tăng nhanh do giá thành thấp và chất lượng tương đương với cả cách gọi thông thường. Dịch vụ điện thoại internet đang đặc biệt phát triển, có nhiều nhà cung cấp thẻ điện thoại internet giá rẻ : Voice 777 của VNGT, thẻ internet của NetNam, của FPT,… Thông thường giá gọi sang Mỹ chỉ khoảng 300 VND/phút. Việc phát triển một dịch vụ VoIP cung cấp thẻ điện thoại internet là khá dễ dàng nên ở Việt Nam xuất hiện rất nhiều thẻ điện thoại internet lậu, tức là các dịch vụ cung cấp không đăng ký giấy phép hoạt động mà vẫn bán thẻ. Hành động đó gọi là ăn trộm cước viễn thông quốc tế. Ứng dụng VoIP cho các doanh nghiệp Hàng năm, chi phí của các doanh nghiệp Việt Nam dành cho tiền điện thoại là rất lớn, đặc biệt là đối với các doanh nghiệp có chi nhánh ở nhiều tỉnh thành khác nhau, hoặc là làm ăn với các đối tác nước ngoài. Việc áp dụng VoIP cho các doanh nghiệp là rất có lợi về mặt kinh tế. Giả sử doanh nghiệp của bạn có hai chi nhánh đặt ở Hà Nội và Tp. Hồ Chí Minh. Cấu hình tối thiểu để thực hiện được cuộc gọi VoIP giữa hai chi nhánh là cả hai chi nhánh cần có router hỗ trợ VoIP cộng với đường truyền ADSL. Nếu muốn công bố số điện thoại cho bạn bè, khách hàng có thể gọi đến thì có thể đăng ký với một SIP Proxy Server nào đó. Hình 1 Sơ đồ mạng VoIP đơn giản Trong trường hợp chi nhánh có nhiều điện thoại thì có thể sử dụng thêm tổng đài PBX, khi đó các điện thoại sẽ kết nối với PBX qua cổng FXS, và PBX sẽ kết nối với router qua cổng FXO. Giá thành cho một hệ thống như thế này là không quá đắt. Về tổng đài PBX sẽ nói rõ ở phần Tổng đài PBX. Hình 2 Sơ đồ hệ thống VoIP phức tạp Ngoài các dịch vụ thoại thông thường, hệ thống VoIP còn cung cấp nhiều dịch vụ gia tăng khác cho doanh nghiệp của bạn. Ví dụ như dịch vụ hội thảo (conference), hội thảo tr._.uyền hình (video conference), dịch vụ trả lời tự động (IVR), dịch vụ quản lý quan hệ khách hàng (CRM – Customer Relationship Management), quản lý cuộc gọi, … Tổng đài PBX Tổng đài PBX truyền thống (hoặc tổng đài PBX điện tử) PBX - một số cách gọi khác: Private Business eXchange hoặc PABX (Private Automatic Branch eXchange) Theo thống kê thì 70% lưu lượng thoại trong một công ty cỡ vừa và lớn là của các cuộc gọi nội bộ. Đây chính là nguyên nhân dẫn đến sự ra đời của tổng đài nội bộ - PBX. Tổng đài nội bộ PBX sẽ tự định tuyến các cuộc gọi nội bộ với nhau mà không cần thông qua tổng đài của mạng PSTN. PBX truyền thống kết nối các cuộc gọi thoại trên cơ sở chuyển mạch kênh. Ví dụ: một công ty có 50 điện thoại, nếu như cả 50 điện thoại này đều kết nối trực tiếp ra tổng đài PSTN bên ngoài thì sẽ rất tốn kém, và khi một trong các điện thoại này liên lạc với nhau thì vẫn mất tiền. Giải pháp được đưa ra là mua một tổng đài PBX riêng cho công ty, 50 máy điện thoại này sẽ kết nối tới tổng đài PBX, và từ tổng đài PBX này sẽ kết nối tới mạng PSTN thông qua một số đường dây thuê bao xác định (tất nhiên là nhỏ hơn 50 đường). Như vậy thì chỉ phải trả thuê bao hàng tháng cho số đường dây mà công ty thuê. Và các cuộc gọi nội bộ trong công ty thì tổng đài PBX có thể xử lý được, không chuyển lên trên tổng đài PSTN. Có một hạn chế là số cuộc gọi đồng thời tối đa ra bên ngoài sẽ bằng với số đường lines mà công ty thuê. Về cơ bản một tổng đài PBX thực hiện các chức năng sau: Thiết lập kết nối (bằng mạch điện tử) giữa hai điện thoại của người dùng (ví dụ như ánh xạ giữa số máy được gọi với một máy điện thoại nào đó, đảm bảo rằng điện thoại đó không bận) Bảo đảm cuộc gọi được thực hiện thông suốt trong suốt quá trình gọi (tạo một kênh tín hiệu thoại giữa các người dùng) Cung cấp thông tin cho mục đích tính toán (tính cước phí, đếm số cuộc gọi,…) Các doanh nghiệp hiện nay thường sử dụng PBX cho hệ thống điện thoại trong công ty, vừa tiết kiệm chi phí, vừa quản lý được các cuộc gọi. Ngoài ra còn có thể sử dụng tổng đài PBX để xây dựng hệ thống quản lý khách hàng, hệ thống trả lời tự động cho công ty. Hiện nay một số tổng đài PBX truyền thống cũng hỗ trợ công nghệ VoIP (tổng đài IP-PBX), khi đó tổng đài IP-PBX có thể được kết nối trực tiếp vào mạng LAN, hoặc có thể nối vào máy tính thông qua cổng COM hoặc cổng USB. IP-PBX cũng hỗ trợ lập trình các ứng dụng trên nó. Một số hãng lớn thậm chí còn cung cấp trọn gói hệ thống IP-PBX cộng các dịch vụ hỗ trợ khách hàng(CRM), quản lý cuộc gọi(Call Management), hệ thống trả lời tự động (IVR),…Người quản trị chỉ việc truy cập vào IP-PBX thông qua các công cụ quản lý và chỉ phải cấu hình hệ thống sao cho phù hợp. PBX truyền thống IP-PBX PBX không thực hiện được một số chức năng của IP-PBX: Web, Instant message, E-mail… IP-PBX có thêm các chức năng: web, instant message, e-mail,… PBX đòi hỏi phải có một hệ thống mạng điện thoại nội bộ. Cho phép thực hiện liên lạc nội bộ qua mạng LAN ngay cả khi chưa có hệ thống PBX. PBX truyền tín hiệu thoại trên hệ thống đường điện thoại nội bộ. Nếu muốn truyền dữ liệu, bắt buộc phải có thêm hệ thống mạng LAN. IP-PBX truyền dữ liệu và thoại trên cùng một đường dây. Hỗ trợ duy nhất một loại đầu cuối là điện thoại tương tự. IP-PBX có khả năng hỗ trợ nhiều đầu cuối thoại khác nhau: điện thoại tương tự, điện thoại IP, máy tính cá nhân... Khả năng phát triển các loại hình dịch vụ giá trị gia tăng kém. Có thêm nhiều dịch vụ giá trị gia tăng khác; telephone, e-mail, fax, web call back, web chat, instant messaging… Mỗi đường dây thoại chỉ có thể thực hiện được một cuộc gọi tại một thời điểm, do đó không tiết kiệm băng thông. Tín hiệu trước khi chuyển đến đường truyền đã được thông qua các bộ nén và giải nén, băng thông cho mỗi cuộc gọi có thể được nén xuống còn 5,3 Kbits/s (chuẩn nén thoại G.723.1), thay vì 64 Kbits/s của thoại thường. Do tính chất tiết kiệm băng thông như vậy nên với một đường dây thoại có thể thực hiện được nhiều cuộc gọi hơn. Khó mở rộng, nâng cấp và bảo dưỡng Dễ dàng mở rộng, nâng cấp và bảo dưỡng. Bảng 1.2.2.1. So sánh giữa PBX truyền thống với IP-PBX Tổng đài PBX bằng phần mềm – softPBX Tổng đài PBX bằng phần mềm thực chất là một phần mềm (thường được cài đặt trên nền hệ điều hành LINUX). Nó thực hiện các chức năng của một tổng đài điện thoại PBX thông thường cho các điện thoại VoIP, nếu như có một đường kết nối ra mạng PSTN(PSTN Gateway) thì nó còn có khả năng gọi đến điện thoại thường. Nó có một số ưu và nhược điểm so với tổng đài PBX điện tử: Ưu điểm: Giá thành rẻ hơn tổng đài PBX điện tử rất nhiều: phần mềm thì miễn phí, chạy trên hệ điều hành miễn phí (linux), máy tính chạy phần mềm PBX cũng không yêu cầu cao về cấu hình Do được viết bằng phần mềm nên khả năng xử lý linh hoạt hơn Dễ cấu hình hệ thống Dễ phát triển các ứng dụng mới Nhược điểm: Tốc độ xử lý chậm: tổng đài PBX điện tử xử lý bằng các mạch điện tử chuyên dụng nên tốc độ nhanh hơn. Còn trong tổng đài phần mềm thì mọi thao tác nén/giải nén, mã hóa/ giải mã, đóng/mở gói tin hoàn toàn được thực hiện bằng phần mềm, tốc độ sẽ không cao và phụ thuộc vào cấu hình của máy tính (CPU, RAM, ổ cứng,…) Không có bộ xử lý tín hiệu thoại riêng mà phụ thuộc vào sound card của máy tính. Đối với dữ liệu thời gian thực (âm thanh, hình ảnh) thì khả năng phục vụ của sound card máy tính là không đáp ứng đủ. Các công ty cung cấp hệ thống tổng đài PBX bây giờ thường đi theo hướng kết hợp giữa phần cứng và phần mềm. Các thao tác nén/giải nén, mã hóa/giải mã, xử lý dữ liệu âm thanh,... sẽ được các thiết bị phần cứng chuyên dụng đảm nhiệm Các bước thiết lập hệ thống VoIP cho doanh nghiệp Về cơ bản, các bước để thiết lập một hệ thống VoIP cho doanh nghiệp là như sau: Xây dựng mạng LAN Thiết lập hệ thống máy chủ và cài đặt phần mềm điều khiển IP-PBX Thiết lập các Gateway ra mạng PSTN Thiết lập các đầu cuối VoIP Xây dựng mạng LAN Bước này gần như là không cần phải thực hiện vì hầu hết các doanh nghiệp đều có hệ thống mạng nội bộ. Thiết lập máy chủ và cài đặt phần mềm IP-PBX Bước này là quan trọng nhất. Nếu chọn hệ thống IP-PBX phần cứng thì chỉ việc cài đặt chương trình điều khiển cho tổng đài IP-PBX. Nếu chọn hệ thống IP-PBX dựa trên phần mềm (softPBX) thì cần phải cài đặt softPBX lên trên máy chủ. Máy chủ này có thể dùng riêng làm tổng đài PBX hoặc cũng có thể chia sẻ cho các dịch vụ khác trong doanh nghiệp. Việc lựa chọn hệ thống IP-PBX nào là phụ thuộc vào nhu cầu và khả năng kinh tế của doanh nghiệp. Các sản phầm IP-PBX phần cứng thường có giá thành cao nhưng khả năng đáp ứng lại tốt. Ngoài ra các tài liệu trợ giúp đi kèm và sự hỗ trợ từ nhà cung cấp cũng tốt. Một giải pháp tiết kiệm chi phí hơn là sử dụng các phần mềm PBX mã nguồn mở (như SER, Asterisk) Thiết lập Gateway ra mạng PSTN Cần phải mua thiết bị chuyên dụng để kết nối tới mạng PSTN. Gateway nối với PSTN thường là card PCI với phần mềm điều khiển card chuyên dụng, như card Digium dùng trong phần mềm Asterisk. Thiết lập các đầu cuối VoIP Các đầu cuối VoIP là các thiết bị, phần mềm dùng để gọi điện thoại, có một số loại đã liệt kê ra ở trên: softPhone, IP-Phone, điện thoại analog thường (cắm qua thiết bị ATA), USB-Phone,... Việc cấu hình cho các thiết bị cuối này cũng không có nhiều khó khăn. Giới thiệu hệ thống tổng đài IS-COM Giới thiệu tổng quan hệ thống IS-COM Tổng đài IS-COM là một đề tài nghiên cứu của Khoa Điện Tử Viễn Thông – Đại học Bách Khoa Hà Nội hợp tác với viện FOKUS của Đức. Phần trung tâm của hệ thống được phát triển dựa trên các sản phẩm mã nguồn mở của FOKUS. Đó là SER, SEMS và SERWEB. Tổng đài IS-COM thực hiện chức năng tổng đài điện thoại nội bộ (PBX), cho phép các máy điện thoại nhánh (extension) thực hiện cuộc gọi với nhau và kết nối với các hệ thống điện thoại khác bao gồm cả mạng điện thoại analog thông thường (PSTN) và VoIP. IS-COM có đầy đủ tính năng của tổng đài PBX thương mại: phân luồng cuộc gọi, thư thoại, hội đàm, tương tác (menu thoại)... IS-COM hỗ trợ các giao thức VoIP như SIP và H.323, hoạt động như trạm kết nối giữa các điện thoại IP và mạng PSTN. Những ứng dụng chính của IS-COM Điện thoại: PC-to-PC :gọi điện thoại từ máy tính đến máy tính PC-to-Phone: gọi điện thoại từ máy tính đến máy điện thoại Click-to-Dial: gọi điện thoại từ web. IVR: các ứng dụng thoại trả lời tự động Hộp thư thoại Hội thoại Thông báo SMS: gửi tin nhắn Các dịch vụ truyền hình: VoD (Video on Demand), Live TV Kiến trúc hệ thống IS-COM Hình 3 Tổng quan hệ thống IS-COM IS-COM : Môi trường truyền thông tích hợp dựa trên giao thức SIP IS-CC: Module điều khiển cuộc gọi (báo hiệu) IS-ME: module xử lý media (các dịch vụ gia tăng) IS-C: module phía người dùng, là thiết bị dùng để giao tiếp với hệ thống IS-WEB: quản lý hệ thống IS-COM qua giao diện web IS-CC (IS-COM Call Control Module) Là hệ thống SER Thực hiện chức năng điều khiển cuộc gọi và báo hiệu Bao gồm các modules: Registrar server, Location server, Proxy server và Redirect server Chuyển bản tin cho IS-ME xử lý đối với các yêu cầu về Media IS-ME (IS-COM Media Processing Modules) Là hệ thống SEMS Xử lý và quản lý các phiên làm việc đa phương tiện Giao tiếp với IS-CC thông qua kênh FIFO và/hoặc UNIX Socket Cung cấp các dịch vụ: Hộp thư thoại (voicemail): ghi âm các bản tin thoại và gửi đi như email Hội thoại (conferencing): cho phép nhiều người tham gia vào các cuộc hội thoại đa phương tiện Dịch vụ thông báo: phát các bản tin/nhạc thông báo Dịch vụ mailbox: lưu các thư thoại vào máy chủ IMAP, người dùng sau đó có thể truy nhập vào và kiểm tra như thư điện tử POP Các dịch vụ truyền hình trực tuyến: dựa trên giao thức RTSP Cung cấp giao diện lập trình dịch vụ giá trị gia tăng IS-API: cung cấp bộ thư viện API cho phép phát triển thêm các dịch vụ, ứng dụng mới cho hệ thống. cho phép các nhà khai thác mạng tự định nghĩa và thực hiện các dịch vụ mới. Máy chủ xử lý Media bao gồm hai lớp: lớp điều khiển chứa các logic ứng dụng và xử lý thông tin báo hiệu và lớp media xử lý các nội dung thông tin (thông qua RTP) IS-ME chứa một phần chính gọn nhẹ gọi là phần nhân và các chức năng ứng dụng khác dưới dạng plugins. Chứa phần IS-IVR phục vụ các ứng dụng trả lời tự động Chứa phần IS-SQL chứa cơ sở dữ liệu của hệ thống phục vụ nhận thực, tính cước và quản trị hệ thống IS-WEB (IS-COM Management & Provisioning) Là hệ thống SER-Web Cung cấp giao diện quản trị các thành phần hệ thống Cung cấp giao diện cấu hình hệ thống: định nghĩa thuê, thay đổi dịch vụ, vv... Cung cấp giao diện gửi tin nhắn Tính cước Cung cấp giao diện và định nghĩa các dịch vụ IS-C (IS-COM Multimedia ClientModule) Là phần mềm gọi điện thoại (soft-phone) như: X-Lite, Eye-Beam, KphoneSI, 3CX,… User Agent Client thực hiện các chức năng : phone , gửi Instant Message, Conferencing , Video Conferencing,… Một số hệ thống IP-PBX khác Hiện tại có rất nhiều nhà cung cấp hệ thống tổng đài IP-PBX. Có thể tạm chia ra thành 2 loại: Các công ty cung cấp tổng đài IP-PBX Các công ty này có thể cung cấp cả hệ thống tổng đài IP-PBX trọn gói hoặc chỉ đơn giản là một thiết bị phần cứng cắm vào máy tính kèm với các phầm mềm điều khiển đi kèm. Hệ thống IP-PBX này có thể chạy trên nền Windows hoặc Linux. Điển hình là một số công ty sau: 3Com, Alcatel, Avaya, Cisco, Mitel, Nortel, Siemens, ShoreTel, Inter-Tel, Sphere, Toshiba, Zultys Technologies và nhiều nhà phân phối khác. Các công ty như Vovida và BeVocal còn cung cấp dịch vụ VoIP online, bạn có thể thuê sử dụng dịch vụ này cho công ty của bạn mà không cần phải thiết lập một hệ thống IP-PBX riêng. Đặc điểm dễ nhận thấy là để sử dụng các sản phẩm và dịch này cần phải chi một khoản tiền khá lớn. Tuy nhiên khả năng hỗ trợ từ nhà cung cấp là tốt. Nếu như khả năng tài chính cho phép thì có thể dùng các sản phẩm này. Các dự án mã nguồn mở xây dựng hệ thống tổng đài IP-PBX Một số dự án mã nguồn mở: Dự án Vocal của Vovida ( ) Dự án Asterisk ( ) Dự án của viện FOKUS: SER – là hệ thống mà đề tài đang nghiên cứu ( ) Dự án của SUN: JAIN (https://jain-sip.dev.java.net/ ) Trong các dự án này thì nổi lên nhất là 2 dự án SER và Asterisk. Asterisk thích hợp cho các công ty vừa và nhỏ, khả năng tùy biến rất cao, dễ sử dụng, các ứng dụng phát triển trên Asterisk cũng rất đa dạng. Asterisk cũng có một card PCI(kết hợp với hãng Digium) chuyên dụng dùng để kết nối với PSTN giá thành cũng không cao. Trong khi đó thì SER đúng như tên gọi của nó – SIP Express Router – nhiệm vụ chủ yếu là xử lý các bản tin SIP, định tuyến và thiết lập cuộc gọi. Khả năng xử lý hàng ngàn cuộc gọi cùng lúc (cao hơn nhiều so với Asterisk). SER xây dựng theo chuẩn SIP, nó có thể tích hợp vào các hệ thống VoIP có sẵn. Để tích hợp các dịch vụ gia tăng vào cho SER thì có hệ thống SEMS – SIP Express Media Server – cũng là một sản phẩm mã nguồn mở của FOKUS. Tuy nhiên có một hạn chế đó là việc phát triển các dịch vụ trên hệ thống SER-SEMS là khá khó khăn do SER-SEMS vẫn đang trong quá trình phát triển, thay đổi, tài liệu hướng dẫn không nhiều. Trong khi đó thì Asterisk lại có một cộng đồng người sử dụng rất lớn, khả năng hỗ trợ là cao hơn SER. Do vậy hiện tại người ta thường kết hợp giữa SER và Asterisk để tạo ra được hệ thống IP-PBX vừa có khả năng đáp ứng cao, vừa dễ xây dựng các dịch vụ gia tăng. Mặt khác cũng tận dụng được card digium của Asterisk để giao tiếp với hệ thống PSTN. Giới thiệu giao thức SIP Trong chương này: Các giao thức sử dụng trong mạng VoIP Giới thiệu về giao thức SIP So sánh giao thức SIP và giao thức H.323 Các giao thức sử dụng trong mạng VoIP Công nghệ VoIP là công nghệ truyền tín hiệu thoại trên nền IP, chính vì thế mà hệ thống VoIP phải được hỗ trợ các giao thức được sử dụng trên mạng Internet và phải có kiến trúc thích ứng với kiến trúc mạng IP. Công nghệ VoIP sử dụng các giao thức mạng như : Giao thức IP ( Internet Protocol ) Địa chỉ IP và giao thức phân giải địa chỉ ARP (Address Resolution Protocol ) Giao thức điều khiển truyền TCP (Transport Control Protocol) Giao thức UDP ( User Date Protocol) Giao thức điều khiển Gateway MGCP (Media Gateway Control Protocol) Giao thức H.323 Giao thức điều khiển thiết lập cuộc gọi SIP Trong phạm vi nghiên cứu của đồ án, ở đây chỉ trình bày về giao thức SIP và khái niệm về một số giao thức liên quan đến giao thức SIP Giao thức SIP SIP (Session Initiation Protocol-Giao thức khởi tạo phiên) là một giao thức điều khiển lớp ứng dụng mà có thể thiết lập, chuyển đổi và kết thúc các phiên đa phương tiện như các cuộc điện thoại internet. SIP cũng có thể mời các thành phần tham gia tới các phiên đang tồn tại, như các cuộc hội thảo multicast. SIP hỗ trợ trong suốt việc ánh xạ tên và tái định hướng các dịch vụ, mà hỗ trợ tính di động của con người. SIP được phát triển bởi IETF, được coi là 1 phần của cấu trúc hội thảo đa phương tiện internet, được thiết kế để tương thích với các giao thức khác như TCP, UDP, IP, DNS…Chi tiết về giao thức SIP có trong tài liệu RFC3261 Chức năng của SIP SIP hỗ trợ 5 khía cạnh của việc thiết lập và kết thúc các kết nối đa phương tiện: User location: Xác định hệ thống cuối để sử dụng cho việc truyền dẫn User availability: Xác định sự tự nguyện của bên được gọi để gắn kết vào truyền dẫn User capabilities: Xác định các phương tiện và các tham biến phương tiện được sử dụng Session setup: “ringing” sự thiết lập các tham biến phiên tại cả bên gọi và bên được gọi Session management: bao gồm việc chuyển giao và kết thúc các phiên, chuyển đổi các tham biến phiên và sự trợ giúp của các dịch vụ. SIP không cung cấp dịch vụ. Đúng hơn là, SIP cung cấp các nguyên lý cơ bản để triển khai các dịch vụ khác nhau. Hai giao thức thường được dùng kèm với giao thức SIP là RTP(Real-time Transport Protocol) và SDP(Session Description Protocol). RTP là một giao thức của IEFT được dùng để truyền dữ liệu đa phương tiện qua mạng Internet. Còn SDP là một đoạn văn bản (thường nằm trong phần thân của bản tin SIP) dùng để mô tả khả năng của các điểm cuối internet. Việc này là rất quan trọng, ví dụ có 2 thiêt bị cuối cần liên lạc với nhau (một cuộc đàm thoại qua mạng Internet), thì 2 thiết bị này cần phải thống nhất được chuẩn nào sẽ được dùng để nén dữ liệu âm thanh (codec), khi đó thì 2 bên cần phải biết được bên còn lại hỗ trợ những định dạng nào mà truyền cho hợp lý để bên kia còn giải mã. SIP sử dụng các giao thức báo hiệu đã có của IETF: Định dạng bản tin giống HTTP 1.1 (Hypertext Transport Protocol) Thoả thuận môi trường truyền bằng SDP (Session Description Protocol) Môi trường truyền dùng RTP/RTCP Giải quyết tên và sự di động bằng DHCP và DNS. SIP sử dụng kiến trúc Internet giống như WWW, các client sử dụng các dịch vụ thông qua mạng. Các dịch vụ mới được thêm vào thông qua các chức năng của SIP hay server ứng dụng. Các đặc tính của SIP SIP được thiết kế phục vụ cho mục đích lâu dài của điện thoại Internet và hội nghị đa phương tiện. Rất nhiều sự quan tâm được tập trung vào việc phát triển SIP để đảm bảo giao thức này trở thành cơ sở cho thông tin trên Internet. Dưới đây là một số đặc điểm nổi bật tổng quát của SIP: Simplicity (đơn giản): không giống như các giao thức khác cho Internet và thoại, SIP sử dụng các bản tin dạng text nên có thể dễ dàng đọc được. Thêm vào đó các giao thức vốn có vẫn được sử dụng ví dụ như HTTP 1.1. Điều này làm cho giao thức này trở nên rất dễ khắc phục sự cố và tích hợp với các ứng dụng khác. Efficiency (Hiệu quả): giao thức ở phía trên SIP có ảnh hưởng nhỏ đến hiệu suất truyền thông, bởi vì các chức năng báo hiệu sử dụng một phần nhỏ băng thông so với các luồng truyền thông. Scalability (Khả năng đáp ứng cao): Server không cần duy trì các thông tin trạng thái về các phiên truyền thông SIP trên UDP. Do đó 1 server có thể điều khiển 1 cách hiệu quả nhiều client. Vòng lặp bản tin định tuyến có thể sử dụng tài nguyên mạng rộng khắp , trở nên phổ biến khi mạng được mở rộng. SIP sẽ phát hiện và ngăn chặn vòng lặp bản tin định tuyến, điều này cải thiện hoạt dộng của mạng lớn. Flexibility (mềm dẻo): Do SIP sử dụng SDP để thoả thuận việc codec, bất kỳ codec nào có thể được sử dụng đều được đăng ký với IANA. So sánh điều này với H.323, ta thấy được sự khác biệt. Bởi vì trong H.323 các chuẩn codec được định nghĩa rõ ràng và ít thay đổi, còn các chuẩn khác cùng chia sẻ trường dành cho chuẩn không được sử dụng thường xuyên. Support for Mobility (Hỗ trợ sự di động): Mô hình SIP cho phép người sử dụng có thể di chuyển từ thiết bị đầu cuối này sang thiết bị đầu cuối khác mà không nhất thiết phải cùng loại. Giao thức này đưa ra sự hỗ trợ rất mạnh cho việc uỷ nhiệm, tái định hướng, do đó người sử dụng có thể tuỳ ý lựa chọn việc che dấu hay không vị trí thực tế của họ. Ví dụ một người có thể sử dụng một soft-phone trong máy tính để đăng nhập vào tài khoản SIP của mình, sau đó có thể lại dùng 1 thiết bị di động nào đó hỗ trợ SIP để đăng nhập với cùng tài khoản đó. Như vậy là người dùng đăng nhập với 2 thiết bị hoàn toàn khác nhau, ở những thời điểm khác nhau, giao thức SIP có thể nhận ra được là người dùng hiện thời đang đăng nhập ở thiết bị nào để xử lý các bản tin SIP được chính xác. User progammabiity (khả năng lập trình của người sử dụng): Ngoài việc hỗ trợ cho điện thoại truyền thống, SIP có thể khai thác tốt ngôn ngữ xử lý cuộc gọi (CPL). Điều này cho phép người sử dụng đưa ra những quy luật phức tạp cho server mà không cần quan tâm xem ai liên lạc với họ, vị trí, thời điểm, và loại phương tiện truyền dẫn. Extensibility (Khả năng mở rộng): Người thiết kế giao thức không thể đoán trước được tất cả các yêu cầu cho giao thức. Do vậy điều này cho phép việc cải tiến và mở rộng giao thức trong khi vẫn đảm bảo hoạt động nhịp nhàng với phiên bản cũ. Thêm vào đó, các tuỳ chọn không được sử dụng sẽ bị loại bỏ để giao thức không bị cồng kềnh. So sánh giao thức SIP với H.323 Chuẩn H.323 là một công nghệ nền tảng cho việc truyền thông tin dữ liệu và thông tin thời gian thực như audio, video thông qua mạng chuyển mạch gói. Nó chỉ ra các thành phần, giao thức, và thủ tục truyền tin đa phương tiện trong mạng chuyển mạch gói. Mạng chuyển mạch gói bao gồm các mạng LAN dựa trên nền IP (mạng Internet cũng là mạng chuyển mạch gói dựa trên nền giao thức IP), các mạng thương mại, các mạng MAN, và các mạng WAN. H.323 có thể được ứng dụng trong nhiều kỹ thuật – âm thanh(IP telephony); âm thành và hình ảnh (Video telephony); âm thanh và dữ liệu; và cả 3 loại: âm thanh, hình ảnh, dữ liệu. H.323 cũng còn được ứng dụng vào việc truyền thông đa phương tiện đa điểm (multipoint-multimedia communications). H.323 có khả năng cung cấp rất nhiều dịch vụ, và do đó, nó có thể được đưa vào trong hàng loạt các lĩnh vực rộng lớn như: các ứng dụng người dùng, thương mại và giải trí. SIP và H.323 được phát triển cho những mục đích khác nhau và với những yêu cầu cũng khác nhau. H.323 được phát triển bởi ITU. Việc thiết kế và thực hiện H.323 phản ánh nền tảng cũng như sự kế thừa từ mạng PSTN, tận dụng các thành phần mã hóa nhị phân và tái sử dụng của báo hiệu ISDN. Mặt khác, SIP được phát triển bởi IETF dựa trên nền Internet, được thiết kế để có thể dễ dàng được mở rộng trong mạng Internet và làm việc theo phương thức interdomain, tận dụng toàn bộ lợi ích cũng như tính năng của mạng Internet. Trong khi H.323 được phát triển trong các ứng dụng ban đầu của VoIP và IP video conferencing, SIP với kiến trúc Internet của nó lại đang không ngừng phát triển và nổi lên trở thành chuẩn báo hiệu tương lai cho truyền thông IP - hay cũng thường được gọi là IP telephony. Các loại bản tin SIP Cấu trúc một bản tin SIP Địa chỉ SIP Các địa chỉ SIP được sử dụng để xác định một người dùng hay một tài nguyên trong một domain mạng. Địa chỉ SIP thông thường được gọi là SIP URI. SIP URI có định dạng cũng tương tự như địa chỉ e-mail mà chúng ta hay sử dụng, cấu trúc địa chỉ như sau: sip:user@domain:port sip:user@host:port Trường user xác định tên của một người dùng bằng tên, ví dụ như john.doe, hay bằng số điện thoại, ví dụ như 4081234567, tiếp sau là nội dung của một domain hay host. Trường port có thể có hoặc không (port mặc định nếu ko chỉ ra trường này trong SIP URI sẽ là 5060) Ví dụ địa chỉ SIP: sip:john.doe@company.com sip:4081234567@proxy1.company.com Một định dạng SIP URI khác được gọi là secure SIP URI (hay SIPS URI). Cấu trúc địa chỉ SIP ứng với định dạng này như sau: sips:user@domain:port sips:user@host:port Port mặc định của SIPS URI là 5061. Cấu trúc của một bản tin SIP Bản tin SIP có thể được phân chia thành hai loại là SIP Request và SIP Response. Chi tiết về các bản tin SIP Request và SIP Response sẽ được trình bày ở phần sau. Bản tin SIP bao gồm các thành phần sau: Một dòng bắt đầu: Dòng bắt đầu của một bản tin SIP Request được gọi là dòng Yêu cầu (Request-Line). Dòng bắt đầu của một bản tin SIP Response được gọi là dòng Trạng thái (Status-Line). Request-Line cho chỉ ra phương thức SIP, Request-URI, và version của SIP. Status-Line chỉ ra version của SIP, mã SIP response (gồm 3 con số), và một cụm từ (không bắt buộc) mô tả mã SIP response đó. Ví dụ: Request-Line: INVITE sip:bob@proxy.company.com SIP/2.0 Status-Line (Response-Line): SIP/2.0 200 OK Một hoặc nhiều các trường header: Dưới đây sẽ là mô tả của các trường header quan trọng. SIP HEADER Mô tả Via Cho biết đường dẫn mà request cần phải lấy và chỉ ra nơi mà response cần được gửi đến. From Chỉ ra điểm nhận dạng nơi bắt đầu của một bản tin SIP Request. Header From bao gồm một URI SIP (hoặc URI SIP) và một phần tên hiển thị (không bắt buộc). To Chỉ ra phía nhận mong muốn của một bản tin SIP request. Tuy nhiên không phải lúc nào SIP request cũng có thể được gửi đến phía nhận mong muốn bởi vì có thể xảy ra trường hợp định hướng lại (redirection) hay chuyển tiếp (forwarding). Trường To cũng bao gồm một SIP URI (hay SIPS URI) và một phần tên hiển thị không bắt buộc. Call-ID Cho biết một chuỗi các bản tin SIP. Call-ID phải là duy nhất cho tất cả các bản tin SIP request và response được gửi bởi UA trong một dialog. CSeq Bao gồm một giá trị nguyên và tên của phương thức. Header này dùng để nhận biết, sắp đặt các bản tin SIP request trong một dialog. Nó cũng được dùng để phân biệt giữa một bản tin đã được truyền lại với một bản tin mới. Contact Chỉ ra cho SIP URI (hay SIPS URI) nơi UA muốn nhận một bản tin SIP request mới. Content-Type Chỉ ra kiểu của body của bản tin gắn liền với một bản tin SIP request hay response. Do vậy, header này phải xuất hiện khi bản tin SIP có phần body. Content-Length Chỉ ra kích thước của một body của bản tin (theo hệ thập phân) trong một bản tin SIP. Bảng 2.4.1.1. Cấu trúc bản tin SIP Một dòng trống cho biết kết thúc các trường header. Phần body của bản tin có thể có hoặc không. Ví dụ: Cấu trúc của một bản tin SIP Request INVITE sip:bob@proxy.company.com SIP/2.0 Request Line Via: SIP/2.0/UDP ph1.company.com:5060;branch=z9hG4bK83749.1 From: Alice ;tag=1234567 To: Bob Call-ID: 12345601@ph1.company.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... Các header của bản tin SIP Dòng trắng giữa các trường header của SIP và phần Body v=0 o=alice 2890844526 28908445456 IN IP4 172.18.193.102 s=Session SDP c=IN IP4 172.18.193.102 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Phần SDP body trong bản tin SIP Bảng 2.4.1.2.Cấu trúc một bản tin SIP Requeset Các bản tin SIP Request Các phương thức INVITE, REGISTER, BYE, ACK, CANCEL, và OPTIONS là sáu phương thức gốc của trong SIP (được mô tả trong RFC 3261). Các phương thức như REFER, SUBSCRIBE, NOTIFY, MESSAGE, UPDATE, INFO, và PRACK được mô tả trong các RFC khác. Cần lưu ý là một Proxy sẽ không cần phải hiểu một phương thức request để có thể chuyển tiếp request. Proxy sẽ xử lý một phương thức chưa được biết đến như nó là phương thức OPTIONS. Nó sẽ chuyển tiếp request đến đích nếu nó có thể. Điều này cho phép những chức năng và phương thức mới mà có ích đối với các UA được đưa vào mà không yêu cầu sự hỗ trợ từ các Proxy nằm trung gian. Một UA khi nhận một phương thức nó không hỗ trợ sẽ trả về response 501 Not Implemented. Các bản tin SIP Response SIP Response là một bản tin được phát đi bởi một UAS hoặc một SIP server để phúc đáp lại một request được phát đi bởi một UAC. Response có thể bao gồm những trường header phụ với những thông tin được yêu cầu bởi UAC. Hoặc, nó có thể chỉ là một xác nhận đơn giản để ngăn cản việc truyền lại request bởi các UAC. Các responses là giống với các request ngoại trừ dòng đầu tiên. Dòng đầu tiên của response mang theo version của giao thức (SIP/2.0), mã reply (reply code)và cụm từ reason. Reply code là một số nguyên từ 100 đến 699 và để phân ra các loại response. Có 6 lớp response. 1xx là các response tạm thời. Một response tạm thời là một response mà cho bên nhận biết rằng cái request kết hợp đó đã được nhận nhưng kết quả của quá trình là chưa biết được. Các response tạm thời chỉ được khi mà quá trình xử lý không kết thúc ngay lập tức. Người gửi phải dừng việc truyền lại request trong lúc nhận các response tạm thời. Một cách điển hình các proxy server gửi các response với mã là 100 khi chúng bắt đầu quá trình xử lý một lời mời INVITE và các user agent gửi response với mã 180 (ringing) tức là bên điện thoại được nhận đang rung chuông. Các response 2xx là các response cuối cùng mang tính chất xác thực. Một response cuối cùng là một response sau chót mà người tạo request sẽ nhận được. Do đó các response cuối cùng sẽ biểu diễn kết quả của quá trình xử lý của request liên đới. Các response cuối cùng cũng kết thúc phiên giao dịch. Các response với mã từ 200-299 là các response dương mà chúng có ý nghĩa là các request này được xử lý thành công và được chấp nhận. Ví dụ một response là 200 OK được gửi đi khi một user chấp nhận lời mời tạo thành một phiên giao dịch. Một UAC (user agent client) có thể nhận vài thông tin 200 thành một request INVITE đơn. Điều này là do một proxy chia nhánh có thể chia nhánh request đó bởi vậy nó sẽ tới được vài UAS và mỗi UAS sẽ chấp nhận lời mời tương ứng. Trong trường hợp này mỗi response được phân biệt bởi tham biến tag trong trường header To. Mỗi một response sẽ minh hoạ một cuộc thoại riêng biệt cùng với phần dạng cuộc thoại rõ ràng. Các response 3xx được sử dụng để đề địa chỉ mới của người gọi. Một redirection response giữ thông tin về vị trí mới của user hay một dịch vụ khác mà người gọi phải sử dụng để nhằm thực hiện được cuộc gọi. Các response thường được gửi bởi các proxy server. Khi mà một proxy nhận một request và không muốn hoặc không thể xử lý nó với bất kỳ lý do nào, nó sẽ gửi một respons._.iện thực trên C. Python cũng được sử dụng để lập trình Web. Nó có thể được sử dụng như là một ngôn ngữ kịch bản. Python được thiết kế để có thể nhúng và phục vụ như là một ngôn ngữ kịch bản để tuỳ biến và mở rộng các ứng dụng lớn hơn. Được tích hợp sẵn nhiều công cụ và có một thư viện chuẩn phong phú. Nó hỗ trợ các định dạng email, dữ liệu Internet, HTML, XML và các ngôn ngữ đánh dấu khác. Python cũng ứng dụng tất cả các giao thức Internet thông dụng như HTTP, FTP,… Python cung cấp giao tiếp đến hầu hết cơ sở dữ liệu, có khả năng xử lí văn bản, tài liệu hiệu quả, và có thể làm việc tốt với các công nghệ Web khác. Python cũng có thể được sử dụng để phát triển các ứng dụng Desktop. Người dùng có thể dùng wxPython, PyQt, PyGtk để phát triển các ứng dụng giao diện đồ họa (GUI) chất lượng cao. Đa biến hóa: có nghĩa là, thay vì ép buộc mọi người phải sử dụng duy nhất một phương pháp lập trình, Python lại cho phép sử dụng nhiều phương pháp lập trình khác nhau: hướng đối tượng, có cấu trúc, chức năng, hoặc chỉ hướng đến một khía cạnh. Python kiểu kiểu động và sử dụng bộ thu gom rác để quản lí bộ nhớ. Một đặc điểm quan trọng nữa của Python là giải pháp tên động, kết nối tên biến và tên phương thức lại với nhau trong suốt quá trình thực thi của chương trình. Cú pháp trong Python Toán tử + - * / // (chia làm tròn) % (phần dư) ** (lũy thừa) ~ (not) & (and) | (or) ^ (xor) > (right shift) == (bằng) = != (khác) Các kiểu dữ liệu Kiểu số 1234585396326 (số nguyên dài vô hạn) -86.12 7.84E-04 2j 3 + 8j (số phức) Kiểu chuỗi (string) "Hello" "It's me" '"OK"-he replied' Kiểu tuple (1, 2.0, 3) (1,) ("Hello",1,()) Kiểu list [4.8, -6] ['a','b'] Kiểu dictionary {"Vietnam":"Hanoi", "Netherlands":"Amsterdam", "France":"Paris"} Chú thích # dòng chú thích Lệnh gán tên biến = biểu thức x = 23.8 y = -x ** 2 z1 = z2 = x + y loiChao = "Hello!" i += 1 # tăng biến i thêm 1 đơn vị In giá trị print biểu thức print (7 + 8) / 2.0 print (2 + 3j) * (4 - 6j) Nội suy chuỗi (string interpolation) print "Hello %s" %("world!") print "i = %d" %i print "a = %.2f and b = %.3f" %(a,b) Cấu trúc rẽ nhánh Dạng 1: if biểu_thức_đúng: # lệnh ... Dạng 2: if biểu_thức_đúng: # lệnh ... else: # lệnh ... Dạng 3: if biểu_thức_đúng: # lệnh ... elif: # lệnh ... else: # lệnh ... Cấu trúc lặp while biểu_thức_đúng: # lệnh ... for phần_tử in dãy: # lệnh ... L = ["Ha Noi", "Hai Phong", "TP Ho Chi Minh"] for thanhPho in L: print thanhPho for i in range(10): print i Hàm def tên_hàm (tham_biến_1, tham_biến_2, ...) # lệnh ... return giá_trị_hàm def binhPhuong(x): return x*x Hàm với tham số mặc định: def luyThua(x, n=2): """Lũy thừa với số mũ mặc định là 2""" return x**n print luyThua(3) # 9 print luyThua(2,3) # 8 Lớp class ''Tên_Lớp_1'': # ... class ''Tên_Lớp_2''(''Tên_Lớp_1''): """Lớp 2 kế thừa lớp 1""" x = 3 # biến thành viên của lớp # def ''phương_thức''(self,''tham_biến''): # ... # khởi tạo a = ''Tên_Lớp_2''() print a.x print a.''phương_thức''(m) # m là giá trị gán cho tham biến Xử lí ngoại lệ (exception) try: "câu_lệnh" except "Loại_Lỗi": "thông báo lỗi" Kết nối cơ sở dữ liệu MySQL với Python Để kết nối với hệ quản trị cơ sở dữ liệu MySQL, có thể sử dụng thư viện mã nguồn mở mysql-python (trang chủ : ). Ví dụ đoạn script sử dụng thư viện mysql-python: import MySQLdb #import thư viện mysql-python conn = MySQLdb.connect (host = "localhost", user = "root", passwd = "root", db = "diemThi") sql = “câu lệnh truy vấn sql” cursor = conn.execute(sql) result = cursor.fetchall() Ngoại lệ: MySQLdb.Error khi xảy ra khi lỗi kết nối cơ sở dữ liệu MySQLdb.OperationalError: xảy ra khi câu truy vấn sai Module IVR Module ivr được nằm trong thư mục /usr/local/lib/sems/plug-in, có tên là ivr.so Cấu hình ivr Cấu hình IVR được đặt trong file ivr.conf, nằm trong thư mục /usr/local/etc/sems/etc. File này chỉ chứa duy nhất một thông số là script_path: nó chứa đường dẫn đến nơi chứa các script python. Ví dụ một file cấu hình ivr.conf: script_path=/usr/local/lib/sems/ivr/ Chú ý: các script python được sems tự động nạp vào khi khởi động cũng có thể được dùng như mọi plug-in khác trong sems, tức là các script khác, hoặc các plug-in khác có thể dùng script python đó. Để đảm bảo tính bảo mật, chỉ có các script được nạp vào lúc khởi động mới có thể được thực thi. Các cách gọi script IVR Dựa vào tên của người dùng: Trong file ser.cfg, ta thêm dòng sau: t_write_unix("/tmp/sems_sock","ivr") Trong trường hợp này, script cần thực hiện sẽ được gọi thông qua tên người dùng được xác định trên URI yêu cầu Ví dụ như: R-URI 123@192.168.1.14 starts /123.py Dựa vào tên tham số truyền vào cho plug-in đó: Khi muốn chạy một script nào đó theo cách này, giả sử như muốn chạy script xemDiemThi.py nằm trong thư mục thì ta sẽ thêm dòng sau vào trong file ser.cfg t_write_unix("/tmp/sems_sock","xemDiemThi") Script này sẽ được gọi không phụ thuộc vào URI yêu cầu như thế nào Dựa vào thông số header “P-App-Name”: Trong file ser.cfg ta thêm dòng sau: t_write_unix("/tmp/sems_sock","sems") Trong bản tin SIP gửi đi khi muốn thực hiện script nào thì trong trường P-App-Name ta sẽ gán giá trị bằng tên của script đó. Ví dụ muốn chạy script xemDiemThi.py thì header của bản tin SIP sẽ phải chứa trường sau: P-App-Name: xemDiemThi Một số tùy chọn khi biên dịch Có một số tùy chọn khi biên dịch module IVR, nằm trong file Makefile.defs trong thư mục /app/ivr. Đó là tùy chọn về chương trình dịch PYTHON và ứng dụng TextToSpeed chương trình dịch Python: có hai tùy chọn PYTHON_VERSION: phiên bản nào của python được dùng để thực thi các script. Giá trị này có thể bằng 2.5 hoặc 2.4 hoặc 2.3. Hiện thời khuyến khích dùng chương trình dịch Python từ phiên bản 2.4 trở nên PYTHON_PREFIX: chỉ đến đường dẫn cài đặt chương trình dịch Python. Khi cài đặt thì Python sẽ được copy vào một số thư mục như lib, bin, include,... Tùy vào khi cài đặt mà Python có thể được cài đặt vào trong các thư mục đó của /, /usr hay là /usr/local. Thông thường khi cài đặt Python thì thì nó sẽ được cài đặt vào trong thư mục /usr ứng dụng TextToSpeed: ứng dụng này cho phép bạn có thể tạo các ứng dụng có khả năng chuyển nội dụng text sang thành âm thanh (đọc thư, đọc tin, ...). Mặc định trong IVR sử dụng chương trình chuyển đổi TextToSpeed là flite. TTS: để sử dụng ứng dụng này phải thiết lập tham số TTS sang thành 'y' FLITE_DIR: thư mục chứa mã nguồn của chương trình flite, khi biên dịch IVR thì nó sẽ tự động biên dịch chương trình flite. ALT_FLITE_DIR: nếu như bạn không muốn IVR dịch flite mà muốn tự mình dịch lấy thì có thể cho biết thư mục cài đặt chương trình flite Ví dụ về một file Makefile.defs: # Python version: 2.5, 2.4 or 2.3 PYTHON_VERSION = 2.4 PYTHON_PREFIX = /usr # For flite text-to-speech set TTS = y TTS = y #FLITE_DIR = /usr/src/flite-1.2-release ALT_FLITE_DIR = /usr/include/flite Làm thế nào để biết được rằng module ivr đã chạy Muốn biết module IVR có được chạy hay không thì hãy nhìn vào file log khi chạy sems (hoặc vào màn hình console nếu đặt chế độ debug cho hiện log ra màn hình). Bạn sẽ thấy được một vài mục tương tự thế này (5985) DEBUG: setScriptPath (Ivr.cpp:203): setting PYTHONPATH to: '/usr/local/li b/sems/plug-in:/usr/local/lib/sems/ivr/' (5985) DEBUG: Ivr-Python: Python-Ivr logging started (5985) DEBUG: onLoad (Ivr.cpp:427): ** IVR compile time configuration: (5985) DEBUG: onLoad (Ivr.cpp:428): ** built with PYTHON support. (5985) DEBUG: onLoad (Ivr.cpp:431): ** Text-To-Speech enabled (5985) DEBUG: onLoad (Ivr.cpp:436): ** IVR run time configuration: (5985) DEBUG: onLoad (Ivr.cpp:437): ** script path: '/usr/local/lib/ sems/ivr/' Để biết được một script nào đó có được nạp hay không thì hãy quan sát phần log ở đằng sau đoạn log này. Ví dụ: (5985) INFO: onLoad (Ivr.cpp:480): Application script registered: testPython. Như thế có nghĩa là script testPython đã được nạp. Các hàm API trong IVR Các ứng dụng IVR đều phải được định nghĩa dựa trên lớp cơ sở là IvrDialogBase. class tên_Ứng_Dụng(IvrDialogBase) Khi được gọi, hàm onSessionStart sẽ được thực thi. Lập trình script IVR theo kiểu lập trình hướng sự kiện, khi có một sự kiện nào đó sảy ra thì một hàm nào đó sẽ được gọi: Khi nhấn phím bấm: hàm onDtmf được gọi Hàm onTimer được gọi khi có thiết lập setTimer Hàm onEmptyQueue được gọi khi script chạy hết các file âm thanh. ... Tóm tắt một số hàm API của IVR: để hiểu rõ một số khái niệm về session, header, parameter,... của bản tin SIP, xin hãy xem lại phần giới thiệu về giao thức SIP. Các hàm Global def getHeader(String headers, String name): lấy thông tin từ header của bản tin SIP. headers: Header cần lấy thông tin name : tên của của trường header cần lấy thông tin. Ví dụ như muốn lấy giá trị của trường P-App-Name từ header hdrs: getHeader(hdrs, “P-App-Name”) def getSessionParam(String headers, String name): lấy tham số phiên với tên lấy từ headers. Thực chất là lấy các tham số từ trường P-Iptel-Param của header. def log(String str): sử dụng lại hàm log của sems, thực hiện việc xuất thông tin ra file log hoặc màn hình console. def createThread(Callable thread): tạo ra một thread mới, chỉ nên dùng trong mã khởi tạo module. Các hàm trong class IvrDialogBase Các hàm xử lý sự kiện (event handle) def onStart(self): được gọi khi bắt đầu một dialog SIP def onBye(self): được gọi khi một dialog SIP gửi bản tin BYE def onSessionStart(self, headers): hàm này được gọi khi bắt đầu thực thi một script python. Tham số headers được truyền cho script chứa header của bản tin SIP yêu cầu thực thi script này. def onEmptyQueue(self): được thực hiện khi không còn file audio nào được chạy. Các file audio này được cho vào queue thông qua hàm queue(IvrAudioFile). def onDtmf(self, key, duration): xử lý phím bấm, các phím từ 0 đến 9 tương ứng với giá trị key = 0 -> 9, phím '*' ứng với key = 10 và phím '#' ứng với key = 11. Duration là thời gian nhấn phím. def onTimer(self, id): được gọi sau một khoảng thời gian time nào đó kể từ khi hàm setTimer(self, id, time) được gọi. id: mã để phân biệt các timer khác nhau, mỗi một sự kiện thời gian sẽ được gán với nó 1 id. Tức là hàm setTimer sẽ được gọi nhiều lần với các id khác nhau tương ứng với các sự kiện khác nhau mà ta muốn xử lý, tương ứng với mỗi một id đấy ta sẽ xử lý trong hàm onTimer(id) cho phù hợp. def onSipReply(self, reply): được gọi khi có bản tin SIP được reply. Ví dụ như khi ta gọi hàm connectCallee() để kết nối tới một số khác, khi nhận được bản tin SIP trả lời thì hàm này sẽ được gọi. reply: nội dung bản tin SIP trả về. Các hàm điều khiển phiên (session control) def stopSession(self): kết thúc phiên và kết thúc script ivr. def bye(self): gửi bản tin BYE (hoặc bản tin CANCEL) đến User Agent(người gọi). Điều khiển Media def enqueue(self, IvrAudioFile, audio_rec): thực hiện thêm một file audio vào trong playlist của chương trình, chương trình sẽ lấy các file audio trong playlist ra để chạy theo thứ tự. Có hai giá trị của audio_rec: ivr.AUDIO_READ: mở file audio ra để đọc ivr.AUDIO_WRITE: mở file audio ra để ghi âm def flush(self): thực hiện xóa playlist, tất cả mọi file được hàm queue() thêm vào trong playlist sẽ bị loại, kể cả file đó đang được chương trình phát dở cũng sẽ bị loại (bị dừng giữa chừng) dialog: dùng để lấy thông tin về bản tin SIP request gửi từ phía người dùng, ví dụ hiển thị một số thông tin từ bản tin SIP request debug("**** domain: " + self.dialog.domain) debug("**** sip_ip: " + self.dialog.sip_ip) debug("**** sip_port: " + self.dialog.sip_port) debug("**** local_uri: " + self.dialog.local_uri) debug("**** remote_uri: " + self.dialog.remote_uri) debug("**** contact_uri: " + self.dialog.contact_uri) debug("**** callid: " + self.dialog.callid) debug("**** remote_tag: " + self.dialog.remote_tag) debug("**** local_tag: " + self.dialog.local_tag) debug("**** remote_party:" + self.dialog.remote_party) debug("**** local_party: " + self.dialog.local_party) debug("**** route: " + self.dialog.route) debug("**** next_hop: " + self.dialog.next_hop) debug("**** cseq: " + str(self.dialog.cseq)) B2BUA B2BMode: nếu như được gán giá trị 'True' thì luồng xử lý bản tin SIP sẽ được tự động chuyển qua bên phía User Agent kia. Nếu như được thiết lập True ngay từ đầu phiên thì bản tin INVITE của người gọi sẽ được chuyển trực tiếp sang cho phía người được gọi, không cần phải sử dụng hàm connectCallee() def connectCallee(self, remote_party, remote_uri): thực hiện kết nối người gọi đến một số khác (chuyển hướng cuộc gọi sang số máy khác). Nếu remote_party và remote_uri để trống(None) thì chúng ta sẽ kết nối ngay tới người được gọi khi người gọi bắt đầu gọi. def terminateOtherLeg(self): kết thúc cuộc gọi của người gọi tới người được gọi def connectAudio(self): bắt đầu một phiên audio với người gọi, gửi lại bản tin INVITE nếu như cần thiết. def disconnectAudio(self): kết thúc phiên audio. Gửi lại bản tin INVITE nếu như cần phải kết nối tới người được gọi hiện tại. Phát triển một ứng dụng IVR như thế nào? Cấu trúc thư mục Giả sử bạn muốn phát triển một ứng dụng IVR tên là testIvr chẳng hạn. Bạn tạo ra một thư mục với cấu trúc như sau: Hình 36.Cấu trúc thư mục phát triển một ứng dụng Python Thư mục chính, tên file cấu hình, tên file python chính phải đặt cùng tên với ứng dụng (testIvr). File testIvr.conf chứa các tham số cho chương trình, cấu trúc rất đơn giản, nó là tập hợp các cặp tên_trường=giá_trị, trong ứng dụng khi muốn lấy giá trị của một trường nào đó, chỉ cần gọi lệnh config[‘tên_trường’] ví dụ: welcome = /usr/local/lib/sems/audio/testIvr/welcome.wav error_connect = /usr/local/lib/sems/audio/testIvr/errorConnect.wav Thư mục testIvrLib chứa các thư viện dùng cho chương trình File Makefile chứa các hướng dẫn biên dịch, nội dung chính: NAME : tên ứng dụng VERSION : phiên bản PYTHON_VERSION : phiên bản Python chạy ứng dụng LIBDIR : thư mục thư viện Include : file này sẽ được gọi khi thực thi lệnh make NAME=testIvr VERSION=0.0.1 PYTHON_VERSION=2.4 LIBDIR=testIvrLib include ../ivr/Makefile.ivr_application Class testIvr phải thừa kế từ class IvrDialogBase, phải import các module căn bản là ivr và log. from log import * from ivr import * class testIvr(IvrDialogBase): def onSessionStart(self, hdrs): debug("bắt đầu chương trình ở hàm này") #các lệnh bắt đầu chương trình # ví dụ: hiển thị lời chào self.welcome = IvrAudioFile() self.welcome.open(config['welcome'], ivr.AUDIO_READ) self.enqueue(self.caukiendientu, None) def onDtmf(self,key,duration): debug("Khi có phím nhấn hàm này sẽ được gọi") print "Bạn vừa nhấn phím ", key print " trong khoảng ", duration Dịch và chạy Để dịch được chương trình này, bạn copy toàn bộ thư mục ivrTest vào trong thư mục apps của thư mục mã nguồn sems, ví dụ là /home/khoinm/sems-0.10.0-rc2/apps. Mở cửa sổ console ra, gõ các lệnh sau: cd /home/khoinm/sems-0.10.0-rc2/apps/ivrTest make all su root #thực hiện lệnh này trong trường hợp user hiện thời không có quyền ghi vào thư mục /usr/local make install Bạn có thể gộp 2 lệnh cuối thành: sudo make install nếu user hiện thời có quyền thực hiện lệnh sudo Trong file cấu hình cho SER-SEMS ta thêm phần cấu hình cho ứng dụng ivrTest, giả sử số gọi đến ứng dụng ivrTest là 19001570 if (uri =~ "sip: 19001570.*@"){ if (!t_write_unix("/tmp/sems_sock", "ivrTest")){ t_reply("500", "error contacting sems"); } break; } Một số ứng dụng trả lời tự động phát triển trên nền SEMS Cấu hình tổng quan cho các ứng dụng Cấu hình cho một hệ thống SER-SEMS không cần cao. Ở đây đưa ra một cấu hình chuẩn đã qua thực nghiệm: Phần cứng Chip: Intel Pentium IV, 2.66GHz Mainboard: Intel 915 GL-MX RAM: 512MB Ổ cứng: 40GB Phần mềm Hệ điều hành: Debian 4.0 SER phiên bản 0.9.6 SEMS phiên bản 0.10.0-rc2 Cài đặt Cấu hình SER-SEMS Ta sẽ cài đặt cả SER và SEMS trên cùng một máy, giả sử máy đó có IP là 192.168.1.14. Sẽ có 2 hệ thống SER được chạy. Một hệ thống xử lý các bản tin SIP nói chung (SER chính), đối với các bản tin SIP liên quan đến các dịch vụ gia tăng của hệ thống thì nó sẽ được forward sang hệ thống SER thứ hai (SER-SEMS). Hệ thống SER thứ hai đóng vai trò là một SIP Stack cho SEMS, giao tiếp với SEMS thông qua socket. Ta sẽ cấu hình SER chính lắng nghe ở cổng 5060, SER-SEMS lắng nghe ở cổng 5070, còn SEMS thì lắng nghe ở cổng 10000 Hình 37. Mô hình hệ thống Đối với người dùng trong nội mạng Đối với người dùng trong nội mạng, sử dụng softPhone hoặc IP-Phone thì có thể cấu hình dễ dàng để đăng ký một tài khoản SIP trong hệ thống. Ví dụ hướng dẫn đăng ký một tài khoản SIP cho một softPhone với user 2001 và password là 2001, softPhone sử dụng là phần mềm X-Lite của hãng Couterpath ( Hình 38. phần mềm x-lite Kích chuột phải chọn SIP Account Setting… Hình 39. Thêm SIP account mới Chọn nút Add…, điền các thông số theo hình vẽ: Display Name : điền tên tùy thích Username, Password, Authorization user name : điền 2001 Domain: điền IP của SIP Proxy Server: ở đây là 192.168.1.14 Hình 40. Điền các thông só đăng ký user SIP Chọn Apply - OK Đối với người dùng sử dụng dịch vụ qua mạng Internet Đối với người sử dụng dịch vụ qua mạng Internet thì phải đăng ký qua SIP Proxy Server qua mạng Internet, do vậy phải biết được được địa chỉ WAN của SIP Proxy Server. Nếu như đăng ký domain thì bạn có thể điền tên domain vào, hoặc nếu không bạn phải điền địa chỉ WAN của SIP Proxy Server. Hình 41. Đăng ký qua mạng Internet Đối với người dùng sử dụng dịch vụ qua mạng điện thoại công cộng PSTN Hệ thống phải có một PSTN Gateway để hỗ trợ cho người dùng qua mạng PSTN. Gateway này có thể là một card PCI cắm vào máy tính. Giải pháp kinh tế nhất là dùng card PCI của Digium, kèm theo cài đặt hệ thống tổng đài IP-PBX mã nguồn mở Asterisk. Khi đó người dùng từ mạng PSTN có thể gọi vào hệ thống thông qua một số điện thoại cố định được đăng ký trước (ví dụ 04.853.3965) và thông qua PSTN Gateway, cuộc gọi này sẽ được chuyển tới hệ thống SER-SEMS. Dịch vụ trả lời điểm tự động Hệ thống trả lời điểm tự động là một hệ thống lưu trữ điểm, cho phép người dùng gọi điện đến để tra điểm, xem điểm tổng kết,... Người dùng có thể sử dụng phần mềm gọi điện thoại (softPhone), IP Phone, hoặc nếu hệ thống có kết nối đến mạng điện thoại công cộng PSTN thì người dùng có thể dùng điện thoại thường để gọi đến được. Hình 42.Hệ thống báo điểm thi Hoạt động Khi người dùng gọi đến số dịch vụ, một bản tin INVITE được gửi đến SER chính (SER Main), SER xử lý bản tin SIP, thấy nó INVITE tới một số điện thoại trong dịch vụ, nó sẽ forward bản tin SIP này sang hệ thống SER-SEMS. Hệ thống SER-SEMS kiểm tra số dịch vụ, hệ thống sẽ kiểm tra trong kịch bản file cấu hình của hệ thống xem số được gọi đến là số nào, sau đó tương ứng với số đó, hệ thống sẽ gửi các gói tin socket để giao tiếp với SEMS, yêu cầu SEMS thực thi dịch vụ tương ứng. Các bản tin SIP vẫn được truyền qua hệ thống SER còn các gói tin media (âm thanh) thì được truyền trực tiếp giữa SEMS và máy điện thoại của người dùng bằng giao thức RTP. Đối với trường hợp gọi điện thoại qua mạng PSTN thì SEMS sẽ truyền thông qua PSTN Gateway, sau đó PSTN mới tiếp tục truyền tín hiệu thoại qua mạng PSTN đến máy điện thoại thường. Cấu trúc cơ sở dữ liệu Bảng Student: lưu trữ thông tin về sinh viên Tên cột Kiểu Chú thích StudentID Int Mã số sinh viên Name Varchar Tên sinh viên Sex Tinyint Giới tính (1: Nam, 0: Nữ) dateOfBirth Datetime Ngày sinh Homeland Varchar Quê quán State Int Trạng thái (0: đang học; 1: tốt nghiệp; 2: đình chỉ học; 3: đuổi học) Bảng 9.2.2.1. Bảng Student Bảng Subject: lưu trữ thông tin môn học Tên cột Kiểu Chú thích SubjectID Int Mã số môn học SubjectName Varchar Tên môn học SubjectIvrName Varchar Tên môn học lưu trong file .wav dùng để đọc trong hệ thống trả lời điểm numberOfCredit Int Số học trình Bảng 9.2.2.2. Bảng Subject Bảng ClassCourse: lưu trữ thông tin về lớp học Tên cột Kiểu Chú thích classCourseID Int Mã số lớp học Class Varchar Tên lớp học Course Int Khóa học (K47: 47; K48: 48) Bảng 9.2.2.3. Bảng ClassCourse Bảng ClassCourseStudent: lưu trữ thông tin sinh viên – lớp học Tên cột Kiểu Chú thích classCourseID Int Mã số lớp học StudentID Int Mã số sinh viên startDate Datetime Ngày bắt đầu vào lớp học finishDate Datetime Ngày kết thúc (chuyển lớp, tốt nghiệp, bị đình chỉ, đuổi học,...) Bảng 9.2.2.4. Bảng ClassCourseStudent Bảng ClassCourseSubject: lưu trữ thông tin các môn học trong lớp học Tên cột Kiểu Chú thích classCourseID Int Mã số lớp học SubjectID Int Mã số môn học Term Int Kỳ học (kỳ 1-> 10) Bảng 9.2.2.5. Bảng ClassCourseSubject Bảng Mark: lưu trữ điểm của sinh viên Tên cột Kiểu Chú thích markID Int Mã số điểm StudentID Int Mã số sinh viên Times Int Lần thi thứ mấy (1,2,...) markValue Float Điểm thi subjectID Int Mã môn học Bảng 9.2.2.6. Bảng Mark Menu ngữ cảnh Người dùng gọi điện đến số máy của hệ thống xem điểm. Nếu như dùng IP phone hoặc softPhone thì gọi trực tiếp đến số máy của dịch vụ (giả sử như sip:1603@iscom.org). Nếu như gọi điện từ máy điện thoại thường (cố định, di động,…) thì phải gọi thông qua một PSTN Gateway chuyển cuộc gọi này đến hệ thống. Hệ thống yêu cầu nhập vào mã số (Menu Chính) Mỗi người sẽ có một mã số xác định, mã số này dùng để xác định người dùng. Nếu nhập sai hệ thống sẽ thông báo lỗi và yêu cầu nhập lại. Hệ thống đưa ra các tùy chọn cho người dùng (Menu 1): Nhấn phím 1 để xem điểm thi Nhấn phím 2 để xem mã số các môn thi Nhấn phím 3 để kết nối tới phòng giáo vụ Nhấn phím * để trở về danh mục trước (Menu Chính) Hình 43. Menu chính hệ thống báo điểm thi Menu xem điểm thi: Nhấn phím 1 để xem điểm thi của từng môn học Nhấn phím 2 để xem điểm thi của tất cả các môn học Nhấn phím * để trở về danh mục trước (Menu 1) Hình 44. Menu xem điểm thi … Một số hình ảnh Hình 45. chạy hệ thống SER và phần mềm điện thoại X-Lite Hình 46. Chạy hệ thống SEMS Ngoài ra hệ thống còn có giao diện web để quản lý điểm. Hệ thống web là dành riêng cho quản trị. Hình 47. Trang web quản lý điểm thi Các chức năng chính của giao diện web: Quản lý lớp học Thêm mới lớp học Chỉnh sửa lớp học Quản lý sinh viên Thêm sinh viên Chỉnh sửa thông tin sinh viên Quản lý môn học Thêm môn học Chỉnh sửa môn học Quản lý điểm Thêm điểm Chỉnh sửa điểm Quản lý người dùng Thêm người dùng Chỉnh sửa người dùng Hệ thống quản lý qua web chỉ mang tính hỗ trợ và nhập dữ liệu cho hệ thống thông báo điểm thi qua điện thoại. Dịch vụ nghe nhạc theo yêu cầu Hệ thống nghe nhạc theo yêu cầu: có 2 chế độ nghe là nghe ngẫu nhiên và nghe bài hát theo mã. Sau khi nghe lời chào, người dùng có thể nhấn phím 1 để nghe bài hát theo mã, hoặc nhấn phím 2 để nghe bài hát ngẫu nhiên. Có thể lưu thông tin mã số bài hát trong cơ sở dữ liệu, hoặc đơn giản nhất là lưu trữ trong file cấu hình của chương trình. Hình 48. Nghe nhạc theo yêu cầu Kết luận và hướng phát triển Các vấn đề đã giải quyết được Việc xây dựng một hệ thống tổng đài VoIP thực tế cho doanh nghiệp vừa vả nhỏ là không khó. Lợi ích từ các dịch vụ hệ thống đem lại nhiều, giá thành thấp, nên xu hướng trong tương lai các doanh nghiệp sử dụng hệ thống VoIP là rất lớn. Đồ án này tập trung vào nghiên cứu công nghệ VoIP, nghiên cứu hệ thống phần mềm tổng đài SER – SEMS, sau đó phát triển một số ứng dụng trả lời tự động demo cho hệ thống. Tác giả đã nghiên cứu tổng quan về công nghệ VoIP, chỉ ra được những ưu điểm nổi trội của nó so với công nghệ truyền thoại cũ (chuyển mạch kênh) trong mạng PSTN. Tác giả cũng đã nghiên cứu sự phát triển của công nghệ VoIP trên thế giới và trong nước, thấy được tiềm năng ứng dụng công nghệ này vào trong các doanh nghiệp và các nhà cung cấp dịch vụ. Việc thiết lập một hệ thống VoIP thực tế là hoàn toàn có thể thực hiện được thông qua một số bước xác định. Tác giả đã nghiên cứu về giao thức SIP – một giao thức hiện thời đang là giao thức báo hiệu chuẩn trong công nghệ VoIP. Đây là một giao thức đơn giản, dễ học. Tính đơn giản thể hiện ở số loại bản tin ít, tính dễ học thể hiện ở định dạng của bản tin là văn bản thuần túy hoàn toàn. Ngoài ra khả năng mở rộng là rất cao với loại bản tin OPTIONS mở rộng, nhà phát triển có thể tự định nghĩa ra các loại bản tin mới một cách dễ dàng. Tác giả cũng đưa ra một số so sánh với giao thức H.323 – một giao thức báo hiệu trong công nghệ VoIP được dùng phổ biến trong thời kỳ đầu phát triển công nghệ VoIP. Điểm hạn chế nhất của H.323 là khả năng mở rộng kém, giao thức này cũng rất rắc rối phức tạp. Tác giả đã nghiên cứu về SER – một server xử lý các bản tin SIP. Không giống các phần mềm tổng đài khác, SER được thiết kế để chuyên làm nhiệm vụ định tuyến, thiết lập cuộc gọi, ngoài nhiệm vụ xử lý bản tin SIP ra nó không thực hiện thêm chức năng nào khác. Tại thời điểm hiện tại, SER có tốc độ xử lý bản tin SIP nhanh nhất so với các phần mềm tổng đài khác. Với một số cấu hình đơn giản, hệ thống SER có thể xử lý được hàng ngàn cuộc gọi cùng lúc. SER được thiết kế hướng module nên việc phát triển và thêm các chức năng mới cho SER là rất linh hoạt. Tác giả cũng đã nghiên cứu về SEMS. Do SER chỉ xử lý các bản tin SIP nên nó không cung cấp các giá trị gia tăng cho hệ thống. SEMS đóng vai trò là một media server chuyên cung cấp các dịch vụ cho hệ thống SER. Cũng như SER, SEMS thiết kế hướng module nên phát triển các dịch vụ gia tăng mới cho SEMS cũng không quá khó. Cuối cùng, tác giả đi vào nghiên cứu một mảng dịch vụ nhỏ trong SEMS, đó là hệ thống trả lời tự động (IVR). Tác giả đã xây dựng một số chương trình thử nghiệm như: dịch vụ thông báo điểm thi, dịch vụ nghe nhạc theo yêu cầu,…Ngôn ngữ xử dụng là Python, một ngôn ngữ kịch bản hướng đối tượng khá linh hoạt. Kết quả từ các ứng dụng thử nghiệm trên cho thấy hệ thống SER-SEMS có khả năng đưa vào ứng dụng trong thực tế rất cao. Hạn chế Công nghệ VoIP có rất nhiều vấn đề cần phải nghiên cứu, do hạn chế về mặt thời gian nên tác giả chỉ nghiên cứu ở mức tổng quan về công nghệ VoIP. Còn rất nhiều mảng công nghệ mà đề tài không nói đến như: mã hóa âm thanh, bảo mật trong VoIP, chất lượng dịch vụ thoại (QoS), … Nghiên cứu hệ thống SER và SEMS cũng chỉ dừng lại ở mức nghiên cứu cấu trúc, tổng quan hệ thống, nghiên cứu các chức năng và cấu hình cho hệ thống Hệ thống tổng đài IS-COM mà tác giả tham gia nghiên cứu mới ở giai đoạn đầu nên hệ thống chưa đưa vào sử dụng, mới chỉ áp dụng thử trong phòng thí nghiệm của khoa Điện tử viễn thông. Mặt khác, hệ thống SER-SEMS cũng đang trong quá trình phát triển, ở các phiên bản gần đây (SER 0.9.6 và SEMS 0.10.0-rc2) các chức năng của hệ thống đã được tinh lọc đi rất nhiều để nâng cao hiệu năng. Ngoài ra thư viện các hàm của hệ thống cũng thường xuyên thay đổi. Do vậy việc phát triển các ứng dụng cũng trở nên khó khăn hơn. Hệ thống tài liệu và sự trợ giúp từ cộng đồng người sử dụng cũng không được tốt nhất. Dự án phần mềm SER-SEMS chỉ có hỗ trợ mailling-list. Hướng phát triển Trong thời gian tới tác giả sẽ tiếp tục nghiên cứu về SER-SEMS, tham gia vào nghiên cứu phát triển hệ thống IS-COM nhằm hoàn thiện những thiếu sót trong đồ án. Tác giả sẽ nghiên cứu các mảng khác của VoIP. Ngoài ra nhằm tăng tính linh hoạt của hệ thống IS-COM, một hướng phát triển được rất nhiều người áp dụng đó là kết hợp giữa SER và Asterisk. Khi đó SER sẽ xử lý phần báo hiệu, thực hiện các chức năng khác như chịu tải (load balancing), còn Asterisk sẽ đóng vai trò một media server cung cấp các dịch vụ gia tăng cho hệ thống. Ngoài ra còn có thể dùng Asterisk như là một gateway kết nối ra mạng PSTN thông qua card Digium. Tài liệu tham khảo Tham khảo từ sách điện tử Alan B. Johnston,SIP - Understanding the Session Initiation Protocol,Second Edition,  Artech House - 2004 Timothy Kelly, VoIP for Dummies, Wiley Publishing, 2005 T.Wallingford, Switching to VoIP, O'Reilly, June 2005 Cisco Voice over IP, version 4.1, Cisco System, 2003 Các tài liệu (file .pdf) từ trang Serdev.pdf Sems new generation-design overview SEMSng-App tutorial SIP Tutorial Tham khảo từ các trang web mailling lisst của iptel. ._.

Các file đính kèm theo tài liệu này:

  • docDAN200.doc
Tài liệu liên quan