Báo cáo Thực tập tốt nghiệp Đại học
MỤC LỤC
Mục lục
Báo cáo Thực tập tốt nghiệp Đại học
DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH
Hình 1.1 : Hệ thống của tổng đài IP-PBX
Hình 2.1: Cổng VoIP-to-PSTN bằng cách sử dụng Asterisk
Hình 2.2: Kiến trúc của Asterisk
Hình 2.3.: Sơ đồ tổng quát hệ thống
Hình 2.4: Mô hình hoạt động SIP
Hình 2.5: Mô hình điều khiển cuộc gọi H.323
Hình 2.6 : Giao thức MGCP
Hình 2.7: Kết nối IP PBX với PBX
Hình 2.8 : Kết nối các server Asterisk
Hình 2.9 : Các ứng dụng của tổng đài IP
Hình 2.10 : Phân phối cuộc gọi ACD
Hình 3.: Cấu trúc thư mục var
Hình 3.2: Mô hình AMI
Hình 3.3: Mô Hình kết nối CSDL
Hình 3.4: Mô hình hệ thống AGI
Hình 3.5: Mô hình quản lí với CSDL và web.
Hình 3.6 : Mô hình hoạt động của FastAGI
Hình 3.7: Mô hình kết nối của Asterisk.NET
Hình 4.1 Script thực thi AGI
Hình 5.1: Tạo âm thanh
Hình 5.2 : Gọi vào file âm thanh
Hình 5.3: Hàm TextToSpeech
Hình 5.4: Softphone 3CX
Hinh 5.5 : Cấu hình Softphone
Hình 5.6 : Kết nối server bằng Putty
Hình 1: Mô hình hệ thống hoàn chỉnh.
M
MGCP : Media Gateway Control Protocol
thông
MD5 : Message-Digest algorithm 5
Bộ chuyển đổi điện thoại số
Giao diện ứng dụng
Giao diện cổng Asterisk
Phân phối cuộc gọi tự động
Đồ họa máy tính quốc tế
Cơ sở dữ liệu
Cổng tiếp nhận đường tín hiệu tương
Cổng cung cấp đường tín hiệu tương
Giao thức truyền siêu văn bản
Giao thức Internet
Tổng đài IP
Giao thức chuyển đổi IAX
Tương tác thoại
Nhà cung cấp dịch vụ điện thoại
Cộng đồng quốc tế mở về mạng
Liên minh Viễn thông quốc tế
Mạng số tích hợp dịch vụ
Giao thức điều khiển cổng truyền
Là hàm băm mật mã
Báo cáo Thực tập tốt nghiệp Đại học
N
NAT : Network Address Translators
P
PBX : Private Branch Exchange
PSTN : Public Switched Telephone Network
cộng
Báo hiệu đăng kí, cấp phép, thông tin
trạng thái
Yêu cầu cho ý kiến
Giao thức điều khiển thời gian thực
Giao thức khởi tạo phiên
Phần điều khiển kết nối tín hiệu
Giao thức truyền thông tin đơn giản
Ghép kênh phân chia thời gian
Tổng đài điện tử số
Giao thức bảo mật lớp truyền tải
Giao thức điều khiển truyền TCP
Giao thức gói người sử dụng
Thoại trên IP
Mạng riêng ảo
Mạng diện rộng
Báo cáo Thực tập tốt nghiệp Đại học Lời cám ơn
MỞ ĐẦU
o0o
Công nghệ thoại qua nền Internet dung giao thức IP (Voice Over IP – VoIP), là
một công nghệ mà cho phép 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-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.
Và đã 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
tin II đã tạo điều kiện và giúp đỡ cho nhóm em hoàn thành đề tài.
Chúng 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 cho chúng em hoàn thành tốt đề tài này.
Trên nền tảng những gì đã thực hiện, chúng sẽ tiếp tục phát triển đề tài này
đề phần mềm có thể áp dụng trong thực tế.
Tuy chúng em đã cố gắng hoàn thành thật tốt đề tài nhưng chắc chắn sẽ
không tránh khỏi những sai 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
Báo cáo Thực tập tốt nghiệp Đại học Chương 1: Tổng quan về VoIP
CHƯƠNG 1: TỔNG QUAN VỀ VOIP
I. Giới thiệu VoIP
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 vừa có thể thực hiện mọi loại cuộc gọi như 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
• Một số tính năng khi thực hiện 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ễ sử dụng.
− Audio Interface: xét xem có speaker phone hay không.
2. Softphone
• Là một phần mềm được cài trên máy tính, thực hiện tất cả các chức năng
giống như thiết bị điện thoại VoIP. Khi sử dụng softphone, để giao tiếp
máy tính phải có card âm thanh, headphone và firewall không bị
khóa(hoặc tắt firewall).
• Đối với hệ thống Asterisk, nên dùng softphone với công nghệ giao thức
mới dành cho Asterisk là IAX.
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. 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í.
• 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.
4. ATA (Analog Telephone Adaptors)
Báo cáo Thực tập tốt nghiệp Đại học Chương 1: Tổng quan về VoIP
• 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.
đượ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).
• Phát triển trên môi trường mở:
− Asterisk có thể chạy trên các hệ điều hành khác như: Mac OS X,
FreeBSD, OpenBSD và Microsoft Windowns…
− 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 Microsoft Windowns) 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. Khái niệm:
• Asterisk là phần mềm nguồn mở,1 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, đầ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: Cổng VoIP-to-PSTN bằng cách sử dụng Asterisk
Báo cáo Thực tập tốt nghiệp Đại học Chương 2: Tìm hiểu Asterisk ứng dụng VoIP
• ứ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.
• 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ê
-
-
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ế…
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à
Báo cáo Thực tập tốt nghiệp Đại học Chương 2: Tìm hiểu Asterisk ứng dụng VoIP
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.
• Chức năng của các giao tiếp chương trình ứng dụng (gọi là 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…
kinh doanh, phím 2 gặp phòng kỹ thuật, phím 3 gặp phòng
4. IVR
5. Time and
Date
6. Remote call
pickup
7. Privacy
Manager
8. Blacklist
9. Voicemail
hỗ trợ khách hàng…” 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.
- Dịch vụ xem điểm thi, tiền cước điện thoại của thuê
bao, tỉ giá tiền tệ hiện nay như thế nào, hay kết quả sổ
số, bản tin dự báo thời tiết… tất các những mong muốn
trên đều có thể thực hiện qua chức năng tương tác thoại.
- Nhằm chỉ định các khoả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ân viê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ế hoặc không cho phép gọi ra
bên ngoài.
- Với tính năng này sẽ cho phép chúng ta từ máy điện
thoại này có thể nhận cuộc gọi từ máy điện thoại khác
đang rung chuông.
- Khi một người chủ doanh nghiệp triển khai Asterisk
cho hệ thống điện thoại củ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ò
quả hơn bằng cách không phải đi ra ngoài văn phòng cho
các cuộc họp.
- Chức năng nghe nhạc (nhạc chờ, các chương trình
quà tặng âm nhạc).
Bảng 2.3: Tính năng của hệ thống Asterisk.
• Và còn rất nhiều tính năng nữa mà hệ thống asterisk có thể cung cấp cho người
sử dụng, trên đây chỉ là một số tính năng thường được sử dụng.
IV. Các giao thức VoIP trong Asterisk
1. IAX ( Inter-Asterisk eXchange):
• IAX là một giao thức mở, ta có thể download và phát triển nó miễn phí.
• Phiên bản hiện tại của nó là IAX2, nhưng tất cả các hỗ trợ cho IAX1 không
còn tồn tại nữa. Vì vậy khi nói đến IAX có nghĩa là IAX2. Trong Asterisk,
IAX được hỗ trợ bởi module chan_iax2.
• 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ệc lắm
khi truyền tín hiệu video. Tuy nhiên, vì nó là một giao thức mở, nên các
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 3 cách khác nhau
như sau:
- Plain text
- Mã hóa MD5
nhiên thường được gọi là “nonce”. Con số này được xem như là password
để tạo ra mã MD5 được gởi ngược trở lại cho lệnh INVITE. Giả sử mã
MD5 phù hợp với mã mà proxy tạo ra, client được xác thực.
Báo cáo Thực tập tốt nghiệp Đại học Chương 2: Tìm hiểu Asterisk ứng dụng VoIP
Hình 2.4: Mô hình hoạt động SIP.
• 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.
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 mạng IP trong khi 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 .Trên thực
tế mạng VoIP, H323 có vài trò cao nhất nhưng trên hệ thống Asterisk, SIP
vẫn là sự lựa chọn số 1.
• 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.
Báo cáo Thực tập tốt nghiệp Đại học Chương 2: Tìm hiểu Asterisk ứng dụng VoIP
Hình 2.6 : Giao thức MGCP
• Asterisk hỗ trợ MGCP qua module chan_mgcp.so và đầu cuối được đinh
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.
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 phoen đến
Asterisk, thông thường chúng ta mặc định sử dụng giao thức SIP.
6. UNISTIM:
• Là giao thức hỗ trợ của Nortel cho VoIP, cũng đã được bổ sung vào
Asterisk. Điều đáng nói ở đây là Asterisk là tổng đài PBX đầu tiên hỗ trợ
đầu cuối IP cho cả hai nhà sản xuất lớn nhất trên lĩnh vực VoIP là Nortel và
Cisco.
V. Ngữ cảnh ứng dụng tổng đài IP
1. 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â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 đó 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.
Báo cáo Thực tập tốt nghiệp Đại học Chương 2: Tìm hiểu Asterisk ứng dụng VoIP
Hình 2.7: 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.
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.
Báo cáo Thực tập tốt nghiệp Đại học Chương 3: Cấu hình thành phần Asterisk
CHƯƠNG 3: CẤU HÌNH THÀNH PHẦN CỦA ASTERISK
I. Tổ Chức Thư Mục của Asterisk:
1. Một số thư mục được sử dụng bởi ASTERISK:
• Cd /etc/asterisk/
−
Chứa các tập tin cấu hình ASTERISK. Tuy nhiên tập tin
zaptel.conf lại nằm trong thư mục /etc/. zaptel.conf được dùng để
cấu hình thực hiện liên lạc giữa máy tính và môi trường điện
thoại truyền thống.
• 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:
o
o
o
o
agi-bin/ : Chứa các custom scripts, như là các ứng dụng AGI.
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.
II. Quản lí các User và Dialplan
1. Quản lí User:
• User là những tài khoản người dùng trong một hệ thống. User dùng để xác
định người sử dụng, nhằm cấp quyền sử dụng tương ứng khi người dùng sử
dụng hệ thống. Thường thì trong một hệ thống, hoặc một chương trình có
• nhiều người sử dụng thì sẽ có sự phân quyền cho các người dùng để khai
thác, sử dụng tài nguyên hiệu quả. Như vậy khi phân quyền chính là việc
tạo ra các loại user khác nhau, với mỗi nhóm loại user sẽ được cấp những
quyền tương ứng.
• User root đóng vai trò là admin, người có quyền cao nhất trong hệ thống.