Công nghệ VoIP và Asterisk
Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 MỤC LỤC MỤC LỤC 1 DANH MỤC HÌNH VẼ 8 LỜI MỞ ĐẦU 10 LỜI CẢM ƠN 11 CHƯƠNG 1 12 TỔNG QUAN VỀ VOIP 12 1.1. Giới thiệu 12 1.2. Cấu trúc mạng VoIP 12 1.3. Đặc điểm dịch vụ VoIP 14 1.4. Chất lượng dịch vụ trong mạng VoIP 15 1.5. Các giao thức truyền thông thời gian thực 18 1.5.1. Giao thức RTP 18 1.5.2. Giao thức RTCP 19 CHƯƠNG 2 21 CÁC GIAO THỨC BÁO HIỆU 21 2.1. Giao thức H323 21 2.1.1. Giới thiệu 21 2.1.2. Các thành phần cơ bản của hệ thống H323 21 Terminal 22 Gateway 23 Gatekeeper 23 MCU 24 2.1.3. Tập giao thức H323 24 1 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 2.1.1. Quá trình thiết lập cuộc gọi H323 26 2.2. Giao thức khởi tạo phiên SIP 27 2.2.1. Giới thiệu 27 2.2.2. Tính năng của SIP 28 2.2.3. Các thành phần trong hệ thống SIP 28 2.2.4. Các bản tin của SIP 30 2.2.5. Quá trình thiết lập cuộc gọi 32 32 33 2.3. So sánh với H.323 35 CHƯƠNG 3 37 MẠNG THẾ HỆ MỚI NGN 37 3.1. Sự hình thành mạng NGN 37 3.2. Các đặc điểm của NGN 38 3.3. Những vấn đề mà mạng thế hệ mới cần giải quyết 38 3.4. Công nghệ chuyển mạch mềm – Softswitch 39 3.4.1. Những hạn chế của tổng đài chuyển mạch kênh 39 3.4.2. Định nghĩa chuyển mạch mềm (Softswitch) 40 3.4.3. Những lợi ích của Softswitch 41 3.5. Kiến trúc của mạng NGN 43 3.5.1. Lớp truyền tải 44 3.5.2. Lớp điều khiển và báo hiệu cuộc gọi 45 3.5.3. Lớp ứng dụng và dịch vụ 45 3.5.4. Lớp quản lý 45 3.6. Các phần tử trong mạng NGN 46 3.7. Các dịch vụ chính trong mạng NGN 47 2 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 CHƯƠNG 4 47 TÌM HIỂU ASTERISK 47 4.1. Giới thiệu 47 4.2. Kiến trúc Asterisk 49 4.3. Một số tính năng cơ bản 51 4.4. Các ngữ cảnh ứng dụng 53 4.5. Tổ chức thư mục của Asterisk 57 /etc/asterisk/ 57 /usr/lib/asterisk/modules/ 57 /var/lib/asterisk 57 Các thư mục con của thư mục /var/lib/asterisk/ bao gồm: 57 /var/spool/asterisk/ 58 /var/run/ 59 /var/log/asterisk/ 59 /var/log/asterisk/cdr-csv 59 4.6. Một số lệnh thao tác trên hệ thống asterisk 60 #/etc/init.d/asterisk (start|stop) 60 #CLI>reload 60 #CLI> sip show users 60 4.7. Cách thức cấu hình trên các tập tin cơ bản 61 Tất cả các file cấu hình cho hệ thống Asterisk đều nằm tại thư mục etc/asterisk ngoại trừ file zaptel.conf cấu hình cho phần cứng TDM nằm tại thư mục /etc. Cách thức cấu hình giống như tập tin .ini của Window. Các nội dung sau dấu chấm phảy “;”là nội dung chú thích trong file cấu hình. Tất cả các khoảng trắng trong file cấu hình đều được bỏ qua và không có ý nghĩa.Cú pháp thực hiện giống nhau 61 4.8. Cách thức hoạt động của tập tin cấu hình 61 4.9. Giới thiệu dialplan 63 3 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Một ví dụ cụ thể như sau: 64 exten => 7325010,2,Voicemail(u7325010) 64 exten => Tương ứng với mỗi ứng dụng thực hiện 64 7325010 là con số nhận được khi thuê bao chủ gọi quay số 64 1, 2 là các “priority” thứ tự được thực hiện 1 rồi tới 2… 64 XÂY DỰNG HỆ THỐNG CALLCENTER TRÊN NỀN ASTERISK 67 5.1. Giới thiệu 67 Sự bùng nổ của Internet, việc ứng dụng ngày càng rộng rãi của thương mại điện tử và các ứng dụng đa phương tiện (multimedia) đã làm cho nhu cầu về trao đổi thông tin một cách trong suốt (transparent) giữa khách hàng với các cơ sở dữ liệu (Database) ngày càng tăng 67 Call center là khái niệm chỉ dịch vụ/trung tâm chăm sóc khách hàng (CSKH) qua điện thoại, websites đang hứa hẹn trở thành một lĩnh vực hoạt động kinh doanh đầy tiềm năng tại Việt Nam, trong bối cảnh hội nhập với thế giới 67 Hệ thống Call Center là điểm tiếp nhận mọi thông tin, yêu cầu từ phía khách hàng dưới mọi hình thức: thoại, e-mail, SMS, web, fax và không phụ thuộc vào vị trí xuất phát của nguồn thông tin để phục vụ công tác CSKH, tiếp nhận yêu cầu, giải quyết khiếu nại Ví dụ như một khách hàng muốn truy cập vào tài khoản ngân hàng của mình họ sẽ được hệ thống Call Center kết nối trực tiếp tới cơ sở dữ liệu (CSDL) của ngân hàng đó. Sau đó khách hàng sẽ tương tác trực tiếp với CSDL để thực hiện các yêu cầu của mình 67 5.2. Mục đích Yêu cầu 67 Trong đồ án này sẽ tập trung xây dựng một hệ thống Callcenter với 3 chức năng chính. Khi khách hàng gọi tới tổng đài 1900 sẽ được nghe lời chào và hướng dẫn bấm phím. 67 Bấm phím 1 67 Cho phép khách hàng tra cứu thông tin kết quả xổ số một ngày bất kỳ, ngày tháng năm được nhập từ bàn phím có dạng xxyyzzz. Trong đó xx là ngày, yy là tháng và zzzz là năm. Nếu khách hàng nhập sai ngày tháng năm sẽ được thông báo và yêu cầu nhập lại.Ngày tháng năm được coi là sai khi khách hàng nhập vào chuỗi số có chưa ký tự *,# hoặc là một ngày tháng khống có kết quả trong database. Kết quả trả lời hoàn toàn là âm thanh thoại. 67 4 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Bấm phím 2 67 Sử dụng dịch vụ quà tặng âm nhạc, cho phép khách hàng có thể gửi tặng một bản nhạc tới những người thân của mình cùng với lời nhắn của chính người gửi, thời điểm gửi sẽ do người gửi quyết định.khách hàng sẽ được hướng dẫn để nhập mã quà tặng,số điện thoại người nhận và thời gian gửi quà tặng, nếu khách hàng nhập sai sẽ được thông báo và yêu cầu nhập lại.Mã quà tặng sẽ là một chuỗi số có 4 chữ số, bị coi là không đúng khi chuỗi số chưa ký tự *,# hoặc là không tồn tại quà tặng này.Số điện thoại sẽ là một chuỗi số khách hàng nhập tùy ý cho tới khi nhấn phím #. Khách hàng sẽ được nghe lại số điện thoại vừa nhập và lời hướng dẫn nhấn phím # để đi đến bước tiếp theo, nhấn phím bất kỳ để nhập lại số điện thoại.Thời gian gửi quà tặng sẽ là một chuỗi số có dạng xxyyzztt, trong đó xx là phút, yy là giờ, zz là ngày và tt là tháng gửi quà tặng. Thời gian được coi là không đúng khi chuỗi số khách hàng nhập vào chứa ký tự *, # hoặc là một thời điểm trong quá khứ so với thời gian hiện tại của hệ thống. Cuối cùng khách hàng sẽ ghi âm lại lời nhắn của chính mình để gửi tới người nhận. Sau đó là lời cảm ơn và kết thúc quá trình gửi quà tặng 68 Bấm phím 0 68 Cho phép kết nối trực tiếp khách hàng với nhân viên tư vấn chăm sóc khách hàng. 68 Hệ thống xây dựng đáp ứng được các chức năng đã đề ra, giải quyết tối đa các yêu cầu gọi đến và đảm bảo chất lượng âm thanh thoại 68 5.3. Phân tích thiết kế 68 5.3.1. Kịch bản cho hệ thống 68 72 73 74 Quy trình gặp nhân viên tư vấn 75 5.3.1. Biểu đồ phân rã chức năng 75 75 5.3.2. Biểu đồ ngữ cảnh 75 76 5 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 5.3.1. Biểu đồ luồng dữ liệu mức đỉnh 77 78 5.3.1. Cơ sở dữ liệu 79 Cớ sở dữ liệu phục vụ cho hệ thống cũng khá đơn giản 79 79 79 Trong đó bảng KQXS dùng để lưu kết quả xổ số, trường date dùng dể lưu ngày tháng năm, trường ketqua dùng để lưu kết quả của ngày tháng năm đó. Trường ketqua sẽ có dạng: 79 5.4. Triển khai hệ thống 80 5.4.1. Mô hình hệ thống 80 80 Trong hệ thống thực tế triển khai trong đồ án gồm có: 81 1 Server Linux (CentOS 5) trên đó cài đặt phần mềm Asterisk version 1.6.0 81 1 Server cài Microsoft SQL Server 2005 81 2 Softphone (X-lite) 81 Cấu hình đề nghị đối với PC cài đặt server Asterisk: 81 CPU P4 2.4 Ghz 81 RAM 512 81 HDD 40G 81 5.4.1. Cài đặt các gói phần mềm 81 Hệ Điều Hành CENTOS 5.2 81 Sử dụng đĩa cài đặt CentOS version 5.2 và cài đặt mặc định các gói của hệ thống. Sau khi cài xong thì cần cài thêm các gói nhỏ sau để có thể cài và chạy được phần mềm Asterisk: 81 Cài đặt phần mềm Asterisk 82 Cài đặt Softphone 82 6 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Phần mềm hỗ trợ lập trình giao tiếp với Asterisk 82 5.4.2. Cấu hình hệ thống Asterisk 82 Cấu hình các file .conf như sau: 82 Musiconhold.conf 85 random=yes 85 Agent.conf 85 agent=>2222,2222,hungbd 85 Queue.conf 85 86 5.4.1. Lập trình cho hệ thống 87 Giới thiệu AGI 87 Asterisk Gateway Interface ( AGI ) là một chuẩn giao tiếp với Asterisk . AGI cho phép Astersik gọi thực thi một chương trình ngoài để mở rộng nhiều chức năng của Astersik như điều khiến các kệnh thoại , phát âm thanh , đọc số DTMF , liên kết với cơ sở dữ liệu …. Các chương trình ngoài được gọi là AGI Script , ta có thể lập trình ra các AGI Script bằng nhiều ngôn ngữ lập trình khác nhau như Perl, PHP, C, C#, Java 87 Các file code 88 Các Script được viết bằng ngôn ngữ PHP, sử dụng thư viện PHPAGI để giao tiếp với Asterisk 88 Khi gọi đến số 1900, hệ thống sẽ đưa người gọi đến mainmenu, là ngữ cảnh chính, ở đây người gọi sẽ được nghe một lời chào mừng cùng lời hướng dẫn bấm phím. Hệ thống sẽ chờ người dùng bấm phím trong vòng 30 giây, nếu người dùng không bấm phím trong khoảng thời gian đó thì hệ thống sẽ phát ra lời cảm ơn và kết thúc cuộc gọi, còn ngược lại nếu người dùng bấm phím 1 sẽ được đưa đến ngữ cảnh [kqxs] để tra cứu thông tin về kết quả xổ số, phím 2 sẽ được đưa đến ngữ cảnh [qtan ] để gửi quà tặng âm nhạc, phím 0 sẽ được đưa đến ngữ cảnh [nvtv] để gặp nhân viên tư vấn. Còn phím bất kỳ không phải 3 phím trên sẽ được đưa đến ngữ cảnh [saimenu], ở đây người gọi sẽ được nghe thông báo không tồn tại menu vừa nhập, sau đó được đưa trở lại menu [mainmenu] với priority là 2 để tiếp tục nhập phím khác 88 File ketquaxoso.php 88 7 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 5.5. Kết quả thực nghiệm 94 Vào chế độ dòng lệnh của Asterisk từ terminal của Linux 94 94 94 95 95 96 5.6. Đánh giá hệ thống 96 5.7. Hướng phát triển 97 Hoạt động với mạng PSTN 97 Xây dựng thêm các dịch vụ mới như tra cứu thông tin chứng khoán,Tỷ giá đô la, dự báo thời tiết… 97 DANH MỤC HÌNH VẼ Hình 1 : Cấu trúc mạng VoIP 13 Hình 2 Một số chuẩn mã hóa tín hiệu 16 Hình 3 Gói RTP 17 Hình 4 Cấu trúc gói tin RTP 18 Hình 5 Cấu trúc gói tin RTCP 20 Hình 6: Các thành phần mạng H323 22 Hình 7: Tập giao thức H323 24 Hình 8 Quá trình thiết lập cuộc gọi trong H323 27 Hình 9 :Các thành phần hệ thống SIP 29 Hình 10 Một số trường header đơn giản 31 Hình 11 : Hoạt động của Proxy server 32 Hình 12 : Hoạt động của Redirect Server được trình bày như hình 33 Hình 13 Quá trình thiết lập và hủy một phiên kết nối của SIP 35 8 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Hình 14 : Topo mạng NGN 39 Hình 15 : Cấu trúc mạng và báo hiệu PSTN 40 Hình 16 So sánh chuyển mạch kênh và chuyển mạch mềm 43 Hình 17 : Kiến trúc NGN 44 Hình 18 : Mô hình mạng NGN 47 Hình 19 : Sơ đồ tổng quan Asterisk 49 Hình 20 : Kiến trúc Asterisk 50 Hình 21 : IP PBX 54 Hình 22 : Kết nối IP PBX với PBX 55 Hình 23 : Kết nối giữa các Server Asterisk 55 Hình 24 : Triển khai server IVR, VoiceMail, Hội Thoại 56 Hình 25 : Phân phối cuộc gọi hàng đợi 57 Hình 26 Cấu trúc cây thư mục 59 Hình 27 Kịch bản Menu chính của hệ thống 69 Hình 28 Quy trình tra cứu kết quả xổ số 71 Hình 29 Quy trình gửi quà tặng âm nhạc 74 Hình 30 Gặp nhân viên tư vấn 75 Hình 31 Biểu đồ phân cấp chức năng 75 Hình 32 Biểu đồ ngữ ảnh 76 Hình 33 Biểu đồ luồng dữ liệu mức đỉnh 78 Hình 34 Cơ sở dữ liệu 79 Hình 35 Mô hình logic hệ thống 80 Hình 36 Cấu hình Softphone 86 Hình 37 Màn hình Asterisk CLI 94 Hình 38 Softphone đăng ký vào hệ thống 94 Hình 39 Gọi tới 1900 95 9 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Hình 40 Người gọi chọn tra cứu kết quả xổ số 95 Hình 41 Người gọi chọn Gửi quà tặng âm nhạc 96 LỜI MỞ ĐẦU Sự phát triển của mạng Internet là một bước ngoặt lớn mang đậm tính lịch sử trong lĩnh vực công nghệ thông tin. Nó có những tác động to lớn và tích cực không chỉ riêng trongl lĩnh vực công nghệ thông tin mà còn cả trong mọi lĩnh vực của đời sống xã hội. Nó làm thay đổi tư duy, khả năng nhận thức, tăng cường mở rộng khả năng hiểu biết về thế giới quan, thúc đẩy xã hội phát triển một cách nhanh chóng. Sự bùng nổ của Internet không chỉ là sự gia tăng số lượng các nhà khai thác dịch vụ, số người tham gia mà còn gia tăng về số lượng dịch vụ và chất lượng dịch vụ. Nếu trước đây chúng ta biết đến Internet như là một nguồn để tìm kiếm thông tin, giải trí thì ngày nay, Internet còn đưa thêm rất nhiều dịch vụ mới và đa phần những dịch vụ này rất gần gũi thân thiết với con người như dịch vụ thư điện tử, dịch vụ đa phương tiện, dịch vụ thương mại điện tử…Và gần đây nhất là dịch vụ điện thoại Internet (VoIP). Bắt đầu từ năm 1994, truyền thông Internet đã bắt đầu được thử nghiệm và phát triển mạnh mẽ từ năm 1995. Hiện nay truyền thông qua mạng Internet đã phát triển rất mạng và với rất nhiều ứng dụng như điện thoại, thư thoại, fax, hội nghị video, chia sẻ tài liệu… 10 [...].. .Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Điện thoại IP sẽ là một xu thế không thể tránh khỏi, sẽ dần dần thay thế điện thoại truyền thống Việc tìm hiểu và xây dựng các ứng dụng dựa trên công nghệ VoIP là điều cần thiết và sẽ mang lại những lợi ích to lớn Vì những lý do trên mà em đã đi đến thực hiện đồ án tốt nghiệp của mình với đề tài : “Tìm hiểu công nghệ VoIP và xây dựng hệ... ơn Hà Nội ngày 25 tháng 05 năm 2009 Sinh viên: Lê Hồng Trường 11 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 CHƯƠNG 1 TỔNG QUAN VỀ VOIP 1.1 Giới thiệu VoIP ( Voice Over IP ) là công nghệ cho phép truyền thông tin thoại từ nơi này sang nơi khác thông qua các mạng sử dụng giao thức IP ( Internet Protocol ) để truyền tải thông tin VoIP cũng thường được biết đến dưới một số tên khác như : điện thoại... 1.2 Cấu trúc mạng VoIP Trên hình 1 là cấu hình cơ bản của một mạng VoIP Ta thấy mạng gồm hai thành phần chính là mạng chuyển mạch kênh và mạng chuyển mạch gói Mạng 12 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 chuyển mạch kênh chính là mạng điện thoại thông thường mà ta vẫn sử dụng Còn mạng chuyển mạch gói là một mạng IP, trong đó Internet là mạng IP mà ta vẫn quen thuộc Mạng VoIP phải có khả... mạng IP và mạng PSTN Có 3 loại gateway là: Gateway truyền tải kênh thoại, Gateway điều khiển truyền tải kênh thoại và Gateway báo hiệu 13 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 • Gatekeeper: Có thể xem gatekeeper như là bộ não của hệ thống mạng điện thoại IP Nó cung cấp chức năng quản lý cuộc gọi một cách tập trung và một số các dịch vụ quan trọng khác như là: nhận dạng các đầu cuối và gateway,... mới cho dịch vụ và dịch vụ mới 2.2.3 Các thành phần trong hệ thống SIP Hai phần tử cơ bản trong hệ thống SIP là tác nhân người sử dụng (user agent) và các máy phục vụ mạng (network server) Bên chủ gọi và bị gọi được nhận dạng bằng các địa chỉ SIP 28 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Hình 9 :Các thành phần hệ thống SIP • User agent Client (UAC): Khởi tạo các yêu cầu SIP và đóng vai trò... application/sdp 30 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Hình 10 Một số trường header đơn giản • INVITE : Để chỉ thị rằng thuê bao hoặc dịch vụ được mời tham gia vào một phiên Nó bao gồm một mô tả phiên và đối với các cuộc gọi song công thì bên chủ gọi chỉ thị phương thức truyền thông (media) trong bản tin này Theo phương pháp đơn giản này các bên có thể xác định được các khả năng của bên kia và bắt... truyền thông đa phương tiện (multimedia) Các phiên multimedia bao gồm thoại Internet, hội nghị, và các ứng dụng tương tự có liên quan đến các phương tiện truyền đạt (media) như âm thanh, hình ảnh, và dữ liệu SIP là một công cụ hỗ trợ hấp dẫn đối với điện thoại IP vì các lý do sau : 27 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 • Nó có thể hoạt động vô trạng thái hoặc có trạng thái Vì vậy, sự... gọi mà không phải tập trung vào chức năng thiết lập kênh • Mạng VoIP quản lý băng thông tốt, linh hoạt • Nhiều tính năng dịch vụ mới 14 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 • Khả năng Multimedia : trong một cuộc gọi, người 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 nói chuyện Nhưng mạng VoIP cũng có những nhược điểm... RAS 24 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Cung cấp các thủ tục điều khiển tiền cuộc gọi trong mạng H.323 có GK Kênh báo hiệu RAS được thiết lập giữa các đầu cuối và các GK trước các kênh khác Nó độc lập với kênh báo hiệu cuộc gọi và kênh điều khiển H.245 Các bản tin RAS được truyền qua mạng thông qua kết nối UDP, thực hiện việc đăng ký, cho phép, thay đổi băng thông, trạng thái và các... không phát yêu cầu INVITE như proxy server 33 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 • Bước 5: User Agent bên A gửi lại bản tin ACK đến Redirect server để xác nhận sự trao đổi thành công • Bước 6: Người gọi A gửi yêu cầu INVITE trực tiếp đến địa chỉ được trả lại bởi Redirect server (đến B) Người bị gọi B đáp ứng với chỉ thị thành công (200 OK), và người gọi đáp trả bản tin ACK xác nhận Cuộc . Trường 11 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 CHƯƠNG 1 TỔNG QUAN VỀ VOIP 1.1. Giới thiệu VoIP ( Voice Over IP ) là công nghệ cho phép. đặt phần mềm Asterisk 82 Cài đặt Softphone 82 6 Công nghệ VoIP và Asterisk Lê Hồng Trường TTM-K49 Phần mềm hỗ trợ lập trình giao tiếp với Asterisk 82 5.4.2.