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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
#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..................................................60
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ấuchấm phảy “;”là nội dung chú thích trong file cấu hình. Tất cả các khoảngtrắng trong file cấu hình đều được bỏ qua và không có ý nghĩa.Cú pháp thựchiện giống nhau..........................................................................................60
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.......................................................................................62
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 đổithô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 kinhdoanh đầ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àovị trí xuất phát của nguồn thông tin để phục vụ công tác CSKH, tiế p nhânyê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àotài khoản ngân hàng của mình họ sẽ được hệ thống Call Center kết nối trựctiếp tới cơ sở dữ liệu (CSDL) của ngân hàng đó. Sau đó khách hàng sẽ tươngtá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ướngdẫn bấm phím. ...........................................................................................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ángnă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ẽ đượcthô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
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ảnnhạ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ếukhá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áchhà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áchhàng nhập vào chứa ký tự *, # hoặc là một thời điểm trong quá khứ so vớithờ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ắncủ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
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êucầ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
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àythá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:.........................................................................795.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
HDD 40G............................................................................................................815.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
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
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ứcnă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ậptrì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ếpvới Asterisk................................................................................................88
Khi gọi đến số 1900, hệ thống sẽ đưa người gọi đến mainmenu, là ngữ cảnhchí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ếungườ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ím1 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ườigọi sẽ được nghe thông báo không tồn tại menu vừa nhập, sau đó được đưatrở lại menu [mainmenu] với priority là 2 để tiếp tục nhập phím khác.......88
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....................................................................................................17Hì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
Hình 14 : Topo mạng NGN ......................................................................39
Hình 15 : Cấu trúc mạng và báo hiệu PSTN........................................................40
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 đờisố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ếutrướ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ươngtiệ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áttriể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…
Đ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ệnthoạ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ệ thống Callcenter trên nền
Asterisk ” .
LỜI CẢM ƠN
Để có thể hoàn thành đồ án tốt nghiệp của mình, Em xin gửi lời cảm ơn
chân thành nhất tới tập thể các thầy giáo, cô giáo trường Đại học Bách Khoa Hà Nội nói chung, khoa Công nghệ thông tin, bộ môn truyền thông và mạng nói riêng,đã đào tạo cho em những kiến thức, những kinh nghiệm qúy báu trong suốt thời
gian học tập và rèn luyện.
Em xin gửi lời cảm ơn tới Thầy Giáo Hồ Sĩ Bàng- Giảng viên bộ môn Truyềnthông và Mạng, khoa Công nghệ thông tin, trường Đại học Bách Khoa Hà Nội đã tận tình hướng dẫn, cho em những nhận xét góp ý quý báu trong quá trình làm đồán tốt nghiệp.
Tuy nhiên, do thời gian và trình độ có hạn nên đồ án này chắc chắn không tránh khỏi những thiếu sót, em rất mong được sự đóng góp ý kiến của các thầy, cáccô và toàn thể các bạn . em xin chân thành cảm ơn.
VoIP ( Voice Over IP ) là công nghệ cho phép truyền thông tin thoại từ nơinà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 Internet, điện thoại IP, điện thoại dải rộng ( Broadband Telephony ) vv…
Ở điện thoại thông thường, tín hiệu thoại được lấy mẫu với tần số 8 KHz sauđó lượng tử hóa 8 bit/mẫu và được truyền với tốc độ 64 KHz đến mạng chuyểnmạch rồi truyền tới đích. Ở phía thu, tín hiệu này sẽ được giải mã thành tín hiệu banđầu.
Công nghệ VoIP cũng không hoàn toàn khác với điện thoại thông thường.Đầu tiên , tín hiệu thoại cũng được số hóa , nhưng sau đó thay vì truyền trên mạngPSTN qua các trường chuyển mạch , tín hiệu thoại được nén xuống tốc độ thấp rồi
đóng gói , truyền qua mạng IP . Tại bên thu, các luồng thoại sẽ được giải nén thànhcác luồng PCM 64 rồi truyền tới thuê bao bị gọ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 haithành phần chính là mạng chuyển mạch kênh và mạng chuyển mạch gói. Mạngchuyể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ònmạng chuyển mạch gói là một mạng IP, trong đó Internet là mạng IP mà ta vẫn
Mạng VoIP phải có khả năng thực hiện các chức năng mà mạng điện thoạicông cộng thực hiện, ngoài ra phải thực hiện chức năng của một gateway giữa mạngIP và mạng điện thoại công cộng. Thành phần của mạng điện thoại IP có thể gồm
các phần tử sau đây:
Hình 1 : Cấu trúc mạng VoIP
• Thiết bị đầu cuối kết nối với mạng IP ( Terminal) : Có thể là một phần mềm
máy tính ( softphone) hoặc một điện thoại IP (hardphone).• Mạng truy nhập IP: Là các loại mạng dữ liệu sử dụng giao thức TCP/IP, phổ
biến nhất là mạng Internet.
• Gateway: Là thiết bị có chức năng kết nối hai mạng không giống nhau, hầuhết các trường hợp đó là 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.
• Gatekeeper: Có thể xem gatekeeper như là bộ não của hệ thống mạng điệnthoạ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ộtsố các dịch vụ quan trọng khác như là: nhận dạng các đầu cuối và gateway,
quản lý băng thông, chuyển đổi địa chỉ (từ địa chỉ IP sang địa chỉ E.164 vàngược lại), đăng ký hay tính cước...Mỗi gatekeeper sẽ quản lý một vùng baogồm các đầu cuối đã đăng ký, nhưng cũng có thể nhiều gatekeeper cùng quản
lý một vùng trong trường hợp một vùng có nhiều gatekeeper.Ta cũng thấy rằng có thể có 3 ngữ cảnh cuộc gọi:
• Phone to Phone: gọi giữa 2 máy điện thoại. Nếu 2 máy cùng thuộc một tổngđài thì không cần thông qua mạng IP. Nếu 2 máy nằm ở các mạng các nhauthì phải sử dụng các gateway chuyển tiếp vào mạng IP.
• PC to Phone: gọi giữa PC và Phone. Cần có ít nhất một gateway chuyển tiếp.
• PC to PC: gọi giữa PC và PC. Trong ngữ cảnh này thì cuộc gọi hoàn toàn
nằm trong mạng IP, không cần sử dụng gateway.
1.3. Đặc điểm dịch vụ VoIP
Sự phát triển của dịch vụ VoIP đã đem lại rất nhiều lợi ích. Dưới đây là mộtsố ưu điểm của nó:
• Dịch vụ gọi điện đường dài giá rẻ với chi phí chấp nhận được, chỉ tươngđương với chi phí truy nhập Internet.
•
Các kĩ thuật nén đã giảm tốc độ bit từ 64kps (kênh thoại thường) xuống dưới8kps (theo tiêu chuẩn nén thoại G.729A của ITU-T). Nhờ vậy, khả năng sửdụng kênh sẽ cao hơn. Các bộ vi xử lý của máy tình có tốc độ xử lý nhanh.Điều này làm độ trễ của cuộc gọi giảm xuống, chất lượng cuộc gọi tăng lên.
• Tích hợp mạng thoại, mạng số liệu và mạng báo hiệu. Với mạng điện thoạithông thường thì kênh báo hiệu là hoàn toàn tách biệt với kênh thoại. Vớimạng VoIP thì chỉ có một kênh duy nhất, nhờ vậy có thể tiết kiệm được cơ sở hạ tầng.
• Dễ dàng mở rộng hệ thống.
• Mạng VoIP không cần thông tin điều khiển để thiết lập kênh truyền vật lý :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ộcgọ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.
• Khả năng Multimedia : trong một cuộc gọi, người dùng có thể vừa nóichuyện vừa sử dụng các dịch vụ khác như truyền file, chia sẻ dữ liệu, hayxem 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 sau đây :
• Kĩ thuật phức tạp : truyền tín hiệu theo thời gian thực trên mạng IP là rất khóthực hiện do mất gói trong mạng là khó tránh và độ trễ . Chất lượng dịch vụ
chưa cao.
• Vấn đề bảo mật : mạng Internet có tính toàn cầu và hỗn hợp nên việc bảo vệcác thông tin liên qua như số liên lạc truy nhập sử dụng dịch vụ... là rất quantrọng.
1.4. Chất lượng dịch vụ trong mạng VoIP
Mạng truyền tín hiệu thoại có đòi hỏi khắt khe về chất lượng dịch vụ để đảm bảo cuộc gọi có chất lượng chất nhận được. Dưới đây là các đặc điểm về chất lượngdịch vụ (QoS) của mạng VoIP:
• Delay/ Latency : độ trễ. Đây là khoảng thời gian tính từ lúc tiếng nói được phát ra đến khi người nhận nghe thấy. Hội thoại đòi hỏi tính chất thời gianthực nên cần thiết phải giảm độ trễ xuống thấp nhất. Có thể phân loại trểthành các loại sau:
• Propagation delay : trễ truyền do tốc độ truyền âm trong cáp. Loại trễ nàyhầu như không tránh khỏi.
• Handling delay/processing delay : trể xử lý, do các thiết bị xử lý gói tin. Trễnày có thể giảm bằng việc sử dụng các thiết bị phần cứng tốt cũng như thuậttoán xử lý tối ưu.
• Serialization delay : trễ tuần tự hóa khi dữ liệu được đưa ra thiết bị vật lý.Loại trễ này có ảnh hướng ít, chiếm vai trò nhỏ hoặc hầu như không đáng kể.
• Queuing delay : trễ hàng đợi xảy ra khi nhiều gói tin đến cùng lúc tại một nút
mạng. Trễ này do cấu hình mạng không đáp ứng đủ nhu cầu phục vụ nhiềungười dùng hoặc cài đặt không tốt dẫn tới việc xử lý gói tin tại nút mạngkhông tốt.
• Jitter : là hiện tượng các gói tin không đến nơi trong những khoảng thời gianđều nhau. Hiện tượng này làm cho cuộc hội thoại bị giật. Đây là một đặcđiểm của mạng IP khi mà các gói tin có thể đi theo các đường khác nhau đếnđích. Để loại bỏ hiện tượng này cần phải có các thuật toán đồng bộ gói tinnơi phát và nơi thu.
• Mã hóa đường truyền Pulse Code Modulation (PCM): thuật toán mã hóađường truyền của mạng VoIP cũng tương tự như mạng chuyển mạch kênh.
PCM là thuật toán có tần số lấy mẫu là 8Khz (125ms/mẫu). Ngoài ra nó cóthể sử dụng ADPCM : adaptive differential PCM(chuẩn G.726 ITU-T), với 4
bit mẫu, tốc độ 32kps. Các thuật toán này khác nhau ở tần số lấy mẫu và số
bit mẫu, do đó chất lượng cuộc gọi cũng khác nhau.• Các chuẩn mã hóa tín hiệu được sử dụng trong VoIP có rất nhiều, trong đó
có thể kể tới G.711, G.726, G.728, G.729, G.232.1. Bảng dưới đây thể hiệnchất lượng cảm nhận (MOS) đối với mỗi loại thuật toán mã hóa tín hiệu.
Hình 2 Một số chuẩn mã hóa tín hiệu
• Echo : tiếng vọng. Đây là hiện tượng âm thanh phát qua bị quay trở lại đúng
nơi phát làm cho người nói luôn nghe lại được tiếng do mình phát ra. Lý dolà các gói tin đi qua các mạng có cấu hình khác nhau và không đến đượcđích, quay lại điểm phát. Để xóa tiếng vọng thì thiết bị mà người nói dùng(có thể là router) sẽ lưu giữ ảnh ngược của đoạn hội thoại trong một khoảngthời gian nào đó (inverse speech). “Bộ loại bỏ tiếng vọng” (echo canceller)này sẽ lắng nghe âm thanh đáp lại và loại bỏ thành phần vọng bằng không.
• Mất gói tin là hiện tượng dễ xảy ra trong mạng VoIP Packet loss. ChuẩnG729 đề xuất một kĩ thuật để giảm sự ảnh hưởng tới chất lượng cuộc gọi là
concealment strategy: khi một gói tin bị mất trên đường truyền thì gói tincuối cùng nhận được sẽ được phát lại bù vào chỗ trống. Vì khoảng thời giangiữa các packet chỉ là khoảng 20ms nên người nghe sẽ không có cảm nhận rõràng. Nếu nhiều packet mất thì việc này chỉ thực hiện1 lần và đợi packetkhác tới.
• Khả năng kiểm soát hoạt động hội thoại. Trong hội thoại thì thông thường,một người nói một người nghe thì lãng phí băng thông tối thiểu là 50% domột kênh truyền cố định được thiết lập dành cho cuộc gọi. Sử dụng VoIP có
thể tinh chỉnh băng thông lãng phí này để dùng cho mục đích khác nếu chứcnăng VAD (Voice Activity Detection) được bật. Khi mạng bận thì băng
thông dành cho cuộc hội thoại sẽ được giảm đi, ngược lại khi mạng rỗi thì băng thông cũng sẽ tăng lên, nhờ đó mà tăng chất lượng cuộc gọi.
• Hội thoại đòi hỏi phải có các bộ chuyển đổi Số - Tương tự. Khi chuyển đối
analog-digital và ngược lại thì chất lượng âm thanh giảm đáng kể. Do đócàng ít bộ chuyển đổi D/A trong mạng càng tốt. VoIP sử dụng PCM codec(G.711) tương tự các mạng điện thoại cổ điển.
• Tandem Encoding là hiện tượng gói tin được mã hóa và giải mã nhiều lần đểxác định nơi nhận trước khi đến đích làm giảm chất lượng hội thoại. Để loại
bỏ hiện tượng này cẩn thiết lập các dial plan (kịch bản cuộc gọi) một cáchhợp lý. Các kịch bản này là các file dùng để điều khiển cuộc gọi ở cácgateway controller.
• Về giao thức truyền tin, VoIP sử dụng bộ giao thức RTP/ UDP/ IP. Tầnggiao vận sử dụng giao thức UDP để đảm bảo gói tin được truyền liên tục.Tính chất thời gian thực được đảm bảo nhờ giao thức RTP (Real-timeTransport Protocol). Gói tin RTP chứa các trường như nhãn thời gian và sốthứ tự gói để đảm bảo sự đồng bộ thời gian giữa các gói tin.
Hình 3 Gói RTP
• Đi kèm với RTP là giao thức điểu khiển thời gian thực RTCP. Giao thức nàyđược dùng cho các ứng dụng thời gian thực như media on demand, các dịchvụ tương tác. Nhược điểm của chùm giao thức này là header tổng cộng40bytes, (RTP + IP + UDP) gấp 2 lần so với header trong chuẩn G.729. Tuy
nhiên nó có thể được nén sử dụng CRTP – compress RTP, có thể giảm đượclưu lượng cuộc gọi VoIP từ 24kps xuống dưới 11.2kps. Giao thức UDP cũngcó thể được mở rộng thành RUDP (Reliable UDP) thêm tính tin cậy choUDP bằng cách gửi cùng một gói tin nhiều lần và điểm nhận sẽ loại bỏ cácgói tin không cần thiết.
RTP được coi như một giao thứ truyền từ đầu cuối đến đầu cuối (end to end) phục vụ truyền dữ liệu thời gian thực như audio và video. RTP thực hiện việc quảnlý về thời gian truyền dữ liệu và nhận dạng dữ liệu được truyền. Nhưng RTP khôngcung cấp bất cứ một cơ chế nào đảm bảo thời gian truyền và cũng không cung cấp
bất cứ một cơ chế nào giám sát chất lượng dịch vụ. Sự giám sát và đảm bảo về thờigian truyền dẫn cũng như chất lượng dịch vụ được thực hiện nhờ hai giao thứcRTCP và RSVP.
Tương tự như các giao thứ truyền dẫn khác, gói tin RTP (RTP packet) bao
gồm hai phần là header (phần mào đầu) và data (dữ liệu). Nhưng không giống nhưcác giao thức truyền dẫn khác là sử dụng các trường trong header để thực hiện cácchức năng điều khiển, RTP sử dụng một cơ chế điều khiển độc lập trong định dạngcủa gói tin RTCP để thực hiện các chức năng này.
Cấu trúc gói tin RTP
Hình 4 Cấu trúc gói tin RTP
• Version (2 bit): version của RTP (hiện tại là version 2).
• Padding (1 bit): có vai trò như bit cờ được sử dụng để đánh dấu khi có mộtsố byte được chèn vào trong gói.
• Extension (1 bit): cũng có vai trò như một bit cờ được sử dụng để đánh dấukhi có header mở rộng tiếp theo header cố định.
• CSRC count (4 bit): chỉ rõ số lượng của CSRC (contributing source)
• Marker (1 bit): có vai trò như một bit cờ, trạng thái của nó được phụ thuộcvào trường payload type.
• Payload Type (7 bit): chỉ rõ loại thông tin được chứa trong các gói.Serquence Number (16 bit): cung cấp số thứ tự của các gói. Cách này như một cơ chếgiúp bên thu có thể thu đúng thứ tự các gói tin, nhận ra gói tin bị mất.
• Time-stamp (32 bit): là tham số đánh dấu thời điểm byte đầu tiên được lấymẫu trong gói RTP. Giá trị time-stamp khởi đầu là ngẫu nhiên, các gói RTP
phát đi liên tiếp có thể có cùng giá trị time-stemp nếu chúng cùng được phátđi một lúc.
• Syschronisation source (SSRC) identifier: số nhận dạng nguồn của gói dữliệu. Nếu ứng dụng muốn truyền dữ liệu có nhiều dạng khác nhau trong cùngmột thời điểm (ví dụ là tín hiệu audio và video) thì sẽ có những phiên truyềnriêng cho mỗi dạng dữ liệu. Sau đó ứng dụng sẽ tập hợp các gói tin có cùngnhận dạng SSRC. Số nhận dạng này được gán một cách ngẫu nhiên.
• Contribute source (CSRC) identifer (độ dài thay đổi): tại một điểm đích nàođó mà những tín hiệu audio đến đích cần trộn lại với nhau thì giá trị CSRC sẽlà tập hợp tất cả các giá trị SSRC của các nguồn mà gửi tín hiệu đến điểmđích đó. Trường CSRC có thể chứa tối đa là 15 số nhận dạng nguồn SSRC.
• Extension header (độ dài thay đổi): chứa các thông tin thểm của gói RTP.
1.5.2. Giao thức RTCPMặc dù RTP là một giao thức độc lập nhưng thường được hỗ trợ bởi giao
thức RTCP. RTCP trả về nguồn các thông tin về sự truyền thông và các thành phầnđích. Giao thức điều khiển này cho phép gửi về các thông số về bên thu và tự thíchnghi với bên phát cho phù hợp vời bên phát. Mỗi người tham gia một phiên truyềnRTP phải gửi định kỳ các gói RTCP tới tất cả những người khác cũng tham gia
phiên truyền. Tuỳ theo mục đích mà RTCP thực hiện 4 chức năng:
• RTCP cung cấp một sự phản hồi chất lượng của dữ liệu. Các thông tin đó
giúp cho ứng dụng thực hiện chức năng điều khiển luồng và quản lý tắc
nghẽn.
• RTCP cung cấp sự nhận dạng mà được sử dụng để tập hợp các kiểu dữ liệukhác nhau (ví dụ audio và video). Điều này là cần thiết vì khả năng nàykhông được RTP cung cấp.
• Nhờ việc định kỳ gửi các gói tin RTCP mà mỗi phiên truyền có thể theo dõi
được số người tham gia. RTP không thể sử dụng được cho mục đích này khimột ai đó không gửi dữ liệu mà chỉ nhận từ những người khác.
• Cuối cùng là một chức năng lựa chọn cho phép có thêm thông tin về nhữngngười tham gia vào phiên truyền.
Tuỳ thuộc vào giao thức RTP được sử dụng cho loại dữ liệu nào mà RTCP
cung cấp các thông báo điều khiển khác nhau. Có 4 loại thông báo điều khiển chínhđược giao thức RTCP cung cấp là:
• Sender report (SR): thông báo này chứa các thông tin thống kê liên quan đếnkết quả truyền như tỷ lệ tổn hao, số gói dữ liệu bị mất, khoảng trễ. Các thông
báo này phát ra từ phía phát trong một phiên truyền thông.
• Receiver report (RR): thông báo này chứa các thông tin thống kê liên quanđến kết quả nhận giữa các điểm cuối. Các thông báo này được phát ra từ phía
thu trong một phiên truyền thông.• Source description (SDES): thông báo bao gồm các thông số mô tả nguồn
như tên, vị trí,...
• Application (APP): thông báo cho phép truyền các dữ liệu ứng dụng.
Cấu trúc gói tin RTCP
Hình 5 Cấu trúc gói tin RTCP
• Version (2 bit): version RTP hiện tại (version 2).
• Padding (1 bit): có chức năng như một bit cờ chỉ rõ xem trong gói có các byte được chèn thêm hay không.
• Report counter (5 bit): số thông báo chứa trong gói.
• Packet type (8 bit): xác định loại thông báo của gói (SR hoặc RR hoặc APP).
• Length (16 bit) : Chỉ rõ độ dài của gói tin.
• Report (độ dài thay đổi): chứa các thông báo chi tiết.
Khi đề cập đến thoại IP, tiêu chuẩn quốc tế thường được đề cập đến làH.323. Giao thức H.323 là chuẩn do ITU-T SG16 phát triển cho phép truyền thôngđa phương tiện qua các hệ thống dựa trên mạng chuyển mạch gói, ví dụ nhưInternet. Nó được ITU-T ban hành lần đầu tiên vào năm 1996 và gần đây nhất là
năm 1998. H.323 là chuẩn riêng cho các thành phần mạng, các giao thức và các thủtục cung cấp dịch vụ thông tin multimedia như: audio thời gian thực, video và thôngtin dữ liệu qua các mạng chuyển mạch gói, bao gồm các mạng dựa trên giao thứcIP. Tập giao thức H.323 được thiết kế để hoạt động trên tầng vận chuyển của cácmạng cơ sở. Tuy nhiên, khuyến nghị H.323 rất chung chung nên ít được coi là tiêuchuẩn cụ thể. Trong thực tế, hoàn toàn có thể thiết kế một hệ thống thoại tuân thủH.323 mà không cần đến IP. Khuyến nghị này chỉ đưa ra yêu cầu về “giao diệnmạng gói” tại thiết bị đầu cuối. Ban đầu, H.323 dự định dành cho X.25, FrameRelaysau đó là ATM, nhưng giờ đây lại là TCP/IP, trong khi đó có rất ít H.323 được vậnhành trên mạng X.25 và ATM.
2.1.2. Các thành phần cơ bản của hệ thống H323
• Các thiết bị đầu cuối (Terminal).
• Cổng kết nối (Gateway).
• Thiết bị điều khiển cổng kết nối (Gatekeeper).
•
Khối điều khiển đa điểm MCU (Mutilpoint Control Units).
Sau đây chúng ta sẽ tìm hiểu kỹ hơn về thành phần của mạng H323.
Terminal
Dùng trong liên lạc đa truyền thông song hướng thời gian thực , một thiết bị
đầu cuối H323 có thể là một máy tính PC, camera, điện thoại IP… hay một thiết bịđơn lẻ chạy các ứng dụng H323. Nó là thiết bị trực tiếp tham gia kết nối để cungcấp dịch vụ như: audio, video, data hoặc fax.
Một thiết bị đầu cuối sẽ có ba giao tiếp cơ bản là: giao tiếp với màn hình đểhiển thị hình ảnh hội nghị, giao tiếp Camera và giao tiếp âm thanh với Microphone.Bên cạnh đó còn có giao tiếp dữ liệu với hệ thống mạng làm việc để trao đổi vàtruyền dữ liệu.
Các tính năng của đầu cuối H.323 như:
• H.245: điều khiển sắp xếp sử dụng kênh truyền .
• Q.931 : báo hiệu và thiết lập cuộc gọi.
• RAS: giao thức liên lạc với gatekeeper.
• RTP/RTCP: sắp xếp các gói âm thanh và hình ảnh.
• Ngoài ra, H.323 còn có các tính năng khác như mã hoá/ giải mã tín hiệu âmthanh và hình ảnh, giao thức cho các ứng dụng số liệu (T.120), hội nghị đa
Gateway là điểm kết cuối tuỳ chọn trong mạng H.323. Gateway thực hiện
đấu nối cho các cuộc gọi qua các mạng khác nhau.Một ứng dụng của GW H323 là trong điện thoại IP, nơi mà GW H323 kết
nối với một mạng IP và mạng chuyển mạch kênh SCN ( ISDN , PSTN ).
Gatekeeper
Trong hệ thống H323 , GK cũng có thể tuỳ chọn . Các dịch vụ của GK đượcxác định như RAS và bao gồm dịch địa chỉ : điều khiện chấp nhận đầu vào , điềukhiển băng thông và quản lý vùng. Mạng H323 không có GK sẽ không có các khả
năng này , nhưng mạng H323 có GW IP telephony cũng nên có một GK để dịch địachỉ điện thoại E164 đến sang địa chỉ truyền tải . GK là bộ phận logic của H323nhưng có thể được thực hiện chức năng của GW hay MCU .
Các chức năng của GK được chia thành: các chức năng bắt buộc và các chứcnăng tùy chọn.
Các chức năng bắt buộc của GateKeeper:
• Dịch địa chỉ: Gatekeeper sẽ thực hiện chuyển đổi địa chỉ hình thức (dạng têngọi hay địa chỉ hộp thư) của một đầu cuối hay Gateway sang địa chỉ truyềndẫn (địa chỉ IP). Việc chuyển đổi được thực hiện bằng cách sử dụng bản đốichiếu địa chỉ được cập nhật thường xuyên bởi các bản tin đăng ký.
• Điều khiển chấp nhận đầu vào: Gatekeeper cho phép một truy cập mạngLAN bằng cách sử dụng các bản tin H.225 là ARQ/ACF/ARJ. Việc điềukhiển này dựa trên sự cho phép cuộc gọi, băng thông, hoặc một vài thông sốkhác do nhà sản xuất quy định. Nó có thể là chức năng rỗng có nghĩa là chấpnhận mọi yêu cầu truy nhập của đầu cuối.
• Điều khiển băng thông: Gatekeeper hỗ trợ các bản tin BRQ/BRJ/BCF choviệc quản lý băng thông. Nó có thể là chức năng rỗng nghĩa là chấp nhận mọiyêu cầu thay đổi băng thông.
• Quản lý vùng: Ở đây chữ vùng là tập hợp tất cả các phần tử H.323 gồm thiết bị đầu cuối, Gateway, MCU có đăng ký hoạt động với Gatekeeper để thựchiện liên lạc giữa các phần tử trong vùng hay từ vùng này sang vùng khác.
Khối điều khiển đa điểm là điểm cuối (endpoint) hỗ trợ hội nghị ba thành viên hoặcnhiều hơn. MCU điển hình bao gồm bộ điều khiển đa điểm (MC) và một hoặc nhiều
bộ xử lý đa điểm (MP).
• Bộ điều khiển đa điểm (MC):MC là bộ phận không thể thiếu trong MCU. Nócó thể điều khiển hội nghị điểm - điểm,sau đó phát triển thành hội nghị đađiềm. MC thiết lập các giao thức chung cho tất cả các đầu cuối muốn tham
gia vào hội nghị và quyết định hội nghị theo kiểu Multicast hay Unicast .v.v.MC không trực tiếp xử lý các chuỗi âm thanh, hình ảnh hoặc số liệu tronghội nghị đa điểm.
• Bộ xử lý đa điểm (MP):MP là phần tử tuỳ chọn trong MCU. Nó thực hiệntrộn, chuyển mạch các chuỗi tín hiệu âm thanh, hình ảnh hoặc dữ liệu do MCđiều khiển. Tuỳ thuộc vào loại hội nghị mà MP có thể xử lý một hay nhiềuchuỗi tín hiệu này.
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ênhkhá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 thủ tục huỷ bỏ cuộc gọi. Báo hiệu RASgồm những quá trình sau:
• Tìm GateKeeper.
• Đăng ký : Đăng ký là một quá trình cho phép GW, các đầu cuối và MCUtham gia vào một vùng và báo cho GK biết địa chỉ truyền vận và địa chỉ bídanh của nó.
• Định vị đầu cuối.• Cho phép, thay đổi băng thông, trạng thái và huỷ quan hệ.
Báo hiệu điều khiển cuộc gọi H.225
Trong mạng H.323, thủ tục báo hiệu cuộc gọi được dựa trên khuyến nghịH.225 của ITU. Khuyến nghị này chỉ rõ cách sử dụng và trợ giúp của các bản tin
báo hiệu Q.931. Sau khi khởi tạo thiết lập cuộc gọi. Các bản tin điều khiển cuộc gọivà các bản tin giữ cho kênh báo hiệu cuộc gọi tồn tại (keepalive) được chuyển tới
các cổng.Các bản tin Q.931 thường được sử dụng trong mạng H.323:
• Setup: Được gửi từ thực thể chủ gọi để thiết lập kết nối tới thực thể H.323 bịgọi.
• Call Proceeding: chỉ thị rằng thủ tục thiết lập cuộc gọi đã được khởi tạo.
• Alerting: chỉ thị rằng chuông bên đích bắt đầu rung.
•
Connect: thông báo rằng bên bị gọi đã trả lời cuộc gọi.• Release Complete: chỉ thị rằng cuộc gọi đang bị giải phóng.
• Facility: Đây là một bản tin Q.932 dùng để yêu cầu hoặc phúc đáp các dịchvụ bổ sung. Nó cũng được dùng để cảnh báo rằng một cuộc gọi sẽ được địnhtuyến trực tiếp hay thông qua GK.
Giao thức H.245
H245 xử lý các bản tin điều khiển từ đầu cuối đến đầu cuối giữa các thực thể
H.323. Các thủ tục H.245 thiết lập các kênh logic cho việc truyền tín hiệu âm thanh,hình ảnh, dữ liệu và thông tin kênh điều khiển. Báo hiệu H.245 được thiết lập giữa 2
đầu cuối, một đầu cuối với một MC hoặc một đầu cuối với GK. Đầu cuối chỉ thiếtlập duy nhất một kênh điều khiển H.245 cho mỗi cuộc gọi mà nó tham gia. Một đầucuối, MCU, GK có thể hỗ trợ nhiều cuộc gọi cùng một lúc do vậy có nhiều kênh
điều khiển H.245 tương ứng. Khuyến nghị H.245 định nghĩa một số thực thể giaothức độc lập trợ giúp cho báo hiệu từ đầu cuối đến đầu cuối như sau:
• Trao đổi khả năng.
• Quyết định chủ - tớ.
• Trễ vòng (Round Trip delay).
• Báo hiệu kênh logic (Logical channel signaling).
•
Các thủ tục kết nối nhanh.• H245 ngầm (Tuneling H.245).
SIP (Session Initiation Protcol ) là giao thức báo hiệu điều khiển lớp ứngdụng được dùng để thiết lập, duy trì, kết thúc các phiên 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 ứngdụ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 :
• Nó có thể hoạt động vô trạng thái hoặc có trạng thái. Vì vậy, sự hoạt động vôtrạng thái cung cấp sự mở rộng tốt do các server không phải duy trì thông tinvề trạng thái cuộc gọi một khi sự thực hiện (transaction) đã được xử lý.
• Nó có thể sử dụng nhiều dạng hoặc cú pháp giao thức chuyển siêu văn bảnHTTP (Hypertext Transfer Protocol), vì vậy, nó cung cấp một cách thuận lợiđể hoạt động trên các trình duyệt.
• Bản tin SIP (nội dung bản tin) thì không rõ ràng, nó có thể là bất cứ cú phápnào. Vì vậy, nó có thể được mô tả theo nhiều cách. Chẳng hạn, nó có thểđược mô tả với sự mở rộng thư Internet đa mục đích MIME (MultipurposeInternet Mail Extension) hoặc ngôn ngữ đánh dấu mở rộng XML (ExtensibleMarkup Language).
• Nó nhận dạng một người dùng với bộ định vị tài nguyên đồng nhất URL(Uniform Resource Locator), vì vậy, nó cung cấp cho người dùng khả năngkhởi tạo cuộc gọi bằng cách nhấp vào một liên kết trên trang web.
Nói chung, SIP hỗ trợ các hoạt động chính sau :
• Định vị trí của người dùng.
• Định media cho phiên làm việc.
• Định sự sẵn sàng của người dùng để tham gia vào một phiên làm việc.
• Thiết lập cuộc gọi, chuyển cuộc gọi và kết thúc.
2.2.2. Tính năng của SIP
Giao thức SIP được thiết kế với những chỉ tiêu sau:
• Tích hợp với các giao thức đã có của IETF.
• Đơn giản và có khả năng mở rộng.
• Hỗ trợ tối đa sự di động của đầu cuối.
• Dễ dàng tạo tính năng 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
Client (UAC): Khởi tạo các yêu cầu SIP và đóng vai trò như tác nhân chủgọi của người dùng.
Server (UAS): Nhận các yêu cầu và thay mặt cho người sử dụng gửi trả cácđáp ứng, đóng vai trò như tác nhân bị gọi.
•
Network Server
Máy chủ ủy quyền (Proxy server): là một chương trình trung gian, hoạtđộng như là một server và một client cho mục đích tạo các yêu cầu thay mặt cho cácclient khác. Các yêu cầu được phục vụ bên trong hoặc truyền chúng đến các server khác. Một proxy có thể dịch và nếu cần thiết có thể tạo lại các bản tin yêu cầu SIPtrước khi chuyển chúng đến server khác hoặc một UA. Trong trường hợp nàytrường Via trong bản tin đáp ứng, yêu cầu chỉ ra các proxy trung gian tham gia vàotiến trình xử lý yêu cầu .
Máy chủ định vị (Location Server): là phần mềm định vị thuê bao, cungcấp thông tin về những vị trí có thể của thuê bao bị gọi cho các phần mềm máy chủủy quyền và máy chủ chuyển đổi địa chỉ.
Máy chủ chuyển đổi địa chỉ (Redirect Server): là phần mềm nhận yêu cầuSIP và chuyển đổi địa chỉ SIP sang một số địa chỉ khác và gửi lại cho đầu cuối.Không giống như máy chủ ủy quyền, máy chủ chuyển đổi địa chỉ không bao giờ hoạt động như một đầu cuối, tức là không gửi đi bất cứ yêu cầu nào. Máy chủ
chuyển đổi địa chỉ cũng không nhận hoặc huỷ cuộc gọi. Máy chủ đăng ký (Register Server): là phần mềm nhận các yêu cầu đăngký. Trong nhiều trường hợp máy chủ đăng ký đảm nhiệm luôn một số chức năng an
ninh như xác nhận người sử dụng. Thông thường máy chủ đăng ký được cài đặtcùng với máy chủ ủy quyền và máy chủ chuyển đổi địa chỉ hoặc cung cấp dịch vụđịnh vị thuê bao. Mỗi lần đầu cuối được bật lên ( ví dụ máy điện thoại hoặc phần
mềm SIP) thì đầu cuối lại đăng ký với máy chủ. Nếu đầu cuối cần thông báo chomáy chủ về địa điểm của mình thì bản tin REGISTER cũng được gửi đi. Nói chungcác đầu cuối đều thực hiện việc đăng ký lại một cách định kỳ.
2.2.4. Các bản tin của SIP
SIP là một giao thức dựa trên ký tự văn bản với cú pháp bản tin và cáctrường mào đầu đồng nhất với giao thức truyền siêu văn bản HTTP (Hypper TextTransfer Protocol). Các bản tin của SIP truyền trên cùng một kết nối TCP hoặc bó
• 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ăngcủa bên kia và bắt đầu một phiên hội thoại .
• ACK : Những yêu cầu này tương ứng với một yêu cầu INVITE. Chúng là sựxác nhận cuối cùng từ một hệ thống cuối và chấm dứt một giao dịch đượckhởi tạo bởi INVITE.
• OPTIONS : Bản tin này cho phép truy vấn và tập hợp các khả năng của user agent và network server. Tuy nhiên yêu cầu này không được dùng để thiếtlập phiên.
• BYE: Bên chủ gọi và bị gọi sử dụng yêu cầu này để giải phóng cuộc gọi.
Trước khi thực sự giải phóng cuộc gọi, user agent gửi yêu cầu này tới server để cảnh báo rằng nó muốn giải phóng phiên làm việc.
• CANCEL: Yêu cầu này cho phép user agent và network server xoá bỏ bấtkỳ một yêu cầu nào đang thi hành.
• REGISTER: yêu cầu này được client dùng để đăng ký thông tin với SIPserver.
• Bước 1: [email protected] gửi bản tin INVITE cho UserB ở miềnhotmail.com, bản tin này đến proxy server SIP của miền hotmail.com (Bảntin INVITE có thể đi từ Proxy server SIP của miền yahoo.com và đượcProxy này chuyển đến Proxy server của miền hotmail.com).
• Bước 2: Proxy server của miền hotmail.com sẽ tham khảo server định vị(Location server) để quyết định vị trí hiện tại của UserB.
• Bước 3: Server định vị trả lại vị trí hiện tại của UserB (giả sửlà [email protected]).
• Bước 5: User Agent bên A gửi lại bản tin ACK đến Redirect server để xácnhậ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ànhcông (200 OK), và người gọi đáp trả bản tin ACK xác nhận. Cuộc gọi đượcthiết lập. goài ra SIP còn có các mô hình hoạt động liên mạng với SS7 (đếnPSTN) hoặc là liên mạng với chồng giao thức H.323.
Tổng quát lại trong mạng SIP quá trình thiết lập và hủy một phiên kết nối:
1. đăng ký, khởi tạo và định vị đầu cuối.
2. xác định phương tiện của cuộc gọi, tức là mô tả phiên mà đầu cuối được
mời tham gia.3. xác định mong muốn của đầu cuối bị gọi, trả lời hay không. Phía bị gọi
phải gửi bản tin xác nhận chấp thuận cuộc gọi hay từ chối.
4. thiết lập cuộc gọi.
5. thay đổi hay điều khiển cuộc gọi (ví dụ như chuyển cuộc gọi).
Hình 13 Quá trình thiết lập và hủy một phiên kết nối của SIP
2.3. So sánh với H.323
SIP đơn giản hơn nhiều so với H.323. Để hoạt động, H.323 phải sử dụng cácgiao thức khác nhau như : RTP/RTCP - Giao vận số liệu, H.225.0 và Q.931 - để báohiệu và thiết lập cuộc gọi, H.245 - để dàn xếp dạng đầu cuối. Trong khi đó SIP dođược thiết kết theo mô hình Client/Server sử dụng các bản tin dạng văn bản, nên thủtục xử lý truyền tin đa dịch vụ đơn giản và sáng sủa hơn nhiều so với H.323. Tập
bản tin của SIP chỉ bao gồm 6 loại : INVITE, ACK, CANCEL, BYE, REGISTER và OPTIONS nghĩa là ít hơn rất nhiều so với H.323. Như vậy để hỗ trợ cho việcthiết lập một cuộc gọi, SIP chỉ cần 2 trao đổi (Trường hợp UAC đã đăng ký với
UAS), đối với H.323 ít nhất là 8 trao đổi. Tuy nhiên cấu trúc các bản tin của SIP lạiquá phức tạp so với H.323, vì thế để thực hiện được một trao đổi SIP các UAC và
UAS phải có sự sắp xếp và khởi tạo các bản tin trước khi gửi đi, đối với H.323 khinhận được tín hiệu yêu cầu là gần như nó có tín hiệu trả lời ngay lập tức. Nói chunghạ tầng H.323 có thể đáp ứng các yêu cầu bảo đảm chất lượng dịch vụ của ứng dụng
thời thực tốt hơn so với SIP. Tuy nhiên nếu các ứng dụng loại này có những thuậttoán tìm đường và mô phỏng lưu lượng tối ưu thì SIP có vẻ như chiếm ưu thế hơnH.323.
Về báo hiệu: cả H.323 và SIP đều hỗ trợ các chức năng điều khiển và quảnlý thiết lập kết nối, như : khởi tạo kết nối (call set-up), giữ kết nối (call hold),chuyển kết nối (call transfer), chờ thực hiện kết nối (call waiting),...
Hỗ trợ QoS: H.323 quy định chi tiết các chức năng điều khiển và quản trị băng thông cho gatekeeper, bao gồm chuyển đổi địa chỉ, điều khiển truy nhập và
quản trị băng thông. Thực chất đây chính là các chức năng hỗ trợ cho đảm bảo QoS.Trong khi SIP không định nghĩa bất cứ một chức năng hỗ trợ đảm bảo QoS nào.
Phát hiện và khắc phục lỗi: Cả H.323 lẫn SIP đều cung cấp cơ chế pháthiện và khắc phục lỗi. H.323 sử dụng các timer khác nhau để giám sát việc phátnhận các thông báo điều khiển thiết lập kết nối, trước khi thực hiện việc phát lại.Chỉ sau một số lần phát lại được qui định mà vẫn không nhận đúng thông báo trảlời, kết nối TCP mới được sử dụng. Đối với SIP qui định thực thể UA tự động phátlại sau mỗi 0,5s cho đến khi nhận được thông báo trả lời “ứng xử đúng”; thực thể
NS tự động phát lại thông báo “trạng thái cuối cùng OK” cho đến khi nhận đượcthông báo trả lời ACK.
Sự gia tăng cả về số lượng và chất lượng của các nhu cầu dịch vụ ngày trở nên phức tạp từ phía khách hàng đã kích thích sự phát triển nhanh chóng của thịtrường công nghệ Điện tử – Tin học – Viễn thông. Tuy nhiên, các công nghệ cơ
bản liên quan đến các tổng đài chuyển mạch kênh hiện nay đã phát triển quá chậmso với tốc độ thay đổi và tốc độ chấp nhận liên quan đến công nghiệp máy tính.Chuyển mạch kênh là các phần tử có độ tin cậy cao trong kiến trúc PSTN. Tuy
nhiên, chúng không bao giờ là tối ưu đối với chuyển mạch gói. Khi lưu lượng củamạng ngày càng trở nên phong phú và đa dạng thì hiển nhiên phải có một côngnghệ, giải pháp mới cho thiết kế chuyển mạch của mạng tương lai, đó là xét về mặtkỹ thuật. Còn khi xem xét ở khía cạnh kinh doanh thu lợi nhuận thì :
• Các Giải pháp mới sẽ mang lại những dịch vụ mới hấp dẫn với khách hàng
• Do thời gian phát triển nhanh và chi phí vận hành cũng như bảo dưỡng cácmạng chuyển mạch gói thấp hơn nhiều so với chuyển mạch kênh, nên các
nhà điều hành mạng ngày nay tập trung chú ý đến công nghệ chuyển mạchgói IP.
Do vậy, khi càng ngày càng nhiều lưu lượng dữ liệu chảy vào mạng quaInternet, thì cần phải có một giải pháp mới, đặt trọng tâm vào dữ liệu, cho việc thiếtkế chuyển mạch của tương lai dựa trên công nghệ gói để chuyển tải chung cả thoạivà dữ liệu. Như một sự lựa chọn, các nhà cung cấp dịch vụ đã và đang cố gắnghướng tới việc xây dựng một mạng thế hệ mới Next Generation Network - NGNtrên đó hội tụ các dịch vụ thoại, số liệu, đa phương tiện trên một mạng duy nhất - sử
dụng công nghệ chuyển mạch gói trên mạng xương sống (Backbone Network). Đâylà mạng của các ứng dụng mới và các khả năng mang lại lợi nhuận mà chỉ đòi hỏigiá thành thấp. Và đó không chỉ là mạng phục vụ thông tin thoại, cũng không chỉ làmạng phục vụ truyền số liệu mà đó là một mạng thống nhất, mạng hội tụ đem lạingày càng nhiều các dịch vụ tiên tiến đáp ứng nhu cầu ngày một tăng, và khắt khehơn từ phía khách hàng.
Mạng thế hệ mới NGN không phải là một cuộc cách mạng về mặt công nghệmà nó là một bước phát triển, một xu hướng tất yếu. Hạ tầng cơ sở mạng của thế kỷ
20 không thể được thay thế trong một sớm một chiều, vì thế NGN phải tương thíchtốt với môi trường mạng sẵn có và phải kết nối hiệu quả với mạng PSTN.
3.4.1. Những hạn chế của tổng đài chuyển mạch kênh
Hiện nay cơ sở hạ tầng chuyển mạch viễn thông công cộng bao gồm rấtnhiều mạng, công nghệ và các hệ thống khác nhau, trong đó hệ thống chuyển mạchkênh sử dụng công nghệ ghép kênh phân chia theo thời gian (TDM-Time DivisionMultiplex ) đã phát triển khá toàn diện về dung lượng, chất lượng và quy mô mạng
lưới. Mạng PSTN ngày nay nói chung đáp ứng được rất tốt nhu cầu dịch vụ thoạicủa khách hàng. Tuy nhiên trong lĩnh vực cung cấp dịch vụ thoại còn có nhiều vấnđề chưa được giải quyết một cách thực sự thoả đáng, chưa nói đến những dịch vụmới khác.
Hiện nay, tất cả các dịch vụ thoại nội hạt đều được cung cấp thông qua cáctổng đài nội hạt theo công nghệ chuyển mạch kênh, đơn giản bởi vì chẳng có giải
pháp nào khác. Chính điều này là cản trở đối với sự phát triển của dịch vụ, bởinhững nguyên nhân chính sau đây:
Chuyển mạch mềm có thể được định nghĩa như là tập hợp các sản phẩm,giao thức, và các ứng dụng cho phép bất kỳ thiết bị nào truy cập các dịch vụ truyền
thông qua mạng xây dựng trên nền công nghệ chuyển mạch gói IP. Những dịch vụđó bao gồm thoại, fax, video, dữ liệu và các dịch vụ mới có thể được phát triểntrong tương lai. Những thiết bị đầu cuối truy nhập bao gồm điện thoại truyền thống,điện thoại IP, máy tính, PDAs, máy nhắn tin (pager)...Một sản phẩm Softswitch cóthể bao gồm một hoặc nhiều phần chức năng, các chức năng có thể cùng nằm trênmột hệ thống hoặc phân tán trên những hệ thống thiết bị khác nhau.
Softswitch nhìn trung cung cấp các chức năng giống như các chức năng củahệ thống chuyển mạch kênh, nó chỉ khác là được thiết kế cho mạng chuyển mạch
gói và có khả năng liên kết với mạng PSTN. Các tính chất khác biệt của một hệthống chuyển mạch mềm bao gồm:
• Là hệ thống có khả năng lập trình để xử lý cuộc gọi và hỗ trợ các giao thứccủa mạng PSTN, ATM, và IP.
• Hoạt động trên nền các máy tính và các hệ điều hành thương mại.
• Điều khiển các Gateway trung kế ngoài (External Trunking Gateway),Gateway truy nhập(Access Gateway) và các Server truy nhập từ xaRAS(Remote Access Server).
• Nó tái sử dụng các dịch vụ IN thông qua giao diện danh bạ mở, mềm dẻo.
• Cung cấp các giao diện lập trình ứng dụng mở API cho các nhμ phát triểnthứ 3 nhằm tạo ra các dịch vụ thế hệ sau.
•
Nó có chức năng lập trình cho các hệ thống Back office.• Có hệ thống quản lý tiên tiến trên cơ sở máy chủ (policy-Server-based) cho
tất các module phần mềm.
Một đặc điểm nữa của Softswitch là Softswitch không phải làm nhiệm vụcung cấp kênh kết nối như tổng đài vì liên kết thông tin đã được cơ sở hạ tầng mạng
NGN thực hiện theo các công nghệ chuyển mạch gói. Tức là công nghệ Chuyểnmạch mềm không thực hiện bất cứ “chuyển mạch” gì. Tất cả các công việc củaSoftswitch được thực hiện với một hệ thống các mô đun phần mềm điều khiển và
giao tiếp với các phần khác của mạng NGN, chạy trên một hệ thống máy chủ cóhiệu năng, độ tin cậy và độ sẵn sàng ở cấp độ nhà cung cấp dịch vụ (Carrier -Class).
3.4.3. Những lợi ích của Softswitch
Mạng thế hệ sau có khả năng cho ra đời những dịch vụ giá trị gia tăng hoàntoàn mới hội tụ ứng dụng thoại, số liệu và video. Các dịch vụ này hứa hẹn đem lạidoanh thu cao hơn nhiều so với các dịch vụ truyền thống.
Do các dịch vụ của NGN được viết trên các phần mềm . Do đó việc triểnkhai, nâng cấp, cũng như việc cung cấp các dịch vụ mới cũng trở nên dễ dàng.
Khả năng thu hút khách hàng của mạng NGN rất cao, từ sự tiện dụng hội tụcả thoại dữ liệu, video đến hàng loạt các dịch vụ khác mà nhà cung cấp dịch vụ cóthể cung cấp cho khách hàng, thêm nữa họ có khả năng kiểm soát các dịch vụ thôngtin của mình điều này làm cho khách hàng luôn luôn thoả mãn và lệ thuộc hơn vàonhà cung cấp dịch vụ, cơ hội kinh doanh của như cung cấp sẽ lớn hơn, và ổn địnhhơn.
Giảm chi phí xây dựng mạng: Khi xây dựng một mạng hoàn toàn mới cũngnhư mở rộng mạng có sẵn , thì mạng chuyển mạch mềm có chỉ phí ít tốn kém hơnnhiều so với mạng chuyển mạch kênh. Điều này làm cho trở ngại khi tham gia thị
trường của những nhà khai thác dịch vụ mới không còn lớn như trước nữa. Hiệnnay, sự cạnh tranh giữa các nhà khai thác dịch vụ chính là những dịch vụ gì mà họcó thể cung cấp cho khách hàng, và độ hài lòng của khách hàng khi sử dụng những
dịch vụ đó, nên hầu hết các nhà khai thác đều tập trung đầu tư vào việc viết phầnmềm phát triển dịch vụ.
Giảm chi phí vận hành bảo dưỡng và quản lý mạng hiệu quả hơn. Softswitchkhông còn các tổng đài lớn tập trung, tiêu tốn năng lượng và nhân lực điều hành,chuyển mạch giờ đây sẽ là các máy chủ đặt phân tán trong mạng, được điều khiển
bởi các giao diện thân thiện người sử dụng (GUI) do đó chi phí điều hành và hoạtđộng của mạng được giảm đáng kể.
Sử dụng băng thông có hiệu quả hơn: Do mạng truyền vận của NGN là mạng
chuyển mạch gói cho nên với cùng một cơ sở hạ tầng truyền dẫn thì hiệu suất sửdụng băng thông của nó cao hơn nhiều so với mạng chuyển mạch kênh. Thêm nữa,theo như thống kê đối với thoại thì 60% thời gian cuộc gọi là khoảng lặng, mạng thếhệ mới có cơ chế triệt khoảng lặng nên làm tăng hiệu suất sử dụng băng thông mộtmức đáng kể. Dưới đây là một số so sánh giữa công nghệ Chuyển mạch mềm vàTổng đài chuyển mạch kênh.
So sánh Mạng chuyển mạch kênh và mạng chuyển mạch mềm
Chức năng cơ bản của lớp truyền tải là xử lý, chuyển vận gói tin. Lớp này
bao gồm các thiết bị đảm nhiệm đóng mở gói, định tuyến, chuyển gói tin dưới sựđiều khiển của lớp Điều khiển và báo hiệu cuộc gọi (Call Control and SignalingPlane). Lớp truyền tải được phân chia làm ba miền con:
Miền truyền tải thông tin theo giao thức IP
Miền này bao gồm:
• Mạng truyền dẫn backbone.
• Các thiết bị mạng như : Router, Switch.
• Các thiết bị cung cấp cơ chế QoS.
Miền liên kết mạng
Miền liên kết mạng với nhiệm vụ chính nhận các dữ liệu đến, chuyển đổikhuôn dạng dữ liệu cho phù hợp để thông tin có thể truyền thông một cách trongsuốt trên toàn bộ mạng. Trong miền này là tập hợp các Gateway như SignalingGateway, Media Gateway, trong đó, Signaling Gateway thực hiện chức năng cầunối giữa mạng PSTN và mạng IP và tiến hành phiên dịch thông tin báo hiệu giữahai mạng này. Media Gateway thực hiện quá trình chuyển đổi khuôn dạng dữ liệugiữa các môi trường truyền thông khác nhau.
Trong miền này bao gồm các thiết bị truy cập cung cấp các cổng kết nối chothiết bị đầu cuối thuê bao. cung cấp các dịch vụ nh− POTS, IP, VoIP, ATM FR,
xDSL, X25, IP-VPN.
3.5.2. Lớp điều khiển và báo hiệu cuộc gọi
Đây là lớp trung tâm của hệ thống thực thi quá trình điều khiển, giám sát vàxử lý cuộc gọi nhằm cung cấp các dịch vụ thông suốt từ đầu cuối đến đầu cuối (end-toend) với bất cứ loại giao thức và báo hiệu nào. Thực thi quá trình giám sát các kếtnối cuộc gọi giữa các thuê bao thông qua việc điều khiển các thành phần của lớptruyền tải -Transport Plane. Quá trình xử lý và báo hiệu cuộc gọi về bản chất có
nghĩa là xử lý các yêu cầu của thuê bao về việc thiết lập và huỷ bỏ cuộc gọi thôngqua các bản tin báo hiệu. Lớp này còn có chức năng kết nối cuộc gọi thuê bao vớilớp ứng dụng và dịch vụ - Service and Application Plane. Các chức năng này sẽđược thực thi thông qua các thiết bị như Media Gateway Controller ( hay CallAgent hay Call Controller ), các SIP Server hay Gatekeeper.
3.5.3. Lớp ứng dụng và dịch vụ
Lớp ứng dụng và dịch vụ là lớp cung cấp các ứng dụng và dịch vụ như mạng
thông minh IN - Intelligent Networks, các dịch vụ giá trị gia tăng.... Lớp này liênkết với lớp điều khiển và báo hiệu thông qua các giao diện lập trình mở API – Application Programing Interface. Cũng chính nhờ đó mà việc cập nhật, tạo mới vàtriển khai ứng dụng, dịch vụ mạng trở nên vô cùng nhanh chóng và hiệu quả. Trênlớp này sử dụng các thiết bị như Application Server, Feature Server. Lớp này cũngcó thể thực thi việc điều khiển những thành phần đặc biệt như Media Server, mộtthiết bị được biết đến với tập các chức năng như conferencing, IVR, xử lý tone ....
3.5.4. Lớp quản lý
Lớp quản lý mạng có nhiệm vụ cung cấp các chức năng như giám sát cácdịch vụ và khách hàng, tính cước và các tác vụ quản lý mạng khác. Nó có thể tươngtác với bất kỳ hoặc cả ba lớp còn lại thông qua các chuẩn công nghiệp ví dụ nhưSNMP hoặc các chuẩn riêng và các APIs – giao diện lập trình mở. Dựa vào mô hìnhmạng NGN ở trên, Chuyển mạch mềm Softswitch phải thực hiện các chức năngsau :
Trung tâm báo hiệu và điều khiển cuộc gọi trong toàn mạng, quản lí và điềukhiển các loại gateway truy nhập mạng, hoạt động theo tất cả các loại giao thức báohiệu từ H323, SIP đến MGCP/MEGACO.
Giao tiếp với báo hiệu của mạng PSTN (chủ yếu là kết nối với mạng báohiệu SS7) và liên kết với hệ thống Softswitch khác.
Tạo ra các môi trường lập trình mở để cho phép các hãng thứ ba dễ dàng tích
hợp và phát triển ứng dụng (trên nền IP) và kết nối với các môi trường cung cấpdịch vụ đã có sẵn (ví dụ IN).
3.6. Các phần tử trong mạng NGN
Các phần tử của mạng NGN được thể hiện ở hình dưới đây, bao gồm:
Softswitch: là phần tử có chức năng điều khiển cuộc gọi, mà thành phầntương tác chính của nó là các Media Gateway, và các Access Gateway thông quacác giao thức điều khiển gateway truyền thông như MGCP/H248 MEGACO. Mặtkhác nó cũng có khả năng tương tác với mạng H323, và SIP cho phép người sửdụng thực hiện các cuộc gọi, PC to Phone, PC to PC, Phone to PC.
SIP Server: Có vai trò chức năng định tuyến các bản tin báo hiệu SIP giữacác SIP client. Nếu trong mạng chỉ có một SIP server thì, nó vừa đóng vai trò làProxy Server, Redirect Server, Location Sever.
Gatekeeper: cho phép các thuê bao H323 đăng ký , nhận thực, đồng thờigiám sát các kết nối Multimedia giữa các đầu cuối H323.
Signalling Gateway: thực hiện chức năng Gateway báo hiệu
Media Sever: Nó cho phép sự tương tác giữa thuê bao và các ứng dụngthông qua thiết bị điện thoại, Ví dụ như nó có thể trả lời cuộc gọi, đưa ra một lờithông báo, đọc thư điện tử, thực hiện chức năng của IVR.
MediaGateway: là thiết bị truyền thông kết nối với mạng chuyển mạch kênhhiện tại và mạng NGN. Nó cung cấp các cổng kết nối trực tiếp với đường trung kếcủa mạng PSTN và mạng di động và biến đổi các luồng TDM đó thành những góiIP và ngược lại. Các Gateway này hoạt động đơn thuần như một thiết bị kết nốitrung gian, được điều khiển bởi Softswitch.
Access Gateway: là Gateway truy cập có thể cung cấp truy cập đa dịch vụnhư xDSL, VoDSL, POTS/ISDN.....
IP client: là các thiết bị đầu cuối IP hỗ trợ các giao thức H323, SIP. các đầucuối này có thể thực hiện những cuộc gọi Multimedia trong mạng của nó hay gọithoại ra mạng PSTN thông qua softswitch. Các đầu cuối này có thể là IP phone,PBX trên nền IP.....
đích hỗ trợ cho công ty của mình trong việc liên lạc đàm thoại hỗ trợ cộng đồngngười sử dụng và phát triển Linux.
Asterisk là một PBX và nhiều hơn thế. Asterisk là một phần mềm mang tính
cách mạng, tin cậy, mã nguồn mở và miễn phí mà biến một PC rẻ tiền thông thườngchạy Linux thành một hệ thống điện thoại doanh nghiệp mạnh mẽ. Asterisk là một
bộ công cụ mã nguồn mở cho các ứng dụng thoại và là một server xử lý cuộc gọiđầy đủ chức năng. Asterisk là một nền tảng tích hợp điện thoại vi tính hoá kiến trúcmở. Nhiều hệ thống Asterisk đã được cài đặt thành công trên khắp thế giới. Côngnghệ Asterisk đang phục vụ cho nhiều doanh nghiệp. Hiện nay Asterisk trên đà pháttriển nhanh được rất nhiều doanh nghiệp triển khai ứng dụng cho công ty của mình.Đây là xu thế tất yếu của người sử dụng điện thoại, vì các công ty đều có mạng máy
tính và cần liên lạc với nhau trong công việc giữa các phòng ban hoặc chi nhánh vàcần một chi phí thấp thậm chí không phải tốn chi phí khi thực hiện các cuộc gọi trênmạng nội bộ của công ty.
Không gói gọn thông tin liên lạc trong công ty mà các ứng dụng giao tiếp vớimạng PSTN hoặc mạng VOIP (như voice777) cho phép gọi ra bất cứ số điện thoại
nào có trên mạng PSTN.
Ngoài ra việc tích hợp vào các ứng dụng như CRM và hệ thống Outlook làm
cho khả năng ứng dụng của Asterisk linh hoạt hơn đáp ứng nhu cầu cần thiết chongười sử dụng điện thoại.
Asterisk thoạt đầu được phát triển trên GNU/Linux nền x86 (Intel), nhưnggiờ đây nó cũng có thể biên dịch và chạy trên OpenBSD, FreeBSD và Mac OS X vàMicrosoft Windows.
Asterisk là hệ thống chuyển mạch tích hợp vừa là công nghệ truyền thốngTDM vừa là chguyển mạch voip. Hình trên cũng cho thấy khả năng giao tiếp của hệthống. Giao tiếp với điện thoại analog thông thường, giao tiếp với thiết bị điện thoại
voip, ngoài ra còn có thể giao tiếp với mạng PSTN và các nhà cung cấp voip khác.
Về cơ bản kiến trúc của Asterisk là sự kết hộp giữa nền tảng công nghệ điệnthoại và ứng dụng điện thoại. công nghệ điện thoại cho VOIP như SIP, H323, IAX,MGCP... các công nghệ điện thoại cho hệ thống chuyển mạch mạch TDM như T1,E1, ISDN và các giao tiếp đường truyền thoại Analog. Các ứng dụng thoại nhưchuyển mạch cuộc gọi, tương tác thoại, caller ID, voicemail, chuyển cuộc gọi…
Asterisk có một số chức năng chính đóng vai trò quan trọng trong hệ thống chuyểnmạch cuộc gọi. Khi khởi động hệ thống Asterisk thì chức năng Dynamic ModuleLoader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codecvà các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệthống.
Sau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng tháisẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vàokế hoạch quay số (Dialplan) được thực hiện cấu hình trong file extension.conf.Chức năng Application Launchar để rung chuông thuê bao, quay số, định hướngcuộc gọi, kết nối với hộp thư thoại…
Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao, các chứcnăng được phát triển bởi cộng đồng phát triển asterisk..
Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác
nhau có thể kết hợp liên lạc được với nhau.
Tất cả các cuộc gọi định hướng qua hệ thống Asterisk đều thông qua cácgiao tiếp như SIP, Zaptel, IAX. Nên hệ thống Asterisk phải đảm trách nhiệm vụ liênkết các giao tiếp khác nhau đó để xử lý cuộc gọi.
Hệ thống cũng bao gồm 4 chức năng API chính:
Codec translator API : các hàm đảm nhiệm thực thi và giải nén các chuẩnkhác nhau như G711, GMS, G729…
Asterisk Channel API : Giao tiếp với các kênh liên lạc khác nhau, đây là đầumối cho việc kết nối các cuộc gọi tương thích với nhiều chuần khác nhau như SIP,IAX, H323. Zaptel…
Asterisk file format API : Asterisk tương thích với việc xử lý các loại file cóđịnh dạng khác nhau như Mp3, wav, gsm…
Asterisk Aplication API : Bao gồm tất cả các ứng dụng được thực thi tronghệ thống Asterisk như voicemail, callerID…
Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tươngtự như CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản phức tạpvới một số ngôn ngữ như PHP hay Perl. Nói chung, khả năng viết các ứng dụng tùy
biến rất lớn.
4.3. Một số tính năng cơ bản
Asterisk có rất nhiều tính năng đã được giới thiệu ở trên nhưng để hiểu rõ hếttất cả các tính năng trên thật sự là thách thức đối với chúng ta. Trong phần này
chúng tôi sẽ giới thiệu một số tính năng với các ứng dụng cụ thể để hiểu hơn về hệthống asterisk.
Voicemail (hộp thư thoại)
Đây là tính năng cho phép hệ thống nhận các thông điệp tin nhắn thoại, mỗimáy điện thoại được khai báo trong hệ thống Asterisk cho phép khai báo thêm chứcnăng hộp thư thoại. Mỗi khi số điện thoại bận hay ngoài “vùng phủ sóng” thì hệthống asterisk định hướng trực tiếp các cuộc gọi đến hộp thư thoại tương ứng đãkhai báo trước. Voicemail cung cấp cho người sử dụng nhiều tính năng lựa chọn
như : password xác nhận khi truy cập vào hộp thư thoại, gửi mail báo khi có thôngđiệp mới.
Khi không ở nhà, hoặc đi công tác mà người sử dụng không muốn bỏ lỡ tấtcả các cuộc gọi đến thì hãy nghĩ ngay đến tính năng chuyển cuộc gọi. Đây là tính
năng thường được sử dụng trong hệ thống Asterisk. Chức năng cho phép chuyểnmột cuộc gọi đến một hay nhiều số máy điện thoại được định trước.
Một số trường hợp cần chuyển cuộc gọi như : Chuyển cuộc gọi khi bận, chuyểncuộc gọi khi không trả lời, chuyển cuộc gọi tức thời, chuyển cuộc gọi với thời gianđịnh trước.
Caller ID (hiển thị số gọi)
Chức năng này rất hữu dụng khi một ai đó gọi đến và ta muốn biết chính xác
là gọi từ đâu và trong một số trường hợp biết chắc họ là ai. Ngoài ra Caller ID cònlà chức năng cho phép chúng ta xác nhận số thuê bao gọi đến có nghĩa là dựa vàocaller ID chúng ta có tiếp nhận hay không tiếp nhận cuộc gọi từ phía hệ thốngAsterisk. Ngăn một số cuộc gọi ngoài ý muốn.
Automated attendant (chức năng IVR)
Chức năng tương tác thoại có rất nhiều ứng dụng trong thực tế, khi gọi điệnthoại đến một cơ quan hay xí nghiệp thuê bao thường nghe thông điệp như “Xinchào mừng bạn đã gọi đến công ty chúng Tôi hãy nhấn phím 1 để gặp phòng kinh
doanh, phím 2 gặp phòng kỹ thuật…” sau đó tuỳ vào sự tương tác của thuê bao gọiđến, hệ thống Asteisk sẽ định hướng cuộc gọi theo mong muốn.
Khi muốn xem điểm thi, muốn biết tiền cước điện thoại của thuê bao, muốn biết tỉ giá Đôla hiện nay như thế nào, hay kết quả sổ số … tất các những mongmuốn trên đều có thể thực hiện qua chức năng tương tác thoại.
Time and Date
Vào từng thời gian cụ thể cuộc gọi sẽ định hướng đến một số điện thoại hay
một chức năng cụ thể khác, ví dụ trong công ty giám đốc muốn chỉ cho phép nhânviên sử dụng máy điện thoại trong giờ hành chánh còn ngoài giờ thì sẽ hạn chế haykhông cho phép gọi ra bên ngoài.
Call Parking
Đây là chức năng chuyển cuộc gọi có quản lý. Có một số điện thoại trunggian và hai thuê bao có thể gặp nhau khi thuê bao được gọi nhấn vào số điện thoạimà thuê bao chủ gọi đang chờ trên đó và từ đây có thể gặp nhau và đàm thoại.
Đây là tính năng cho phép chúng ta từ máy điện thoại này có thể nhận cuộcgọi từ máy điện thoại khác đang rung chuông
Privacy Manager
Khi một người chủ doanh nghiệp triển khai Asterisk cho hệ thống điện thoạicủa công ty mình nhưng lại không muốn nhân viên trong công ty gọi đi ra ngoài tròchuyện với bạn bè, khi đó Asterisk cung cấp 1 tính năng tiện dụng là chỉ cho phépsố điện thoại được lập trình được phép gọi đến những số máy cố định nào đó thôi,còn những số không có trong danh sách định sẵn sẽ không thực hiện cuộc gọi được.
Backlist
Backlist cũng giống như Privacy Manager nhưng có một sự khác biệt là
những máy điện thoại nằm trong danh sách sẽ không gọi được đến máy của mình(sử dụng trong tình trạng hay bị quấy rối điện thoại).
Và còn rất nhiều tính năng nữa mà hệ thống asterisk có thể cung cấp chongười sử dụng, trên đây chỉ là một số tính năng thường được sử dụng mà thôi, Để
biết nhiều hơn chi tiết hơn các tính năng còn lại có thể tham khảo tại websitewww.asterisk.org.
4.4. Các ngữ cảnh ứng dụng
Asterisk thực hiện rất nhiều ngữ cảnh ứng dụng khác nhau tuỳ vào nhu cầusử dụng, dưới dây là những ngữ cảnh ứng dụng thường được sử dụng trong thực tếtriển khai hệ thống asterisk.
Đây là hệ thống chuyển mạch voip được xây dựng phục vụ các công ty cónhu cầu thực hiện trên nền tảng mạng nội bộ đã triển khai. Thay vì lắp đặt một hệthống PBX cho nhu cầu liên lạc nội bộ thì nên lắp đặt hệ thống voip điều này sẽ làm
giảm chi phí đáng kể. Hệ thống có thể liên lạc với mạng PSTN qua giao tiếp TDM.
Kết nối IP PBX với PBX
Một ngữ cảnh đặt ra ở đây là hiện tại Công ty đã trang bị hệ thống PBX bâygiờ cần trang bị thêm để đáp ứng nhu cầu liên lạc trong công ty sao cho với chi phíthấp nhất, giải pháp để thực hiện đó là trang bị hệ thống asterisk và kết nối với hệthống PBX đang tồn tại qua luồng E1. Ngoài ra để tăng khả năng liên lạc với mạngPSTN và VOIP khác, Công Ty có thể thực hiện kết nối với nhà cung cấp dịch vụ
Phương pháp trên ứng dụng rất hiệu quả cho các công ty nằm rãi rác ở các vị
trị địa lý khác nhau nhằm giảm chi phí đường dài. Ví dụ Công ty Mẹ có trụ sở đặttại nước Mỹ và các Chi nhánh đặt tại Việt Nam với các địa điểm Thành phố Hồ Chí
Minh và Hà Nội. Thông qua mạng WAN của Công Ty các cuộc gọi nội bộ giữa cácvị trí khác nhau sẽ làm giảm chi phí đáng kể. Ngữ cảnh này về mặt pháp luật khôngcho cuộc gọi từ Mỹ vào Việt Nam.
Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị
Hình 24 : Triển khai server IVR, VoiceMail, Hội Thoại
Ứng dụng thực hiện các server kết nối với hệ thống PSTN hay tổng đài PBXđể triển khai các ứng dụng như tương tác thoại IVR. Một ví dụ cho ứng dụng tươngtác thoại đó là cho biết kết quả sổ số hay kiểm tra cước cuộc gọi giống dịch vụ19001260 vậy. thoại cùng nói chuyện với nhau. Ứng dụng VoiceMail thu nhậnnhững tin nhắn thoại từ phía thuê bao giống như chức năng hộp thư thoại của BưuĐiện Thành phố triển khai. Còn chức năng điện thoại hội nghị thiết lập cho nhiều
máy điện.
Chức năng Phân phối cuộc gọi tự động ACD
ACD (Automatic Call Distribution): Phân phối cuộc gọi tự động. Đây làchức năng ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hổi từ phíakhách hàng. Công ty có khả năng tiếp nhận cùng một lúc 10 cuộc gọi như thế cuộcgọi thứ 11 gọi đến thì hệ thống giải quyết như thế nào?. Bình thường thì sẽ nghe tínhiệu bận nhưng với chức năng phân phối cuộc gọi sẽ đưa thuê bao đó vào hàng đợiđể chờ trả lời, trong khi chờ trả lời cuộc gọi thuê bao có thể nghe những bài hát haydo asterisk cung cấp, trong lúc này nếu 1 trong mười số điện thoại trở về trạng thái
rỗi thì cuộc gọi đang chờ sẽ được trả lời. Giống như chức năng của dịch vụ 1080hay 116 của Bưu Điện Thành Phố vậy.
Hình 25 : Phân phối cuộc gọi hàng đợi
4.5. Tổ chức thư mục của Asterisk /etc/asterisk/
Thư mục /etc/asterisk/ chứa tất cả các tập tin cấu hình của hệ thống Asterisk ngoại trừ tập tin Zaptel.conf được đặt tại thư mục /etc/.
/usr/lib/asterisk/modules/
Thư mục /usr/lib/asterisk/modules/ chứa tất cả các module cần thiết đểasterisk hoạt động. Bên trong thư mục là các ứng dụng khác nhau, các codec, các
định dạng âm thanh(format) và các kênh thôngtin(channel). Theo mặc định Asterisk sẽ nạp tất cả các module vào lúc khởi động. Chúng ta có thể không cho nạp mộtmodule bất kỳ bằng cách không khai báo sử dụng trong tập tin modules.conf. Lưu ýkhi không cho nạp module thì phải biết chắc module đó không làm ảnh hưởng hoạtđộng của asterisk nếu không lỗi sẽ xuất hiện.
/var/lib/asterisk
Các thư mục con của thư mục /var/lib/asterisk/ bao gồm:
Thư mục agi-bin/ chứa các script của người dùng mà Asterisk có thể định vịsử dụng qua các ứng dụng AGI. AGI là phần giao tiếp với ngôn ngữ lập trình scriptđể thực hiện một số công việc của Asterisk từ bên ngoài.
mohmp3/
Khi cấu hình Asterisk sử dụng tính năng Music on Hold, tính năng hoạt độngsẽ thực hiện lấy các tập tin mp3 tại thư mục moh/. Tập tin định dạng theo chuẩn củaAsterisk nên khi sử dụng các file Mp3 thông thường cần có sự chuyển đổi thích hợptrước khi chép vào thư mục trên để sử dụng.
sounds/
Tất cả các tập tin âm thanh liên quan đến nhắc thoại của Asterisk được đặt tại
thư mục sounds/. Nội dung của các tập tin chứa trong thư mục được liệt kê qua tậptin sounds.txt đặt tại thư mục mã nguồn của Asterisk. Còn nội dung của các tập tinâm thanh được mở rộng thêm được liệt kê trong tập tin sounds-extra.txt đặt trongthư mục được trích ra khi bung gói asterisk-sounds.
/var/spool/asterisk/
Thư mục /var/spool/asterisk/ Chứa nhiều thư mục con bao gồm outgoing/,qcall, tmp/, voicemail/. Asterisk luôn kiểm qua thư mục outgoing và qcall vì đây làhai thư mục chứa các tập tin dạng text chứa thông tin yêu cầu cuộc gọi. Các tập tin
đó cho phép tạo ra cuộc gọi đơn giản bằng cách chép tập tin đúng cấu trúc quy địnhvào thư mục outgoing/. Sau đây là cấu trúc cây thư mục:
Thư mục tmp/ sử dụng để lưu trữ những thông tin tạm, để luôn bảo đảmkhông xảy ra tình trạng đọc và viết tập tin cùng một lúc. Khi yêu cầu xử lý tập tinchúng ta thao tác trên thư mục tmp/ trước khi lưu vào tập tin đích. Tất cả các lời
nhắc thoại từ phía người sử dụng và các lời nhắc thoại sử dụng cho thao tác hộpvoicemail đều được chứa trong thư mục voicemail/. Một hộp thư thoại được tạo raứng với một máy nội bộ trong tập tin voicemail.conf, sẽ được tạora một thư mụccon tương ứng cho máy nội bộ đó tại thư mục voicemail/.
/var/run/
Thư mục /var/run/ chứa thông tin process ID(pid) cho tất cả các tiến trìnhđang hoạt động trong hệ thống, bao gồm cả Asterisk. Lưu ý là ứng với mỗi hệ điềuhành thư mục /var/run/ có thể khác.
/var/log/asterisk/
Thư mục /var/log/asterisk/ là nơi Asterisk chứa tất cả các tập tin nhật ký haycòn gọi là tập tin log. Chúng ta có thể tuỳ biến các loại thông tin được lưu trong cáctập tin log khác nhau qua tập tin cấu hình logger.conf đặt tại thư mục /etc/asterisk.
/var/log/asterisk/cdr-csv
Thư mục /var/log/asterisk/cdr-csv được sử dụng để lưu chi tiết cuộc gọiCDR, hông tin mặc định về chi tiết thông tin cuộc gọi lưu trữ trong tập tin
Master.CVS, hưng thường thì ứng với mỗi mã accountcode sẽ tạo một thư mụcriêng để lưu chi tiết cuộc gọi cho máy đó.
4.6. Một số lệnh thao tác trên hệ thống asterisk
Asterisk có hai thành phần được xây dụng tích hợp với nhau và chạy songsong nhau:
• Asterisk Server bình thường chạy ở chế độ nền(background) giống các
sevices rong window.• Asterisk Client ở chế độ dòng lệnh CLI giao tiếp với Asterisk Server, thực
thi ác lệnh để kiểm tra, hay xem các thông tin của server.
Để Chạy và dừng Asterisk ở chế độ nền chúng ta thực hiện lệnh sau:
#/etc/init.d/asterisk (start|stop)
Một khi Asterisk đã chạy chúng ta có thể chuyển qua chế độ CLI từ dấu nhắclệnh của linux như sau:
Khi vào chế độ lệnh nếu muốn thoát về lại dấu nhắc linux chúng ta dùnglệnh: CLI>exit
Các lệnh cơ bản thực hiện tại CLI>:
Bất cứ khi nào chỉnh sửa các tập tin cấu hình chúng ta đều cần phải nạp lạiđể các thay đổi có hiệu lực, điều đó thực hiện bằng lệnh:
#CLI>reload
Bật chế độ debug cho kênh thông tin SIP hoặc IAX2
#CLI> IAX2 debug
#CLI> SIP debug
Tắt chế độ debug cho kênh thông tin SIP hoặc IAX2
#CLI> IAX2 no debug
#CLI> SIP no debug
Hiển thị các trạng thái thông tin của users, peers và channels của SIP hoặcIAX2:
#CLI> sip show users
#CLI> sip show peers#CLI> sip show channels
#CLI> iax2 show peers
#CLI> iax2 show users
#CLI> iax2 show channels
4.7. Cách thức cấu hình trên các tập tin cơ bản
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áchthứ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ấuhình đều được bỏ qua và không có ý nghĩa.Cú pháp thực hiện giống nhau
Trong file cấu hình còn có hai phép gán rất thường xuyên được sử dụng, phép gán “=” là dùng cho việc gán các biến, còn phép gán “=>” dùng cho việc gáncác đối tượng sau đây là một ví dụ cho file cấu hình:
Cú pháp thực hiện giống nhau cho tất cả các file cấu hình nhưng có vài kiểukhác nhau cho mỗi file cầu hình dựa vào thức cách hoạt động của chúng.
4.8. Cách thức hoạt động của tập tin cấu hình
Có ba kiểu cách thức hoạt động của tập tin cấu hình như sau:
Simple Group
Có hiệu lực trên từng dòng trong file. Đây là kiểu cấu hình đơn giản nhấtthường sử dụng trong các file extention.conf, meetme.conf, voicemail.conf tươngứng với mỗi dòng khai báo là một đối tượng có ý nghĩa trên dòng đó. Ví dụ:
Extention.conf
[section]
object1=> op1,op2,op3
object2=> op1b,op2b,op3b
Trong ví dụ trên mỗi dòng tương ứng với các toán tử khác nhau object1 cócác toán từ op1, op2, op3 trong khi đó object2 lại có các toán từ op1b, op2b, op3b.
Option inheritance
Đây là cấu hình kiểu thừa kế thường được cấu hình trong các file
zapata.conf, agent.conf. với kiểu cấu hình này thì các dòng phía dưới có thể thừa kếcác thông số dòng phía trên, tương ứng với mỗi section các dòng phía dưới có thểthay đổi các thông số cho tương ứng.
Với cấu hình trên có thể giải thích như sau object1=>1 thừa hưởng hai thôngsố ở phía trên đó là op1=bas và op2=adv trong khi đó đối với object1=>2 với thôngsố op1=int được khai báo lại nên object1=>2 được thừa kế từ hai thông số op1=intvà op2=adv.
Complex Entity
Với cấu kiểu này được tổ chức thành nhiều entity, ứng với mỗi entity cónhiều thông số được khai báo, mỗi entity ở đây chính là các section để khai báo cáckênh thông tin. Cấu hình thường được sử dụng trong các file iax.conf, sip.conf. Ví
dụ:Extention.conf
[entity1]
Op1=value1
Op2=value2
[entity2]
Op1=value3Op2=value4
Entity1 có các giá trị value1 và value2 cho thông số op1 và op2, trong khi đócũng là thông số op1 và op 2 nhưng có các giá trị khác là value3 và value4 choentity2.
4.9. Giới thiệu dialplan
Dialplan là trái tim của hệ thống asterisk. Dialplan cho biết các cuộc gọi sẽđược xử lý như thế nào qua hệ thống asterisk. Dialplan bao gồm tập hợp các dònglệnh hay các ứng dụng theo một trình tự nào đó mà hệ thống phải thực hiện để đápứng nhu cầu chuyển mạch cuộc gọi. Để hiểu rõ và cấu hình thành công hệ thốngasterisk thì điều kiện tiên quyết là phải biết như thế nào dialplan hoạt động.
Dialplan là công việc thiết lập cho hoạt động của hệ thống như định hướngcác cuộc gọi vào và ra hệ thống, đó là một danh sách các bước hay các lệnh liên tụcnhau để thực hiện một tác vụ nào đó mà hệ thống phải thực hiện theo. Khác biệt với
các hệ thống điện thoại truyền thống tất cả các công việc cấu hình hệ thống đều là từ phía người sử dụng. Hệ thống chúng ta có hoàn chỉnh tốt hay không phụ thuộc rấtnhiều vào việc chúng ta hiểu rõ vào dialplan hay không.
Dialplan được cấu hình qua tập tin extension.conf, liên quan đến việc cấuhình dialplan có những khái niệm cần nắm đó là:
Extentions: Điện thoại nội bộ.
Priorities: Thứ tự thực hiện.
Applications: Các ứng dụng.
Contexts: Các ngữ cảnh.
Extentions
Dialplan là một tập gồm nhiều extention, khi một cuộc gọi tương ứng vớiextention nào thì ứng dụng cho cuộc gọi đó sẽ được thực hiện. extention có thể đơn
giản với một đích danh cụ thể như 8051, letoan hay là một chuỗi so mẫu được thựchiện như _9xxx. Ví dụ :
/etc/asterisk/extention.conf
exten=>8051,1,dial(sip/8051,20)
exten=>8051,2,hangup()
“exten=>” giống nhau cho mỗi dòng thực hiện trong dialplan, 8051 là sốđiện thoại mà thuê bao quay hay là extention, còn các con số 1 và 2 là các prioritestức là thứ tự thực hiện các lệnh. Khi thuê bao quay số 8051 thì đỗ chuông máy ipsip 8051 nếu trong vòng 20 giây mà thuê bao không nhấc máy thì kết thúc cuộc gọi.
Extension là thành phần mà asterisk thực hiện theo, được kích hoạt khi cócuộc gọi vào extension chính là con số mà thuê bao đó cần gọi. Trong mỗi ngữ cảnhsẽ có thể có nhiều extension. Extenstion chính là hạt nhân để hệ thống xác địnhcuộc gọi cần thực hiện. Extenstion hoàn chỉnh gồm có các phần :
exten => Name,priority,application( )
• Name (Tên ký tự hoặc con số) của extension.
• Priority (Mỗi extension có thể bao gồm nhiều bước mỗi bước được gọilà“priority”).
• Application (or command) Thực hiện một ứng dụng cụ thể nào đó cho cuộcgọi.
7325010 là con số nhận được khi thuê bao chủ gọi quay số.
1, 2 là các “priority” thứ tự được thực hiện 1 rồi tới 2…
Trong ví dụ của chúng ta con số 7325010 sẽ được gửi đến kênh zap/1 rungchuông tối đa 20 giây. Nếu sau 20 giây không trả lời thì cuộc gọi sẽ được địnhhướng đến hộp thư thoại u7325010 chữ u ở đây có nghĩa là “ 'u'navailablemessage”.
Priorities – Thứ tự thực hiện
Priorities là thứ tự thực hiện các ứng dụng trong dialplan, khi thứ tự “1”được thực hiện thì kế tiếp là ứng dụng tại thứ tự số “2” được thực hiện, kể từ vertion1.2 của Asterisk thay vì sử dụng gán một con số cụ thể cho thứ tự thực hiện nhưtrên thì ở đây có thể gán ký tự “n” cho mọi dòng “exten=>” điều này sẽ nói vớiasterisk là ứng dụng với thứ tự tiếp theo sẽ thực hiện.
Ví dụ:
/etc/asterisk/extention.conf
exten=>8051,2,hangup()
exten=>8051,1,dial(sip/8051,20)
Ở ví dụ trên dòng có thứ tự “2” đứng trước dòng có thứ tự “1”, nhưng khithực hiện diaplan thì dòng có thứ tự Priorities “1” ưu tiên thực hiện trước bất kể thứtự sắp xếp như thế nào.
Aplications – Các hàm ứng dụng
Đây là phần quan trọng trong diaplan tức là ứng dụng nào sẽ được thực hiện trênmỗi dòng, các ứng dụng như thực hiện quay số,trả lời cuộc gọi hay đơn giản là nhấcgác máy để biết thêm thông tin về các ứng dụng cũng như các thông số kèm theo thìhãy dùng lệnh show Aplications trên giao tiếp dòng lệnh của asterisk: CLI> show
Aplications
Contexts - Ngữ cảnh
Đầu tiên hãy hình dung như thế này, khi Cô Giáo và Sinh Viên trao đổi vềmôn cơ sở tin học viễn thông có nghĩa là ngữ cảnh(context) lúc này chỉ tập trungvào lĩnh vực viễn thông mà thôi. Như vậy ngữ cảnh (context) đã được giới hạn
trong một tình huống cụ thể, đối với Asterisk ở đây cũng thế khi nói đến ngữ cảnh(context) thì thường quan tâm đến trường hợp cụ thể nào đó, điều này rõ ràng rằngtrong hệ thống sẽ có rất nhiều ngữ cảnh(context) khác nhau. Ví dụ khi gọi đến tổng
đài Asterisk có một thông điệp thông báo như sau “Chào mừng các Bạn gọi đếncông ty chúng tôi hãy nhấn phím 1 để gặp phòng kinh doanh phím 2 gặp phòng kỹthuật…” khi người gọi chọn phím 1 thì hệ thống sẽ chuyển đến một ngữ cảnh
(context) là [PhongKinhDoanh] khi người gọi nhấn phím 2 thì hệ thống sẽ địnhhướng cuộc gọi qua ngữ cảnh (context) [PhongKyThuat] như vậy ứng với mỗitrường hợp hệ thống sẽ có ngữ cảnh khác nhau, ngữ cảnh được đặt trong dấu [].
Ví dụ:
/etc/asterisk/extention.conf
[PhongKinhDoanh]
exten => 7325010,1,Dial(SIP/${EXTEN}),20)
exten => 7325010,2,Voicemail(u${EXTEN})
[PhongKyThuat]
exten => _9.,1,Dial(SIP/${EXTEN})
Ngoài ta đối với việc cấu hình cho các kênh thoại thì ngữ cảnh ở đây là việcxử lý các cuộc gọi tương ứng với kênh đó qua kế hoạch diaplan.
Khi thuê bao 8052 nhấc máy thì Asterisk chuyển cuộc gọi này đến ngữ cảnh[noibo] và chờ nhận con số quay, nếu thuê bao 8052 quay số 8051 thì số máy 8051sẽ rung chuông trong vòng 20 giây, nếu qua 20 giây mà thuê bao 8051 không nhấc
máy thì cuộc gọi sẽ kết thúc. Khi thuê bao 8051 nhấc máy thì Asterisk chuyển cuộcgọi này đến ngữ cảnh [Tu_SIP] và chờ nhận con số quay, nếu thuê bao 8051 quaysố 8052 thì số máy 8052 sẽ rung chuông trong vòng 20 giây, nếu qua 20 giây màthuê bao 8052 không nhấc máy thì cuộc gọi sẽ kết thúc.
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ôngtin 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.
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 đầytiềm năng tại Việt Nam, trong bối cảnh hội nhập với thế giới.
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àngdướ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ảiquyế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ânhà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.
5.2. Mục đích Yêu cầu
Trong đồ án này sẽ tập trung xây dựng một hệ thống Callcenter với 3 chức năngchí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.
Bấm phím 1
• 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àytháng năm được nhập từ bàn phím có dạng xxyyzzz. Trong đó xx là ngày, yylà tháng và zzzz là năm. Nếu khách hàng nhập sai ngày tháng năm sẽ đượcthông báo và yêu cầu nhập lại.Ngày tháng năm được coi là sai khi kháchhà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.
• Sử dụng dịch vụ quà tặng âm nhạc, cho phép khách hàng có thể gửi tặngmộ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ínhngườ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ửiquà 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ộtchuỗ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ỗisố 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ờinhắ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úcquá trình gửi quà tặng.
Bấm phím 0
• 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áchhàng.
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
Để thực hiện được chức năng tra cứu kết quả xổ số, đầu vào người dùng phảinhập là ngày tháng năm muốn tra cứu. Sáu đó hệ thống sẽ truy vấn tới cớ sở dữ liệuvới ngày tháng năm tương ứng, nếu có tồn tại kết quả thì hệ thống sẽ trả vè kết quảcho người gọi dưới dạng âm thanh, ngược lại nếu không tồn tại kết quả thì hệ thốngsẽ thông báo và yêu cầu người gọi nhập ngày tháng năm khác.
Để có thể thực hiện được việc gửi quà tặng trong tương lai, phải sử dụng đếnmột tiện ích là Crontab của Linux, một tiện ích tương tự như schedule task củaWindow. Dựa vào đây, ta sẽ đặt lịch để tới thời điểm trong tương lai, Linux sẽ tự
động thực thi một file .sh, file này đã được tạo ra trong quá trình người gửi gọi đếncho hệ thống. Nó có nhiệm vụ là di chuyển file .call, cũng đã được tạo ra trong quá
trình người gửi gọi tới hệ thống. Khi file .call được di chuyển vào thư mụcOUTGOING của Asterisk, hệ thống sẽ tự động gọi tới số điện thoại người nhận,thực thi file .php đã được tao ra như file .call và file .sh ở trên. Và file .php này sẽ
thực hiện nhiệm vụ đọc số điện thoại người gửi, play lời nhắn và bản nhạc màngười gửi đã đăng ký...
5.3.1. Cơ sở dữ liệu
Cớ sở dữ liệu phục vụ cho hệ thống cũng khá đơn giản.
Hình 34 Cơ sở dữ liệu
Trong đó bảng KQXS dùng để lưu kết quả xổ số, trường date dùng dể lưu ngàytháng năm, trường ketqua dùng để lưu kết quả của ngày tháng năm đó. Trườngketqua sẽ có dạng:
0=XXXX&1=YYYY&2=ZZZZ-TTTT...
XXXX sẽ là giải đặc biệt, YYYY là giải nhất, ZZZZ và TTTT…là các giảinhì…
Bảng MSBH dùng để lưu mã số bài hát, trường msbh là mã số bài hát vàtrường tenbaihat là tên của bài hát. Bảng này nhằm mục đích để kiếm tra tính hợp lệcủa mã bài hát khi khách hàng nhập vào.
Trong hệ thống thực tế triển khai trong đồ án gồm có:
• 1 Server Linux (CentOS 5) trên đó cài đặt phần mềm Asterisk
version 1.6.0• 1 Server cài Microsoft SQL Server 2005
• 2 Softphone (X-lite)
Cấu hình đề nghị đối với PC cài đặt server Asterisk:
CPU P4 2.4 Ghz
RAM 512
HDD 40G
5.4.1. Cài đặt các gói phần mềm
Hệ Điều Hành CENTOS 5.2
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ầnmềm Asterisk:
- gcc
- gcc++
- kernel-devel
- bison
- openssl
- ncurses
- curl
- unixODBC, unixODBC-devel
- libtool
- mysql-connector-odbc, mysql-devel
- php-mysql, php, php-mcrypt
- Ngoài ra còn cần mod_ssl, wget…
Gõ lệnh sau dưới chế độ root để tự động cài đặt tất cả các gói cần thiết:
Asterisk Gateway Interface ( AGI ) là một chuẩn giao tiếp với Asterisk . AGIcho phép Astersik gọi thực thi một chương trình ngoài để mở rộng nhiều chức năngcủa Astersik như điều khiến các kệnh thoại , phát âm thanh , đọc số DTMF , liên kếtvới cơ sở dữ liệu …. Các chương trình ngoài được gọi là AGI Script , ta có thể lậptrì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.
Trong lập trình giao tiếp với Asterisk, cần phân biệt hai khái niệm API vàAGI. API là giao diện lập trình ứng dụng, thường được cung cấp dưới dạng đầu vàolà các lời gọi hàm đến một thư viện nào đó của ứng dụng. Còn AGI thực chất cung
cấp cho lập trình viên một kênh giao tiếp với Asterisk thông qua các con trỏ file(file Pointer) là STDIN, STDOUT, STDERR. Vì vậy công việc lập trình cũng trở nên đơn giản hơn vì không phải đính kèm với một thư viện nào của Asterisk.
Khi bắt đầu mỗi script, Asterisk sẽ truyền các biến môi trường và giá trị của nó đếnAGI script. Ví dụ:
Sau khi truyền các biến này thì Asterisk sẽ gửi một dòng trống để dánh dấukết thúc các biến môi trường và chuyển quyền điều khiển cho script.
Trong file cấu hình extensions.conf, ta gọi script như sau:
[default]
exten => 123,1,Answer( )
exten => 123,2,AGI(quatangamnhac.php)
• Các file code
Các Script được viết bằng ngôn ngữ PHP, sử dụng thư viện PHPAGI để giao tiếpvới Asterisk.
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ừngcù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 trongkhoảng thời gian đó thì hệ thống sẽ phát ra lời cảm ơn và kết thúccuộ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ừanhập, sau đó được đưa trở lại menu [mainmenu] với priority là 2 đểtiếp tục nhập phím khác.
File ketquaxoso.php
Trong file này có các hàm :
__GetKQXS($day,$month,$year) :Để truy vấn vào cơ sở dữ liệu và lấy rakết quả với ngày tháng năm tương ứng.
Ngoài ra còn rất nhiều những hàm khác như kiểm tra tính hợp lệ của thờigian gửi quà tặng, thời gian phải đảm bảo đúng định dạng và không được là thờigian trong quá khứ:
Asterisk là một phần mềm mã nguồn mở nhỏ gọn, linh hoạt, mạnh mẽ nhưngcũng không kém phần phức tạp. Đồ án này mới chỉ đề cập đến hai chức năng đượcsử dụng chủ yếu của Asterisk là Chuyển Mạch Mềm (SoftSwitch) và Lập trình Ứngdụng trên nền Asterisk sử dụng giao diện lập trình Asterisk. Do khuôn khổ của đồán nên còn nhiều vấn đề thú vị khác mà em chưa thể trình bày được.
Các kết quả đã đạt được trong đồ án tốt nghiệp này:
• Làm chủ được hệ thống Linux - Asterisk: cài đặt, cấu hình, quản trị.
• Xây dựng được hai ứng dụng khá hay và hữu ích là tra cứu kết quả xổ số vàđặc biệt là dịch vụ quà tặng âm nhạc–Một dịch vụ mà em rất thích vì ý nghĩacủa nó.
• Hệ thống đảm bảo chất lượng cuộc gọi tốt và ổn định trong mạng local
Tuy nhiên đồ án chỉ dừng lại ở việc test với các Softphone trong cùng mộtmạng LAN nên chất lượng tốt và ổn định, còn chưa thực hiện đối với mạngPSTN nên chưa nắm được chất lượng cuộc gọi trong trường hợp này.
2. Codec (Compressor/De-compressor) là một tập các quy luật được sử dụng đểchuyển đổi các tín hiệu thoại dạng Analog sang tín hiệu số và ngược lại. Cónhiều thuật toán codec để thực hiện chuyển đổi tín hiệu analog sang tín hiệusố dạng nhị phân (0, 1) như G711, GSM, G729… Ứng với mỗi thuật toán cónhững ưu điểm riêng, đặc biệt là việc tối ưu sử dụng băng thông trên đườngtruyền. Mục tiêu cuối cùng là các thuật toán đưa ra phải đảm bảo chất lượngcuộc gọi nhất và tiết kiệm băng thông nhất. G729 là thuật toán codec tốt nhấthiện nay trong hệ thống VoIP. Với hệ thống Asterisk để sử dụng thuật toán
này cần phải mua bản quyền sử dụng vì đây là codec không miễn phí sửdụng.
3. IAX (Inter Asterisk eXchange): IAX là giao thức báo hiệu Voip được pháttriển bởi tác giả của phần mềm Asterisk để khắc phục những hạn chế tronggiao thức SIP. Không giống như giao thức SIP chuyển tải thoại và báo hiệutrên hai kênh khác nhau (out of band), IAX chuyển tải thoại và báo hiệu trêncùng một kênh (in band). IAX giải quyết được vấn đề NAT đề cập trên phầngiao thức SIP. Mặt khác IAX là giao thức tối ưu trong việc sử dụng băng
thông, cho phép nhiều gói dữ liệu thoại trên cùng một IP header, cơ chếchuyển tải nhiều cuộc gọi trên cùng một gói IP được gọi là trung kế(Trunk).
4. PBX (Private Branch Exchange): PBX hay còn gọi là PABX - PrivateAutomatic Branch Exchange là hệ thống tổng đài nội bộ được đặt tại nhàthuê bao, từ Automatic ở đây muốn nói đến là hệ thống tổng đài điện tử tựđộng nhưng hiện nay đa số là tổng đài PBX điện tử tự động nên từ trên thựcsự không còn cần thiết nữa. Hiện nay với việc phát triển mạnh mẽ của côngnghệ VoIP, chúng ta còn có thêm thuật ngữ IP PBX. Đây là hệ thống chuyển
mạch PBX với công nghệ VoIP.5. PSTN (Public Switched Telephone Network): mạng điện thoại chuyển mạch
công cộng
6. TDM (Time Division Multiplexing): Là kỹ thuật ghép kênh phân chia thờigian nhiều tín hiệu có thể truyền đồng thời trên một đường truyền, TDMđược sử dụng chuyển thoại trong hệ thống mạng PSTN. Có hai chuẩn ghépkênh TDM cơ bản là E1 với 30 kênh thoại trên một khung tốc độ 2Mbps vàT1 với 24 kênh thoại tốc độ 1.5Mbps.
7. VoIP (Voice over Internet Protocol): một giao thức truyền tín hiệu giọng nóigói trong giao thức IP đã có sẵn.
8. PCM (Pulse Code Modulation ): thuật toán mã hóa đường truyền của mạngVoIP cũng tương tự như mạng chuyển mạch kênh. PCM là thuật toán có tầnsố lấy mẫu là 8Khz (125ms/mẫu).
9. RTP (Real-time Transport Protocol): là một giao thức internet chuẩn đượcsử dụng rộng rãi trong các ứng dụng thời gian thực như điện thoại Internet,video streaming. Giao thức RTP định nghĩa cách thức cho phép các ứngdụng quản lý việc truyền tải thông tin với thời gian thực (real-timetransmission)
10. RTCP (Real Time Control Protocol): Giao thức điều khiển thời gian thựcđược dùng để gửi các gói tin điều khiển cho những bên tham dự vào cuộcgọi. Chức năng chính của nó là thu nhận được thông tin phản hồi về chất
lượng dịch vụ của RTP.
11. SIP (Session Initiation Protcol ):Giao thức khởi tạo phiên, là giao thức báohiệu điều khiển lớp ứng dụng được dùng để thiết lập, duy trì, kết thúc các
phiên truyền thông đa phương tiện (multimedia)
12. NGN (Next Generation Network ) :Mạng thế hệ mới
13. IVR (Interactive Voice Response) : Tương tác thoại
14. AGI (Asterisk Gateway Interface ) : 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ộngnhiề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 đượcgọ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.