MỞ ĐẦU - o o-Công nghệ thoại qua nền Internet dùng giao thức IP Voice Over IP – VoIP, là một công nghệ mà cho phép ta tạo cuộc gọi bằng cách kết nối băng thông rộng thay vì dùng đường d
Trang 1MỞ ĐẦU
- o
o-Công nghệ thoại qua nền Internet dùng giao thức IP (Voice Over IP – VoIP), là một công nghệ mà cho phép ta tạo cuộc gọi bằng cách kết nối băng thông rộng thay vì dùng đường dây điện thoại sử dụng tín hiệu tương tự (analog)
Công nghệ Voip dựa trên chuyển mạch gói (thay thế công nghệ chuyển mạch kênh) Nó có thể nén và ghép nhiều kênh thoại trên một đường truyền tín hiệu Các tín hiệu này được truyền qua mạng Internet, vì thế có thể giảm giá thành đáng kể Để thực hiện việc truyền tải này, điện thoại IP phải tích hợp sẵn các giao thức báo hiệu chuẩn như SIP hay H.323 để kết nối tới một tổng đài IP của doanh nghiệp hay nhà cung cấp
Để đáp ứng nhu cầu trên,đã có một phần mềm ra đời trên sự kết hợp giữa chuyển mạch VoIP và chuyển mạch TDM Sản phẩm này là một hệ thống chuyển mạch mềm – mã nguồn mở Nó được viết bằng ngôn ngữ C,tích hợp chạy trên nền Linux Đó chính là phần mềm Asterisk Sản phẩm này thực hiện đầy đủ các tính năng của một tổng đài cùng một số tiện ích mới rất hấp dẫn
Asterisk ra đời vào năm 1999 bởi một sinh viên sinh năm 1977 tên là Mark Spencer Anh ta viết phần mềm này ban đầu với mục đích hỗ trợ cho công ty của mình trong việc liên lạc đàm thoại
Asterisk hỗ trợ nhiều giao thức truyền thông khác nhau do sự kết hợp công nghệ hiện đại VoIP và công nghệ PSTN Điều này làm cho nó một công cụ mạnh cho việc xây dựng các gateway và việc chuyển đổi giao thức
Để tìm hiểu thêm về hệ thống phần mềm Asterisk , chúng ta phải hiểu công nghệ Voip và các tiện ích của công nghệ này
Trang 2LỜI CẢM ƠN
- o
o-Trong kì thực tập tốt nghiệp và làm luận văn tốt nghiệp vừa qua,em đã có
cơ hội để áp dụng những kiến thức mà mình đã học vào thực tế Đồng thời, em
đã có thêm những kiến thức cơ bản về kỹ thuật viễn thông, kiến thức về ngôn ngữ lập trình C#
Sau một thời gian làm việc ,với sự hướng dẫn và trợ giúp tận tình của thầy Trần Minh Nhật, em đã hoàn thành đề tài này một cách thuận lợi và gặt hái được một số kết quả khả quan
Em xin chân thành cảm ơn khoa Công nghệ Thông tin II, đã tạo điều kiện thuận lợi và giúp đỡ chúng em hoàn thành tốt khóa luận tốt nghiệp này
Em xin chân thành cảm ơn thầy Trần Minh Nhật – giáo viên hướng dẫn đề tài này, đã chỉ dạy tận tình, giúp đỡ em rất nhiều trong quá trình làm đề tài
Em xin chân thành cám ơn các thầy cô trong khoa Công nghệ thông tin II đã tạo điều kiện tốt cho em hoàn thành đề tài
Em xin chân thành cảm ơn đến các anh chị ở công ty quốc tế Sông Hồng, đã tạo điều kiện và hỗ trợ cho em hoàn thành tốt đề tài trong kì thực tập và luận văn vừa qua
Trên nền tảng những gì đã thực hiện, em sẽ tiếp tục phát triển đề tài này để phần mềm này có thể áp dụng trong thực tế
Tuy em đã cố gắng hoàn thành thật tốt đồ án tốt nghiệp nhưng chắc chắn sẽ không tránh khỏi những thiếu sót
Kính mong quí Thầy Cô và các bạn góp ý để đề tài hoàn thiện hơn
Xin chân thành cảm ơn!
Sinh viên thực hiện
Nguyễn Thanh Tâm
Trang 3MỤC LỤC
MỞ ĐẦU 0
CHƯƠNG 1: TỔNG QUAN VỀ VOIP 1
1.1 Giới thiệu VoIP 1
1.1.1 Khái niệm: 1
1.1.2 Ưu và Khyết của VoIP: 2
1.2 Các thiết bị dùng trong VoIP: 2
1.2.1 VoIP phone 2
1.2.2 Softphone 2
1.2.3 Card giao tiếp với PSTN 2
1.2.4 ATA (Analog Telephone Adaptors) 3
1.3 Ưu điểm sử dụng tổng đài IP-PBX so với PBX truyền thống 4
CHƯƠNG 2: TÌM HIỂU TỔNG ĐÀI ASTERISK 6
2.1 Lí do chọn tổng đài IP 6
2.1.1 Tích hợp dễ dàng 6
2.1.2 Giảm chi phí cuộc gọi 6
2.1.3 Không cần dây điện thoại riêng 6
2.1.4 Không bị khoá bởi nhà sản xuất và mở rộng được 6
2.1.5 Dịch vụ khách hàng và hiệu năng tốt 7
2.1.6 Tính năng mới cập nhật liên tục 7
2.1.7 Kiểm soát tốt hơn nhờ báo cáo đầy đủ 7
2.1.8 Xem tổng quan tình trạng hệ thống hiện tại 7
2.1.9 Di chuyển dễ dàng 7
2.2 Tìm hiểu hệ thống mã nguồn mở Asterisk 7
2.2.1 Vì sao chọn phần mềm Asterisk 7
2.2.2 Giới thiệu Asterisk 8
2.3 Kiến trúc hệ thống 10
2.3.1 Asterisk là thiết bị trung gian 10
2.3.2 Asterisk hỗ trợ nhiều loại điện thoại 10
2.3.3 Hệ thống Asterisk PBX Switching Core 10
2.3.4 Chức năng các API(Application Program Interface) 11
2.4 Tính năng cơ bản 11
2.4.1 Một số chức năng trong tổng đài Asterisk 11
Trang 42.4.2 Một số định dạng file 13
2.5 Các giao thức VoIP trong hệ thống Asterisk 13
2.5.1 IAX(Inter-Asterisk Exchange) 13
2.5.2 SIP 14
2.5.3 H.323 16
2.5.4 MGCP(Media Gateway Control Protocol) 18
2.5.5 Skinny/SCCP 18
2.5.6 UNISTIM 19
2.6 Ngữ cảnh ứng dụng trong tổng đài IP 19
2.6.1 Kết nối IP PBX với PBX 19
2.6.2 Kết nối giữa Server Asterisk 20
2.6.3 Các ứng dụng IVR,Conference Call 20
2.6.4 Phân phối cuộc gọi tự động ACD 21
2.7 Tổ chức thư mục trong hệ thống Asterisk 22
2.7.1 Các thư mục trong hệ thống 22
2.7.2 Các tập tin cấu hình trong hệ thống 24
2.8 Cơ chế FastAGI 24
2.8.1 FastAGI là gì? 24
2.8.2 Hoạt động 25
3.1 Khái niệm: 26
3.1.1 Sơ lược về tiếng nói trong VoIP: 26
3.1.2 Khái niệm về Text To Speech: 26
3.1.3 Lí do chọn Text To Speech 26
3.1.4 Hạn chế của Text To Speech (TTS) 27
3.2 Cấu trúc file âm thanh 27
3.2.1 Khái niệm: 27
3.2.2 Định dạng dữ liệu: 27
3.2.3 Xử lí tập tin wave 28
CHƯƠNG 4: TÌM HIỂU DỊCH VỤ TRA CỨU ĐIỂM TUYỂN SINH 39
4.1 Tổng quan về hệ thống tuyển sinh: 39
4.1.1 Hoạt động: 39
4.1.2 Các thành phần và quá trình hoạt động: 39
4.2 Chức năng của hệ thống: 40
Trang 54.2.1 Tổng quát chức năng 40
4.2.2 Sơ đồ xử lí chức năng 41
4.3 Thiết kế lược đồ dữ liệu quan hệ ERD 42
4.3.1 Các tập thực thể 42
4.3.2 Diagram 42
4.4 Các bảng dữ liệu 43
4.4.1 Danh sách bảng dữ liệu: 43
4.4.2 Mô tả các bảng: 43
4.4.3 Các mối liên hệ 45
4.5 Những thuận lợi và khó khăn của ứng dụng: 46
4.5.1 Thuận lợi 46
4.5.2 Khó khăn 46
CHƯƠNG 5: CÀI ĐẶT VÀ CẤU HÌNH HỆ THỐNG SERVER 47
5.1 Cài đặt các tính năng cơ bản của tổng đài Asterisk 47
5.1.1 Yêu cầu thiết bị: 47
5.1.2 Các bước cài đặt các gói Asterisk phiên bản 1.6.2.20 47
5.1.3 Tải chương trình Asterisk.NET: 48
5.1.4 Cấu hình SIP cho softphone 48
5.2 Cài đặt Sql Server 2005 và tạo các bảng dữ liệu 50
5.2.1 Tại sao chọn Sql Server 2005 50
5.2.2 Bảng dữ liệu 50
5.3 Kêt quả đạt được của việc thực thi tổng đài tự động 53
5.3.1 Cài đặt Server 53
5.3.2 Hoạt động của tổng đài: 53
5.3.3 Quá trình tổng hợp tiếng nói: 62
5.4 Kết luận 63
5.5 Những hạn chế: 64
ĐÁNH GIÁ CHUNG VÀ XU HƯỚNG PHÁT TRIỂN ĐỂ TÀI 65
PHỤ LỤC 67
TÀI LIỆU THAM KHẢO 68
Trang 6DANH MỤC HÌNH ẢNH Chương 1
Hình 1.1 : Thiết bị card phần cứng giao tiếp với PSTN 3
Hình 1.2 : Mô hình các thiết bị kết nối với Adapter 4
Hình 1.3 : Hệ thống tổng đài IP-PBX 5
Chương 2 Hình 2.1 : Mô hình VoIP to PSTN sử dụng tổng đài Asterisk 8
Hình 2.2 : Kiến trúc của Asterik 9
Hình 2.3 : Sơ đồ kết nối giữa tổng đài với các thiết bị 10
Hình 2.4 : Hoạt động của SIP 15
Hình 2.5 : Mô hình điều khiển cuộc gọi H.323 17
Hình 2.6 : Hoạt động của giao thức MCGP 18
Hình 2.7 : Sơ đồ kết nối IP PBX với PBX 19
Hình 2.8 : Sơ đồ kết nối các server Asterisk 20
Hình 2.9 : Các ứng dụng của tổng đài 21
Hình 2.10 : Phân phối cuộc gọi ACD 23
Hình 2.11 : Cấu trúc thư mục trong var 23
Hình 2.12 : Mô hình kết nối của chương trình Asterisk.NET 27
Chương 3 Hình 3.1 : Định dạng chuỗi sóng 28
Hình 3.2 : Cấu trúc tập tin âm thanh 29
Hình 3.3 : Làn song dạng RIFF 30
Hình 3.4 : Định dạng dữ liệu Chunk 33
Hình 3.5 : Làn sóng mẫu Interkind Stereo 34
Hình 3.6 : Định dạng thực tế Chunk 35
Chương 4 Hình 4.1 : Chức năng của ứng dụng tuyển sinh 40
Hình 4.2 : Mô hình tập thực thể 42
Hình 4.3 : Sơ đồ Diagram 42
Chương 5 Hình 5.1 : Cấu hình SoftPhone 51
Hình 5.2 : Cấu hình gọi dịch vụ từ xa 52
Hình 5.3 : Mà hình sau khi đã kết nối Asterisk 53
Hình 5.4 : Cấu hình file Sip 54
Hình 5.5 : Cấu hình file extensions 55
Hình 5.6 : Cấu hình tập tin chia sẻ 55
Hình 5.7 : Khởi động samba 56
Hình 5.8 : Khai báo user chia sẻ 56
Hình 5.9 : Đường dẫn vào server 56
Hình 5.10 : Địa chỉ share tập tin âm thanh 57
Hình 5.11: Kết nối giữa máy server và máy client 58
Hình 5.12 : Script kết nối với server 59
Hình 5.13 : Màn hình đã kết nối dịch vụ 60
Trang 7Hình 5.14 : Xử lí phím số 1 60
Hình 5.15 : Xử lí phím số 2 61
Hình 5.16 :Trường hợp sai phím bấm 62
Hình 5.17: Xử lí ghép âm thanh 62
Hình 5.18: Thư mục đọc file âm thanh từ Text 63
Đánh giá chung Hình1 : Mô hình dịch vụ IVR 65
Trang 8KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
A
ATA : Analog Telephone Adaptors Bộ chuyển đổi điện thoại số
API : Application Programming Interface Giao diện ứng dụng
AGI : Asterisk Gateway Interface Giao diện cổng Asterisk
ACD : Automatic Call Distribution Phân phối cuộc gọi tự động
FXO : Foreign Exchange Office Cổng tiếp nhận đường tín hiệu tương tự
FXS : Foreign Exchange Station Cổng cung cấp đường tín hiệu tương tự
H
HTTP : Hypertext Transfer Protocol Giao thức truyền siêu văn bản
I
IP : Internet Protocol Giao thức Internet
IP-PBX : Internet Protocol- Tổng đài IP
Private Branch Exchange
IAX : Inter-Asterisk eXchange Giao thức chuyển đổi IAX
IVR : Interactive Voice Response Tương tác thoại
ITSP : Internet Telephony Service Provider Nhà cung cấp dịch vụ điện thoại Internet
IETF : Internet Engineering Task Force Cộng đồng quốc tế mở về mạng
ITU : International Telecommunication Union Liên minh Viễn thông quốc tế
ISDN : Interated Services Digital Network Mạng số tích hợp dịch vụ
Trang 9PBX : Private Branch Exchange Tổng đài Nhánh Riêng
PSTN : Public Switched Telephone Network Mạng điện thoại chuyển mạch công cộng
R
RJ-11 : Registered Jack 11 Kết nối các thiết bị điện thoại
RJ-45 : Registered Jack 45 Kết nối các thiết bị trong mạng Ethernet RTP : Real-Time Transport Protocol Giao thức truyền thời gian thực
RSA : Resgister Admission Status Báo hiệu đăng kí, cấp phép, thông tin
trạng thái RFC : Request for Comment Yêu cầu cho ý kiến
RTCP : Real Time Control Protocol Giao thức điều khiển thời gian thực
S
SIP : Session Initiation Protocol Giao thức khởi tạo phiên
SCCP : Signaling connection Control Part Phần điều khiển kết nối tín hiệu
SMTP : Simple Mail Transfer Protocol Giao thức truyền thông tin đơn giản
T
TDM : Time Division Multiplexing Ghép kênh phân chia thời gian
TLS : Transport Layer Securit Giao thức bảo mật lớp truyền tải
TCP : Transport Control Protocol Giao thức điều khiển truyền TCP
TTS: Text To Speech Chuyển văn bản thành tiếng nói
Trang 10U
UDP : User Datagram Protocol Giao thức gói người sử dụng
V
VoIP : Voice over Internet Protocol Tiếng nói qua giao thức Internet
VPN : Virtual Private NetWork Mạng riêng ảo
WAN : Wide Area Network Mạng diện rộng
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ VOIP 1.1 Giới thiệu VoIP
1.1.1 Khái niệm:
VoIP (Voice Over Internet Protocol) là một công nghệ cho phép truyền thoại sử dụng giao thức mạng IP trên cơ sở hạ tầng sẵn có của mạng Internet
VoIP có thể vừa thực hiện mọi cuộc gọi trên mạng điện thoại thông thường vừa có thể truyền dữ liệu trên mạng truyền số liệu Do các ưu điểm về giá thành dịch vụ và sự tích hợp nhiều loại hình dịch vụ nên VoIP hiện nay đã được triển khai rộng rãi
Dịch vụ điện thoại VoIP bao gồm việc số hóa tín hiệu tiếng nói, thực hiện nén tín hiệu số, chia nhỏ các gói nếu cần và truyền gói tin này qua mạng Tại nơi nhận, các gói tin này được ráp lại theo đúng trình tự bản tin và giải mã để phục hồi lại tiếng nói ban đầu
Các cuộc gọi trong VoIP dựa trên cơ sở sử dụng kết hợp chuyển mạch kênh và chuyển mạch gói Trong mỗi loại chuyển mạch đều có ưu và nhược điểm
Với chuyển mạch kênh dành riêng một kênh có tốc độ truyền dẫn cố định (trong mạng PSTN, tốc độ này là 64Kbit/s) do đó
có độ trễ nhỏ và độ chính xác cao nên không thể xảy ra tắc nghẽn
Với chuyển mạch gói, các bản tin được chia thành các gói nhỏ, sử dụng hệ thống lưu trữ và chuyển tiếp các gói thông tin trong nút mạng Đối với loại chuyển mạch gói này không tồn tại khái niệm kênh riêng và băng thông hoàn toàn có thể thay đổi được Tuy nhiên, kỹ thuật này lại cho độ trễ lớn vì trong chuyển mạch này không quy định thời gian mỗi gói tới đích do đó không đáp ứng được tính thời gian thực như trong thoại
Như vậy để truyền dẫn thoại trong môi trường mạng chuyển mạch gói, VoIP phải kết hợp cả ưu điểm của hai loại chuyển mạch kênh và gói
Trang 121.1.2 Ƣu và Khyết của VoIP:
Không thể thực hiện mọi cuộc gọi qua Internet nếu như người gọi không
có trực tuyến trên mạng
Không đảm bảo tính bảo mật
1.2 Các thiết bị dùng trong VoIP:
1.2.1 VoIP phone
Là thiết bị phần cứng kết nối với VoIP giống như máy điện thoại cố định thông thường Tuy nhiên để sử dụng cho VoIP cần phải cấu hình trước khi sử dụng
Một số tính năng khi mua thiết bị điện thoại VoIP:
Low Bandwidth: hỗ trợ cho loại Codec nào, thường hiện nay người ta sử dụng G729
Web Interface: phải có giao tiếp thiết lập cấu hình thân thiện , dễ
1.2.3 Card giao tiếp với PSTN
Để các máy điện thoại nội bộ trong hệ thống Asterisk kết nối và thực hiện cuộc gọi với mạng PSTN, chúng ta cần phải có thiết bị phần cứng tương thích Đó chính là thiết bị của công ty Digium
Trang 13 Thiết bị phần cứng sử dụng cho hệ thống Asterisk do chính tác giả lập công ty Digium phân phối, xuất phát từ ý tưởng phân phối phần mềm Asterisk và hệ thống nguồn mở miễn phí
Hình 1.1: Thiết bị card phần cứng
Thiết bị phần cứng thường ký hiệu bắt đầu bằng cụm từ TDMxyB, trong đó :
x là số lượng port FXS
y là số lượng port FXO
Giá trị tối đa của cả x và y là 4
1.2.4 ATA (Analog Telephone Adaptors)
ATA là thiết bị kết nối với điện thoại Analog thông thường đến mạng VoIP, một thiết bị ATA gồm có hai loại port:
RJ-11 để kết nối với máy analog thông thường
RJ-45 để kết nối với mạng VoIP
ATA là thiết bị FXS chuyển đổi tín hiệu Analog sang tín hiệu số, nó sử dụng cho mạng VoIP để tận dụng thiết bị Analog kết nối VoIP
Thiết bị ATA sử dụng với giao thức IAX được Digium phân phối và thiết bị ATA này được sử dụng rộng rãi với Asterisk có tên gọi là IAXy
Trang 14Hình 1.2: Mô hình các thiết bị kết nối với Adapter
1.3 Ƣu điểm sử dụng tổng đài IP-PBX so với PBX truyền thống
Tận dụng được toàn bộ hạ tầng mạng của đơn vị để truyền thông tin thoại, đơn giản hơn nhiều với PBX truyền thống, phải thực hiện việc đấu nối vật lý đường trung kế giữa hai tổng đài
Quản lý tập trung, thông qua giao diện web quản trị viên có thể giám sát, vận hành, cấu hình từ bất kỳ đâu và bất cứ khi nào
Khả năng nâng cấp hệ thống cao nhất và không giới hạn số lượng người dùng
Tích hợp phần mềm Softphone cài trên máy tính, chỉ cần thêm tai nghe
và mic là biến thành điện thoại IP
Điện thoại IP có thể kết nối về tổng đài tại bất cứ vị trí nào(có mạng là
có thể sử dụng được ngay) trong khi số điện thoại không hề thay đổi, thậm chí qua cả môi trường Internet
Cắt giảm chi phí cuộc gọi đến mức thấp nhất giữa các chi nhánh, văn phòng và cuộc gọi quốc tế khi kết hợp với các nhà cung cấp dịch vụ điện thoại quốc tế (ITSP)
Trang 15Hình 1.3: Hệ thống một tổng đài IP-PBX
Trang 16CHƯƠNG 2: TÌM HIỂU TỔNG ĐÀI ASTERISK 2.1 Lí do chọn tổng đài IP
2.1.1 Tích hợp dễ dàng
Tổng đài dễ cài đặt hơn so với hệ thống điện thoại thông thường
Thiết lập các thông số thông qua giao diện web, không cần cài đặt bất kì phần mềm phức tạp nào để vận hành nó Do đó, bất kì ai có hiểu biết về máy tính đều có thể cài đặt hệ thống PBX.So với hệ thống điện thoại truyền thống thì nhân viên cài đặt phải được huấn luyện về cách vận hành hệ thống đó
2.1.2 Giảm chi phí cuộc gọi
Bạn sẽ tiết kiệm được rất nhiều chi phí nếu sử dụng dịch vụ VoIP đối với cuộc gọi đường dài hay gọi ra quốc tế
Kết nối điện thoại dễ dàng giữa các văn phòng hay chi nhánh và được gọi nội mạng miễn phí
2.1.3 Không cần dây điện thoại riêng
Cho phép bạn kết nối điện thoại phần cứng trực tiếp vào cổng mạng tiêu chuẩn của máy tính – có thể chia sẻ với máy tính bên cạnh
Điện thoại này dạng phần mềm nên được cài trực tiếp lên máy tính , không cần lắp đặt và duy trì một dây riêng cho hệ thống điện thoại
Linh động trong việc mở rộng hệ thống và thêm người dùng Nhất là trong trường hợp bạn chuyển đến văn phòng mới và chưa kéo dây điện thoại thì bạn có thể tiết kiệm bằng cách lắp đặt một mạng máy tính
2.1.4 Không bị khoá bởi nhà sản xuất và mở rộng được
Hệ thống VOIP là hệ thống tiêu chuẩn mở, nó sử dụng giao thức SIP Bạn có thể dùng bất kì điện thoại VOIP chuẩn SIP hay phần cứng VOIP gateway nào
So với hệ thống điện thoại thông thường, để phát triển lớn hơn (như thêm đường dây,thêm số máy nhánh), ta phải mở rộng thêm các mô đun, nâng cấp những phần cứng đắt tiền hay có khi là làm mới hệ thống hoàn toàn
Với một máy tính bình thường, ta có thể quản lí một lượng lớn các đường dây điện thoại và các số máy nhánh con.Nếu muốn mở rộng ta chỉ cần thêm các điện thoại mới vào trong mạng của bạn
Trang 172.1.5 Dịch vụ khách hàng và hiệu năng tốt
Dễ tích hợp với các ứng dụng thương mại do các cuộc gọi dựa trên máy tính
Các cuộc gọi đi có thể thực hiện trực tiếp từ Outlook , không cần phải gõ
số điện thoại vào
Tất cả tính năng đều được thực hiện dễ dàng từ một giao diện người dùng với các cửa sổ thân thiện(nhất là dùng trong hội đàm)
2.1.6 Tính năng mới cập nhật liên tục
Hệ thống VOIP dựa trên phần mềm nên các nhà phát triển có thể thêm,cải thiện các tính năng một cách dễ dàng
Các chức năng cập nhật liên tục như trả lời tự động,thư thoại,cuộc gọi chờ,danh sách đen…
2.1.7 Kiểm soát tốt hơn nhờ báo cáo đầy đủ
Các thiết lập VOIP lưu trữ thông tin cuộc gọi đến và cuộc gọi đi trong một cơ sở dữ liệu trên máy chủ của bạn Vì thế, bạn sẽ cập nhật đầy đủ
về chi phí gọi và lưu lượng gọi
2.1.8 Xem tổng quan tình trạng hệ thống hiện tại
Thông qua trình duyệt web, bạn có thể chỉ định người dùng nào có thể xem tình trạng của hệ thống ở dạng đồ hoạ
Nếu với hệ thống thông thường thì bạn phải cung cấp các máy điện thoại với hệ thống đắt tiền để biết những gì đang diễn ra trong máy điện thoại
Tiết kiệm chi phí ( chi phí thấp hơn so với các tổng đài khác)
Asterisk được xem như là một tổng đài PBX (Private Branch eXchange) và tích hợp nhiều tính năng mới
Ngoài những tính năng của một tổng đài PBX thông thường, Asterisk còn được tích hợp cả chuyển mạch TDM và chuyển mạch VoIP, có khả năng mở rộng đáp ứng nhu cầu cho từng ứng dụng như mở rộng giao tiếp với mạng PSTN (Public Switched Telephone Network)
Trang 18 Asterisk có thể chạy trên các hệ điều hành khác như: Mac OS X, Linux,FreeBSD, OpenBSD và Microsoft Windown…
Với một máy tính đã cài hệ điều hành (một trong các hệ điều hành nói trên, ở đây ta xét hệ điều hành Linux) và có thêm phần mềm Asterisk đã cấu hình, khi đó máy tính này sẽ có đầy đủ tính năng của một tổng đài điện thoại và có thể hơn thế
2.2.2 Giới thiệu Asterisk
Asterisk là phần mềm nguồn mở,một hệ thống chuyển mạch mềm, được viết bằng ngôn ngữ C, ra đời năm 1999 bởi Mark Spencer,
Phần mềm đầu tiên được thiết kế và triển khai trên GNU/Linux nền x86 (của Intel)
Asterisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại Là server xử lí đầy đủ các chức năng cuộc gọi, thực hiện tất cả các tính năng của tổng đài PBX
Tích hợp giao tiếp với mạng PSTN và mạng VOIP cho phép gọi ra bất
cứ số điện thoại nào trên mạng PSTN
Hình 2.1: Mô hình VoIP-to-PSTN sử dụng tổng đài Asterisk
Ứng dụng cho điện thoại: chuyển mạch cuộc gọi, cuộc gọi hội nghị, voicemail, chuyển hướng cuộc gọi, …
Một Asterisk server được kết nối tới một mạng vùng nội hạt sẽ điều khiển các điện thoại trong mạng kết nối đến mạng khác, các điện thoại trong mạng có thể thực hiện cuộc gọi và kết nối Internet thông qua Asterisk server
Trang 19 Cổng FXS dùng để Asterisk server điều khiển các điện thoại tương tự trong nội hạt Cổng FXO và kênh T được dùng để kết nối giữa Asterisk server với mạng PSTN Thuê bao trong mạng PSTN thực hiện cuộc gọi đến các thuê bao được quản lý bởi Asterisk server, các thuê bao của Asterisk cũng có thể thực hiện cuộc gọi đến thuê bao trong mạng PSTN
Hình 2.2: Kiến trúc của Asterisk
Khi khởi động hệ thống Asterisk thì Dynamic Module Loader thực hiện nạp driver của thiết bị và bắt đầu nạp các giao thức
Hiện nay hệ thống Asterisk đang được phát triển mạnh, nhiều doanh nghiệp, công ty đã và đang triển khai hệ thống tạo.Họ tạo liên lạc bên trong và ra cả mạng ngoài thông qua mạng máy tính, gọi điện thoại
Trang 20Hình 2.3: Sơ đồ kết nối giữa tổng đài và các thiết bị
Asterisk không chỉ giao tiếp, kết nối giữa các điện thoại với nhau mà còn có thể mở rộng kết nối đến các tổng đài khác, với IP Phone và nhiều dịch vụ như: Softswitch, Media Gateway, Voicemail Services,
Conference Server, Music on hold…
Asterisk là một phần mềm nguồn mở, miễn phí, có độ tin cậy cao
2.3 Kiến trúc hệ thống
2.3.1 Asterisk là thiết bị trung gian
Thiết bị liên kết công nghệ thoại và Internet
Được ứng dụng để kết nối điện thoại ,gói thoại đến một dịch vụ khác
Asterisk có độ tin vậy cao và dễ dàng triển khai cho các hệ thống (từ hệ thống nhỏ đến hệ thống lớn)
2.3.2 Asterisk hỗ trợ nhiều loại điện thoại
Hỗ trợ các công nghệ thoại như VoIP,SIP,H.323,IAX
Kết nối với hầu hết loại điện thoại truyền thống mạng ISDN qua luồng T1 và E1 cùng các API được nạp vào hệ thống
2.3.3 Hệ thống Asterisk PBX Switching Core
Các cuộc gọi được thực hiện tuỳ vào kế hoạch quay số
Chức năng Application Launchar để rung chuông thuê bao, kết nối với hộp thư thoại hoặc gọi ra đường trung kế…
Trang 21 Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao như: lập thời biểu và quản lý các cuộc gọi đến – gọi ra ngoài Đây là các chức nă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ác giao tiếp như: SIP, Zaptel or IAX Mọi cuộc gọi vào và ra ngoài đều được thực hiện thông qua các giao tiếp trên Vì thế hệ thống Asterisk phải đảm trách nhiệm vụ liên kết các giao tiếp khác nhau đó để xử lý cuộc gọi
2.3.4 Chức năng các API(Application Program Interface)
Codec translator API: các hàm đảm nhiệm thực thi và giải nén các chuẩn khác nhau như: GMS, G723, Mu-Law…
Asterisk Channel API : giao tiếp với các kênh liên lạc khác nhau, đây là đầu mố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, ISDN, 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, AU…
Asterisk Aplication API : bao gồm tất cả các ứng dụng được thực thi trong hệ thống Asterisk như: cuộc gọi hội nghị, VoiceMail, CallerID… Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tương tự 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ạp với một số ngôn ngữ như PHP hay Perl
2.4 Tính năng cơ bản
2.4.1 Một số chức năng trong tổng đài Asterisk
2.4.1.a Voice mail - hộp thƣ thoại
Cho phép hệ thống nhận các thông điệp tin nhắn thoại
Mỗi máy điện thoại được khai báo trong hệ thống cho phép khai báo thêm chứa năng hộp thư thoại
Khi số điện thoại bận hay ngoài vùng phủ sóng thì hệ thống định hướng trực tiếp đến các cuộc gọi đến hộp thư thoại tương ứng đã khai báo trước
Voice mail cung cấp cho người sử dụng nhiều lựa chọn như: xác nhận password khi truy cập vào,gửi mail báo có thông điệp mới đến
Trang 222.4.1.b Call Forwarding – chuyển cuộc gọi
Cho phép chuyển mộ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ển 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
2.4.1.c Caller ID – hiển thị số gọi đến
Cho phép ta xác nhận số thuê bao gọi đến,dựa vào đó ta có thể biết mà tiếp nhận hay không tiếp nhận cuộc gọi đến từ phía hệ thống
Chức năng này rất hữu dụng cho việc ta muốn biết chính xác cuộc gọi đến từ ai và ngăn được một số cuộc gọi ngoài ý muốn
2.4.1.d Automated attendant – tương tác thoại
Chức năng này ứng dụng trong thực tế rất nhiều và thân thiện với người dùng
Một số trường hợp như khi gọi đến đường dây nóng một công ty,cơ quan…ta sẽ nghe thông điệp:”Chào mừng bạn đến với công ty A, bạn vui lòng bấm phím 1 để gặp phòng nhân sự,bấm phím 2 để gặp phòng kinh doanh…”
Các dịch vụ xem điểm thi,xem tỉ số trận bóng đá,xem kết quả sổ số…đều thực hiện nhờ chức năng tương tác thoại IVR
Với chức năng này, hệ thống sẽ định hướng cuộc gọi theo mong muốn
2.4.1.e Time and Date
Cuộc gọi được định hướng đến một số điện thoại hay một chức năng nào
đó vào từng thời điểm mà ta qui định trong tổng đài
Chức năng rất hữu dụng trong các công ty muốn kiểm soát nhân viên Chẳng hạn,trong công ty A giám đốc chỉ cho phép nhân viên dùng điện thoại trong giờ hành chính còn ngoài giờ thì sẽ hạn chế hoặc không cho gọi ra ngoài
2.4.1.f Call Parking
Chức năng cho phép chuyển cuộc gọi có quản lí
Với chức năng này ta phải có một số điện thoại trung gian và hai thuê bao có thể gặp nhau khi thuê bao được gọi nhấn vào số điện thoại mà thuê bao chủ đang chờ trên đó và từ đây có thể đàm thoại với nhau
Chẳng hạn như, khách hàng muốn gặp giám đốc nhưng khi gọi vào công ty, khách hàng sẽ gặp thư kí trước và sau đó thư kí sẽ nối đường dây vào cho giám đốc
Trang 232.4.1.g Remote call pickup
Chức năng cho phép ta có thể nhận cuộc gọi từ máy điện thoại khác đang rung chuông
2.4.1.h Privacy Manager
Tính năng này qui định điện thoại của ta chỉ được gọi đến những số cố định nào đó (được lập trình sẵn trong hệ thống), những số ngoài danh sách định sẵn sẽ không thực hiện được
Chẳng hạn, khi một chủ doanh nghiệp xây dựng hệ thống điện thoại nhưng không muốn nhân viên mình gọi ra ngoài trò chuyện với bạn bè hay dùng trong việc riêng
2.4.1.i Backlist
Giống chức năng của Privacy Manager nhưng cung cấp thêm một tính năng nữa.Đó là những máy điện thoại nằm trong danh sách này sẽ không được gọi đến máy của bạn
Tính năng này hữu dụng trong trường hợp bạn thường xuyên bị quấy rối điện thoại
Với những tính năng trên cho thấy sự đa dạng về dịch vụ của hệ thống tổng đài Asterisk Tuy nhiên, đó chỉ là các tính năng cơ bản,bạn có thể nâng cấp các tính năng cao cấp hơn bằng việc tích hợp thêm một số sản phẩm phần cứng của nhà cung cấp dịch vụ thoại IP
2.4.2 Một số định dạng file
Raw : dữ liệu 16 bit tuyến tính
Pcm: dữ liệu 8 bit
Vox : dữ liệu 4 bit IMA-ADPCM
Wav : file wav tuyến tính 16 bit ở 8 KHz
Wav : file wav nén GSM ở 8 KHz
Gsm: dữ liệu nén GSM
G723 : định dạng g723 đơn giản với nhãn thời gian
2.5 Các giao thức VoIP trong hệ thống Asterisk
Trang 24 IAX được phát triển bởi Digium với mục đích giao tiếp với các server Asterisk khác, vì thế nó được gọi là Inter-Asterisk eXchange IAX là giao thức truyền tải (giống như SIP), sử dụng port UDP 4569 cho cả kênh tín hiệu lẫn dòng dữ liệu RTP
IAX có khả năng kết hợp lại nhiều phiên kết nối thành một dòng dữ liệu duy nhất Việc kết hợp này làm tăng khả năng sử dụng băng thông Thêm vào đó việc sử dụng một header chung duy nhất làm giảm thời gian overhead cho mỗi kênh riêng lẽ Giao thức này thích hợp khi có nhiều kênh kết nối giữa hai đầu cuối
Vì IAX được tối ưu hóa cho thoại, nên trên thực tế nó không ưu việt khi truyền tín hiệu video Tuy nhiên, vì nó là một giao thức mở, nên việc mở rộng dành cho các loại dữ liệu khác ngoài thoại là điều hoàn toàn có thể
Về khía cạnh bảo mật, IAX có khả năng nhận thức bằng ba cách khác
nhau như sau:
Plain text
Mã hóa MD5
Mã hóa trao đổi khóa RSA
Không mã hóa phần header giữa hai đầu cuối Có nhiều giải pháp sử dụng mạng riêng ảo (VPN) và các phần mềm mã hóa khác đã được sử dụng, đòi hỏi đầu cuối phải thiết lập trước các phương pháp tunnel và
hoạt động
Trong tương lai, IAX có thể mã hóa dòng dữ liệu giữa hai đầu cuối sử dụng việc trao đổi khóa RSA hoặc trao đổi hóa động tại thời điểm thiết lập cuộc gọi Điều này rất hấp dẫn vì nó có tính bảo mật khá cao, đặc
biệt trong các lĩnh vực đòi hỏi tính bảo mật như ngân hàng
IAX2 được thiết kế để tương thích với các thiết bị sử dụng giao thức NAT Việc sử dụng duy nhất một port UDP cho cả tín hiệu báo hiệu và truyền dẫn dẫn đến tăng cườg tính năng bảo mật của firewall Điều này
làm cho IAX là một trong các giao thức bảo mật tốt nhất cho mạng
Trang 25 SIP được phát triển bởi IETF vào tháng 2-1996 Ban đầu SIP chỉ có chức năng yêu cầu thiết lập cuộc gọi Vào tháng 3-1999, phiên bản thứ
11 có tên gọi là SIP RFC 2543 ra đời
SIP được coi như là giao thức thông dụng của VoIP Tất cả các user và doanh nghiệp đều có xu hướng hỗ trợ SIP
Ngày nay,SIP hỗ trợ thêm cả những chức năng không có trong VoIP như video, âm nhạc và các dịch vụ multimedia thời gian thực khác
Hình 2.4: Mô hình hoạt động SIP
Yêu cầu SIP có 6 loại:
INVITE : thiết lập phiên
ACK: xác nhận yêu cầu invite
BYE : kết thúc phiên
CANCEL: huỷ bỏ việc thiết lập phiên
REGISTER: trao đổi thông tin địa điểm người dùng (bao gồm tên máy,IP)
OPTIONS : trao đổi các thông tin về khả năng của các điện thoại SIP để gọi và nghe trong phiên
Phản hồi SIP : các yêu cầu SIP được trả lời bằng các phản hồi SIP và có
6 loại phản hồi:
Trang 26 1xx = phản hồi thông tin
2xx = phản hồi thành công
3xx = phản hồi chuyển hướng
4xx = yêu cầu bị thất bại
5xx = lỗi máy chủ
6xx = thất bại toàn cục
DoS (Denial of Service) được xem như phương thức tấn công thông dụng nhất trên mạng VoIP Một phiên tấn công DoS sẽ diễn ra khi có một số lượng lớn các lời mời INVITE không hợp lệ đến proxy server để làm quá tải hệ thống SIP có một vài phương thức để giảm thiểu tác động của DoS nhưng không thể hoàn toàn phòng ngừa nó
Một lược đồ hỗ trợ tính bảo mật được cài đặt thêm bởi SIP là mật mã phương thức truyền tải (TLS- Transport Layer Security) Nó được sử dụng để thiết lập kết nối giữa người gọi và domain Yêu cầu được gởi một cách bí mật đến đầu cuối, dựa trên các chính sách bảo mật của mạng Lưu ý rằng phương thức mật mã không nằm trong khả năng của SIP và phải được kết hợp một cách độc lập
SIP và NAT: Một trong những vấn đề lớn nhất khi triển khai SIP là truyền tải thông qua lớp NAT Bởi vì SIP mật mã thông tin địa chỉ trong cấu trúc khung của nó NAT ở lớp mạng sẽ không nhận đúng địa chỉ này.Vì thế dòng dữ liệu sẽ không được truyền tải đúng như mong muốn Như vậy, các firewall được tích hợp chức năng NAT sẽ loại bỏ các kết nối SIP này
2.5.3 H.323
H323 được phát triển bởi ITU từ tháng 5-1996, để hỗ trợ truyền thoại, video, dữ liệu ,fax… trong khi mạng IP vẫn duy trì kết nối với mạng PSTN truyền thống Từ thời điểm đó, H323 đã có một vài phiên bản với các tính năng bổ sung cho phép nó hoạt động trong một mạng thuần VoIP và các mạng phân bố khác
Dù có nhiều tranh cãi xung quanh việc sử dụng H323 hay là SIP.Nhưng trên thực tế mạng VoIP, H323 có vài trò cao nhất còn trên hệ thống Asterisk, SIP vẫn là sự lựa chọn số một
Hai phiên bản của H323 được hỗ trợ trong Asterisk được hỗ trợ bởi 2 module chan_h323.so và chan_oh323.so
Trang 27 Về khía cạnh bảo mật, H323 là một giao thức có tính bảo mật tương đối cao.Vì H323 sử dụng RTP để kết nối media, nó không hỗ trợ mật mã Việc sử dụng VPN hay các phương pháp tunnel khác giữa đầu cuối là cách thức thông dụng nhất để đảm bảo tính bảo mật Tất nhiên là nó cũng gây ra một vài vấn đề Khi VoIP được sử dụng cho các lĩnh vực đòi hỏi tính bảo mật cao như ngân hàng, đòi hỏi giao thức VoIP phải hỗ trợ một phương pháp mật mã mạnh
H323 cũng gặp những vấn đề tương tự như SIP khi triển khai với NAT Phương pháp đơn giản nhất là cho forward những port nhất định qua thiết bị tích hợp NAT đối với các client nội bộ Để tiếp nhận cuộc gọi, TCP port 1720 phải luôn được forward Thêm vào đó, port UDP cho các
dữ liệu RTP và RTCP cũng phải được forward Những client cũ như MS Netmeeting cũng yêu cầu forward port TCP cho việc tunnel của giao thức H245
Nếu có một số lượng các client đằng sau thiết bị có tích hợp NAT, chúng ta phải sử dụng gatekeeper chạy proxy mode Gatekeeper sẽ cần một Interface liên lạc với một mạng IP subnet và mạng Internet H323 client trên mạng riêng sẽ đăng ký đến gatekeeper, sau đó gatekeeper sẽ gọi cuộc gọi thay mặt cho client Các client bên ngoài muốn gọi bên trong cũng phải thực hiện thủ tục đăng ký đến proxy server
Hình 2.5: Mô hình điều khiển cuộc gọi H.323
Trang 28 Vào thời điểm hiện tại, Asterisk không thể đóng vai trò gatekeeper, chúng ta phải sử dụng các ứng dụng độc lập như Open H323
Gatekeeper
2.5.4 MGCP(Media Gateway Control Protocol)
MGCP được thiết kế để đơn giản hóa thiết bị đầu cuối Nó được định nghĩa bởi IETF
MGCP được tiến hành khá nhanh nhưng không có tính khả dụng bằng SIP và IAX
Việc thực hiện xử lý đều được tiến hành tại media gateway và call agent
Không giống như SIP, MGCP sử dụng cấu trúc tập trung Cuộc gọi MGCP không thể được tiến hành trực tiếp mà phải đi qua controller
Hình 2.6 : Giao thức MGCP
Asterisk hỗ trợ MGCP qua module chan_mgcp.so và đầu cuối được định nghĩa thông qua file cấu hình mgcp.conf Bởi vì Asterisk cung cấp các cuộc gọi cơ bản nên nó không thể giả lập MGCP phone
Nếu có một MGCP phone, chúng ta có thể sử dụng chúng với Asterisk Tuy nhiên không thể xem MGCP phone như một sản phẩm của hệ thống Asterisk vì nó đã có những chuẩn riêng
2.5.5 Skinny/SCCP
Là giao thức mặc định cho các đầu cuối của Cisco Call Manager PBX
Skinny được hỗ trợ bởi Asterisk Nếu chúng ta kết nối Cisco phone đến Asterisk, thông thường chúng ta mặc định sử dụng giao thức SIP
Trang 292.6 Ngữ cảnh ứng dụng trong tổng đài IP
2.6.1 Kết nối IP PBX với PBX
Một ngữ cảnh đặt ra ở đây như sau :”Hiện tại công ty đã trang bị hệ thống PBX bây giờ 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 việc đó 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
Hình 2.7: Sơ đồ kết nối IP PBX với PBX
Ngoài ra để tăng khả năng liên lạc với mạng PSTN và VoIP khác, Công
Ty sẽ đăng ký kết nối dịch vụ với nhà cung cấp dịch vụ VoIP
Trang 302.6.2 Kết nối giữa Server Asterisk
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
Hình 2.8 : Sơ đồ kết nối các server Asterisk
Ví dụ công ty Mẹ có trụ sở đặt tại nước Mỹ và có các Chi nhánh đặt tại Việt Nam với hai địa điểm là Hà Nội và thành phố Hồ Chí Minh Thông qua mạng WAN của công ty, các cuộc gọi nội bộ giữa các vị trí khác nhau được kết nối, và sẽ giảm chi phí đáng kể
Trang 31Hình 2.9 : Các ứng dụng của tổng đài IP
2.6.4 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
Chức năng được ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hổi từ phía khách hàng
Với chức năng này, hệ thống tổng đài sẽ bớt tình trạng tắt nghẽn khi có nhiều cuộc gọi cùng lúc
Hình 2.10: Phân phối cuộc gọi ACD
Trang 32 Giả sử một Công ty hệ thống điện thoại có khả năng tiếp nhận cùng một lúc 10 cuộc gọi,nếu có thêm cuộc gọ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ín hiệ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 hay do asterisk cung cấp và khi nào một trong mười số điện thoại đang gọ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ụ: dịch vụ hỗ trợ thông tin 1080, dịch vụ hẹn giờ 116 của Bưu Điện, dịch vụ hỗ trợ khách hàng của các tổng đài điện thoại
Cd /usr/lib/asterisk/modules/
Chứa tất cả các module được khởi động bởi ASTERISK Các ứng dụng chương trình, codecs, formats, và các kênh thoại Mặc định ASTERISK sẽ khởi động tất cả các modules lúc khởi động
Cd /var/lib/asterisk
Chứa đựng tập tin astdb và các thư mục con khác Tập tin astdb chứa thông tin về cơ sở dữ liệu của ASTERISK bao gồm các thư mục chính:
agi-bin/ : Chứa các custom scripts, như là các ứng dụng AGI
Firmware : Chứa các thông tin về các thiết bị gắn kết với ASTERISK
mohmp3 : Chứa tập tin mp3 cho chức năng Music on Hold
Trang 33 sounds : Tất cả các thông báo từ hệ thống ASTERISK đều nằm trong thư mục sounds
Cd /var/spool/asterisk/
Chứa một số thư mục con như outgoing/, qcall/, tmp/, và voicemail/
Hình 2.11: Cấu trúc thư mục var
Thư mục tmp/ được dùng để lưu trữ các thông tin tạm thời cho các quá trình như sao chép, hoặc ngăn cản hai quá trình ghi và đọc tập tin cùng một lúc
Tất cả các voicemail và các lời chào đều chứa trong thư mục voicemail
Trang 342.7.2 Các tập tin cấu hình trong hệ thống
Các file cấu hình cho hệ thống asterisk đều nằm tại thư mục
Tuy nhiên, 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
Một số file conf quan trọng
Extensions.conf : file chứa dial plan
Sip.conf : dùng để cấu hình giao thức SIP
Iax.conf : dùng cấu hình các kênh truyền của giao
FastAGI vẫn là một trong những lựa chọn thay thế tốt nhất để xây dựng các ứng dụng Asterisk, tách các ứng dụng riêng của mình, nhân rộng trên nhiều ứng dụng máy chủ FastAGI
Để kết nối với một giao diện AGI /API interfaces,ta phải có một số thư viện để kết nối Chúng bao gồm:
Trang 35 Asterisk NET hỗ trợ cả hai giao diện đó Asterisk cung cấp cho kịch bản này:Các giao thức FastAGI và quản lý API Việc thực hiện FastAGI hỗ trợ tất cả các lệnh có sẵn từ Asterisk
Link down : http://sourceforge.net/projects/asterisk-dotnet/
Hình 2.12: Mô hình kết nối của chương trình Asterisk.NET
Trang 36CHƯƠNG 3: TÌM HIỂU CHỨC NĂNG TEXT TO SPEECH 3.1 Khái niệm:
3.1.1 Sơ lược về tiếng nói trong VoIP:
Là công cụ để diễn đạt ý nghĩ và giao tiếp giữa người với người.Tiếng nói là một sự kết hợp của rất nhiều âm thanh khác nhau
Trong lĩnh vực viễn thông , ta có cụm từ “voice over IP” Đó là “tiếng nói qua giao thức Internet” Nói đến công nghệ tiếng nói qua IP là nói đến việc truyền dẫn tiếng nói qua các mạng lưới hoạt động dựa trên mạng internet Ban đầu giao thức Internet (Internet Protocol - IP) được thiết kế để nối mạng dữ liệu và sau khi vận hành thành công, giao thức
đã được áp dụng vào việc nối mạng tiếng nói
Công nghệ tiếng nói qua IP (VoIP) có thể dễ dàng hỗ trợ các nhiệm vụ
và đáp ứng các dịch vụ mà khi sử dụng hệ thống PSTN truyền thống có thể sẽ phức tạp hay tốn kém
3.1.2 Khái niệm về Text To Speech:
Text To Speech (kí hiệu TTS) là quá trình chuyển dạng văn bản dạng text sang tiếng nói
TTS được phân loại như sau:
Nối từ (Concatenated Word):
Là hệ thống chứa những từ đã được ghi âm sẵn Khi nhận được một chuỗi văn bản cần đọc, hệ thống tách các từ trong chuỗi này
ra Sau đó, tìm các từ này trong hệ thống từ ghi âm sẵn Cuối cùng, ta kết hợp các từ tương ứng trong chuỗi lại và phát âm thành câu
Hai âm tố(Diphone Concatenation):
Là phương pháp nối lại những đoạn âm thanh ngắn đã được số hoá
và tạo ra âm thanh liên tục Mỗi diphone bao gồm hai âm vị : một
âm vị bắt đầu và một âm vị kết thúc
Tổng hợp:
Là phương pháp tạo âm giống giọng con người với sự mô phỏng
về chiều dài,cổ họng,khoang miệng…Với kĩ thuật này, ta có thể thay đổi chất lượng giọng ,tạo ra âm trầm bổng khác nhau
3.1.3 Lí do chọn Text To Speech
Thuận tiện cho việc đọc văn bản động, nhất là các cụm từ ngữ ngắn và luôn thay đổi liên tục mà ta không thể ghi âm hết tất cả
Trang 37 Khi đọc lên văn bản hay số liệu sẽ giúp người sử dụng có thể nghe lại văn bản của mình và phát hiện lỗi khi gõ bàn phím
Cung cấp những phản hồi rõ ràng và thông báo cho người dùng bằng âm thanh phát ra Người dùng có thể nghe và đáp ứng lại thông báo
Ứng dụng này rất thiết thực và hữu ích trong cuộc sống như: hộp thư thoại, các tổng đài trả lời tự động,các đường dây nóng 1900xxx…
3.1.4 Hạn chế của Text To Speech (TTS)
Chất lượng giọng chưa tốt đôi khi khó nghe nếu đọc cụm từ dài Vì TTS thực chất là ta phải nối từng từ lại với nhau để tạo thành 1 câu dài Nó là giọng đọc tổng hợp các từ ngữ với các dấu nhấn,nhịp ngắt,trọng âm,thời gian đọc…
Biểu cảm cảm xúc như chấm than,chấm hỏi lên xuống giọng sẽ không đáp ứng thật như con người
Có thể bị lỗi phát âm từ sai do đặc điểm phát âm của từng vùng trong nước
3.2 Cấu trúc file âm thanh
3.2.1 Khái niệm:
Tâ ̣p tin âm thanh là mô ̣t da ̣ng tâ ̣p tin dùng để lưu trữ dữ liê ̣u âm thanh số (dạng sóng ) và nó là một trong những định dạng phổ biến nhất của hệ điều hành Windows
Tâ ̣p tin wave thuô ̣c chuẩn RIFF ( Resource Interchange File Format - dạng tập tin tài nguyên có thể trao đổi)
Đặc điểm của những tập tin thuộc chuẩn RIFF đó là nó sẽ nhóm nội dung của tâ ̣p tin thành các khối riêng biệt Mỗi một khối sẽ gồm một header (dùng để qui định kiểu và kích thước của khối ) và các byte dữ liê ̣u
Tập tin wave có hai dạng là dạng nén và dạng không nén (dạng chuẩn).Vì thế trong đề tài này tôi chỉ đề cập đến dạng chuẩn của tập tin wave tức là dạng không nén
Trang 38 Các byte sau đây là các byte ký tự ASCII tạo nên các chuỗi văn bản Đây là định dạng được sử dụng cho các chuỗi Pascal
7 'E' 'X' 'A' 'M' 'P' 'L' 'E'
Hình 3.1: Định dạng chuỗi sóng
3.2.3 Xử lí tập tin wave
Là một dạng tập tin dùng để lưu trữ dữ liệu âm thanh số(dạng sóng) và
nó là một trong những định dạng phổ biến nhất của hệ điều hành Windows
Một file RIFF chứa một hay nhiều loại chunks.Mỗi chunk gồm có loại chunk và dữ liệu theo sau loại chunk đó,đồng thời chứa con trỏ để trỏ đến chunk kế tiếp
Cấu trúc file âm thanh gồm ba khối: khối mô tả dạng RIFF,khối thuộc tính “fmt “ và khối dữ liệu “data” trong đó khối thuộc tính “fmt” và khối
dữ liệu “data” là 2 khối con của khối mô tả dạng RIFF
Trang 39Hình 3.2: Cấu trúc tập tin âm thanh Khối mô tả dạng RIFF:
Khối này xác định dạng RIFF và có kích thước là 12 byte gồm các trường