Tải bản đầy đủ (.docx) (70 trang)

Xây dựng hệ thống tổng đài asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về đào tạo cho trường đại học (có code)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 70 trang )

Xây dựng hệ thống tổng đài Asterisk
ứng dụng dịch vụ trả lời tự động câu
hỏi về đào tạo cho Trường Đại Học


MỤC LỤC


DANH MỤC CÁC HÌNH VẼ


DANH MỤC CÁC BẢNG BIỂU


DANH MỤC CÁC TỪ VIẾT TẮT
CRM

Customer Relationship Management

DoS

Denial of Service

DID

Direct Inward Dialing

FXO

Foreign eXchange Office


FXS

Foreign eXchange Subscriber

HTTP

Hyper Text Transport Protocol

IP

Internet Protocol

IVR

Interactive Voice Response

LAN

Local Area Network

WAN

Wide Area Network

NIDS

Network Intrusion Detection System

PBX


Private Branch Exchange

PSTN

Public Switched Telephone Network

QoS

Quality of Services

RTCP

Real-Time Transport Control Protocol

RTP

Real-Time Transport Protocol

RSVP

Resource reservation protocol

SIP

Session Initiation Protocol

TCP/IP

TCP/IP protocol suite


UDP

User Datagram Protocol

URL

Uniform Resource Locator

VoIP

Voice over Internet Protocol


ĐỒ ÁN TỐT NGHIỆP
Trang 6/65

CHƯƠNG 1.

TỔNG QUAN

1.1 Đặt vấn đề
Liên lạc thông tin, truyền thoại đóng vai trò quan trong lĩnh vực truyền thông, xã
hội phát triển mạnh nhu cầu sử dụng mạng Internet tăng cao, để tích hợp vào cơ sở
hạ tầng có sẵn tiết kiệm chi phí cho cuộc gọi và sử dụng tối ưu băng thông. VoIP ra
đời như một giải pháp thiết thực, qua quá trình phát triển khẳng định được vị trí một
trong những công nghệ viễn thông đang được quan tâm nhất hiện nay, không chỉ đối
với các nhà khai thác, các nhà sản xuất mà còn cả với người sử dụng dịch vụ.
VoIP có thể vừa thực hiện cuộc gọi thoại như trên mạng điện thoại kênh truyền
thống (PSTN) đồng thời truyền dữ liệu trên cơ sở mạng truyền dữ liệu. Như vậy, nó
đã tận dụng được sức mạnh và sự phát triển vượt bậc của mạng IP vốn chỉ được sử

dụng để truyền dữ liệu thông thường. Tích hợp mở rộng thêm các dịch vụ giá trị gia
tăng, lợi nhuận phát sinh.

Hình 1-1: Giải pháp VoIP [10].

1.2 Mục tiêu
Phát triển hệ thống Tổng đài đáp ứng được nhu cầu nhiều người cùng sử dụng,
chia sẻ thông tin tiện lợi và nhanh chóng. Giảm thiểu nhân viên tư vấn trực tổng
Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 7/65

đài… Mong muốn đáp ứng nhu cầu trên, đề tài này tập trung nghiêm cứu phần mềm
mã nguồn mở Asterisk, song song đó tích hợp xây dựng và sử dụng tài nguyên,
database lưu trữ các dữ liệu thông tin cho người dùng phát triển theo từng ý riêng.
Các tính năng nghiên cứu, triển khai trong đề tài đồ án này được ứng dụng cho
mô hình trường đại học bao gồm những chức năng sau:
- Tính năng cơ bản của tổng đài IP PBX.
- Dịch vu tư vấn tuyển sinh trả lời tự động.
- Dịch vụ tra cứu thông tin học vụ, tra cứu điểm thi.
- Dịch vụ tư vấn trực tiếp với điện thoại viên.
1.3 Công việc thực hiện
- Tìm hiểu VoIP và các giao thức truyền thời gian thực RTP, RTCP.
- Xây dựng tổng đài Asterisk trên CentOS bằng lệnh linux: Gọi nội bộ, gọi ra
PSTN bằng trunk, IVR, check time condition, voicemail, moh…
- Tìm hiểu MySQL, tạo cơ sở dữ liệu database.
- Tìm hiểu AGI_PHP Asterisk.

- Xây dựng dịch vụ trả lời tự động các câu hỏi về đào tạo cho trường đại học.
1.4 Phần hạn chế của đề tài
Do hạn chế về mặc thời gian cũng như tùy thuộc vào chất lượng đường truyền
và ngữ cảnh được áp dụng là trường đại học, nên đề tài chỉ dừng lại ở những tính
năng cơ bản của 1 tổng đài trường đại học cộng thêm các dịch vụ mở rộng, tổng đài
vẫn chưa thể tích hợp một số phần mềm đi kèm như: phần mềm quản trị khách hàng
CRM, phần mềm tính cước A2billing, hứng tải Kamailio, chống hack và tấn
công….

CHƯƠNG 2.

CÔNG NGHỆ VOIP VÀ CÁC GIAO THỨC TRUYỀN
THỜI GIAN THỰC

1.5 Giới thiệu công nghệ VoIP [3]
Voice over Internet Protocol (VoIP) là công nghệ cho phép truyền tín hiệu thoại
trên cơ sở hạ tầng có sẵn mạng Internet sử dụng giao thức TCP/IP. Sử dụng chuyển
Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 8/65

mạch gói chia nhỏ các gói tin để truyền đi được sắp xếp theo khuôn dạng quy định
trước, đến nơi nhận các gói tin sẽ được sắp xếp lại theo đúng thứ tự và được khôi
phục lại tín hiệu ban đầu qua giao thức RTP truyền thời gian thực.
1.1.1 Cấu trúc mạng VoIP
Trong hệ thống mạng VoIP bao gồm:
- Gateway: Chuyển đổi tín hiệu tương tự sang tín hiệu số và ngược lại.

- VoIP server: Là trung tâm điều hành.
- End user equipments: Thiết bị đầu cuối.

Hình 2-1: Cấu trúc mạng VoIP [1].

- Các hình thức kết nối trong mạng VoIP: Computer – computer, computer –
phone, phone – phone.
1.1.2 Đặc điểm dịch vụ VoIP
Bảng 2-1: So sánh Ưu nhược điểm của VoIP khi truyền thoại [3].

Ưu điểm
Giảm chi phí: Sử dụng tối ưu băng thông, chi
phí cho một cuộc gọi đường dài bằng chi phí
cho truy cập Internet.
Tính thống nhất: Cơ sở hạ tầng tích hợp cho
nhiều dịch vụ, giảm thiểu số thiết bị.
Quản lý băng thông: Băng thông được cung
cấp một cách linh hoạt.

Nhược điểm
Chất lượng dịch vụ: Phụ
thuộc vào chất lượng đường
mạng Internet, kỹ thuật nén
thoại…
Ảnh hưởng tiếng vọng: Do
độ trễ lớn.
Kỹ thuật nén thoại: Tỉ số
nén lớn, có khả năng suy
đoán và tái tạo lại thông tin,


Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 9/65

Khả năng mở rộng: Tính linh hoạt của mạng
IP tạo ra các tính năng dịch vụ mới.

tốc độ xử lý của các bộ
Codec phải đủ nhanh, cơ sở
hạ tầng của mạng cũng phải
được nâng cấp.
Chặn quyền đăng ký: Bằng
cuộc tấn công DoS vô hiệu
hóa quyền đăng ký của người
sử dùng.
Nghe lén, bảo mật:
Bắt các gói tin thực hiện mã
hóa và giải mã hóa.
Giao thức SIP có thể thành
mật mã, RTP hỗ trợ thành
mật mã phương thức truyền
thông trên toàn tuyến.
Một số giải pháp chống
Hack bằng bản tin Invite
độc: Dùng chữ ký số, sử
dụng IP, Sec firewall, SBC,
NIDS hệ thống phát hiện xâm

nhập mạng, host hệ thống
phát hiện xâm nhập,…

1.1.3 Quá trình thiết lập kết nối truyền thoại trong mạng VoIP
Truyền thoại trong mạng VoIP thông thường trải qua 2 bước sau:
- Call Setup: là quá trình thiết lập cuộc gọi, khi đó người gọi yêu cầu proxy
server xác định vị trí, địa chỉ của người nhận , sau đó giữa các proxy server
một đường kết nối sẽ được thiết lập để bắt đầu cho việc trao đổi dữ liệu
thoại.
- Voice Data Processing: là quá trình thực hiện chuyển đổi từ tín hiệu thoại
tương tự sang tín hiệu số, rồi được nén lại để tiết kiệm băng thông đường
truyền, sau đó mã hóa để tăng độ bảo mật cho cuộc gọi, tín hiệu sẽ được
đóng gói thành các gói tin có kích thước nhỏ để vận chuyển trên mạng
Internet.
1.1.4 Các yếu tố ảnh hưởng chất lượng dịch vụ trong mạng VoIP [4]
Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 10/65

Các nhà cung cấp dịch vụ VoIP rất quan tâm đến Quality of Services (QoS) chất
lượng dịch vụ:
- Mất gói trên đường truyền.
- Độ trễ chấp nhận được là 0.15 – 0.2 giây, cụ thể trong đó:


Thời gian thuật toán mã hóa, giải mã tín hiệu từ bắt đầu đến kết thúc
chiếm khoảng: 0.016 đến 0.0375 giây.




Do framing và queuing nhiều gói tin đến cùng lúc tại một nút mạng
trên băng thông kênh truyền của mạng LAN, WAN, trễ này do cấu
hình mạng không đáp ứng đủ nhu cầu phục vụ nhiều người dùng dẫn
tới việc xử lý gói tin tại nút mạng không tốt nằm trong khoảng: 0.005
– 0.025 giây.



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 mất
từ 0.02 – 0.04 giây hoặc hơn.

- 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. 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,
Bảng dưới đây thể hiện chấ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.
Bảng 2-2: Các loại Codec.

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP

Trang 11/65

Codec

Bandwidth

Sample Size

G.711
G.711
G.726r32
G.726r32
G.726r24
G.726r24
G.726r16
G.726r16
G.728
G.728
G.729
G.729
G.723r63
G.723r63
G.723r53
G.723r53

64 kb/s
64 kb/s
32 kb/s
32 kb/s
24 kb/s

24 kb/s
16 kb/s
16 kb/s
16 kb/s
16 kb/s
8 kb/s
8 kb/s
6.3 kb/s
6.3 kb/s
5.3 kb/s
5.3 kb/s
thức RTP
RTP là một giao thức dựa trên

240
160
120
80
80
60
80
40
80
40
40
20
48
24
40
20


Packets
33
50
33
50
25
33
25
50
13
25
25
50
16
33
17
33

1.6 Các
giao
thức
truyền
thông
thời
gian
thực
[2]
1.1.5 G
iao


giao thức IP tạo ra các hỗ trợ cung cấp các chức

năng giao vận phù hợp cho các ứng dụng truyền dữ liệu mang đặc tính thời gian
thực như thoại và truyền hình tương tác. Những dịch vụ của RTP chứa trường nhận
dạng loại tải trọng (payload identification), đánh số thứ tự các gói, điền tem thời
gian phục vụ cho cơ chế đồng bộ khi khôi lại tín hiệu ở bên thu.
Một điều cần lưu ý là bản thân RTP không cung cấp 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ời gian truyền dẫn cũng như chất lượng dịch
vụ được thực hiện nhờ hai giao thức của tầng thấp hơn là RTCP và RSVP.
Các ứng dụng sử dụng RTP:
- Hội nghị đàm thoại đơn giản:


Việc truyền thoại trong hệ thống, ở bên phát tín hiệu thoại được chia
thành những đoạn nhỏ, mỗi phần được thêm vào phần tiêu đề của giao

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 12/65

thức RTP. Tiêu đề RTP mang thông tin chỉ ra cách mã hóa tín hiệu
thoại như là PCM, ADPCM, hoặc LPC…. Dựa vào thông tin này, các
bên thu sẽ thực hiện giải mã cho đúng.



Trên đường truyền khả năng xảy ra mất gói và sai lệch về thứ tự các
gói là không tranh khỏi. Để giải quyết vấn đề này, phần tiêu đề RTP
mang thông tin định thời và số thứ tự các gói, cho phép bên thu khôi
phục định thời với nguồn phát. Sự khôi phục định thời được tiến hành
độc lập với từng nguồn phát trong khi thoại. Số thứ tự gói có thể được
sử dụng để ước tính số gói bị mất trong khi truyền. Các gói thoại RTP
được truyền đi theo các dịch vụ của giao thức UDP để có thể đến nơi
nhận nhanh nhất có thể.



Để giám sát số người tham gia đàm thoại và chất lượng thoại tại mỗi
thời điểm, mỗi một trạm thoại phải gửi đi một cách định kỳ một gói
thông tin RR (Reception report) của giao thức RTCP để chỉ ra chất
lượng thu của từng trạm. Dựa vào thông tin này mà các thành phần
trong cuộc đàm thoại có thể thỏa thuận với nhau về phương pháp mã
hóa thích hợp và điều chỉnh băng thông tương thích.

- Hội nghị điện thoại truyền hình:


Tín hiệu thoại và truyền hình, cả hai dòng tín hiệu đều được sử dụng
trong hội nghị thì ứng với mỗi dòng sẽ có một phiên RTP (RTP
session) độc lập. Khi đó mỗi một phiên RTP sẽ ứng với một cổng
(port number) cho thu phát các gói RTP và một cổng thu phát các gói
RTCP. Các phiên RTP sẽ được đồng bộ với nhau để cho hình ảnh và
âm thanh cùng nhận được ăn khớp.




Các thiết bị đầu cuối chỉ có khả năng thoại cũng có thể tham gia vào
cuộc hội nghị truyền hình mà không cần có bất kỳ thiết bị hỗ trợ nào,
vì các dòng thông tin thoại và truyền hình là những phiên RTP tách
biệt.

- Translator và Mixer:
Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 13/65



Trong trường hợp người dùng có đường kết nối tốc độ thấp tham gia
vào một hội nghị gồm các thành viên có đường liên kết nối tốc độ cao
thì tất cả những người tham gia đều buộc phải sử dụng kết nối tốc độ
thấp cho phù hợp với thành viên mới tham gia. Điều này rõ ràng là
không hiệu quả. Để khắc phục, một translator hoặc một mixer được
đặt giữa hai vùng tốc độ đường truyền cao và thấp để chuyển đổi cách
mã hóa thích hợp giữa hai vùng. Điểm khác biệt giữa translator và
mixer là mixer trộn các dòng tín hiệu đưa đến nó thành một dòng dữ
liệu duy nhất trong khi translator không thực hiện việc trộn dữ liệu.

Cấu trúc gói tin RTP: bao gồm phần tiêu đề cố định thường có ở mọi gói RTP
và phần tiêu đề mở rộng phục vụ cho các mục đích nhất định.

Hình 2-2: Cấu trúc gói tin RTP [2].


- Phần cố định:


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ột số 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ấu khi 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)

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 14/65



Marker (1 bit): có vai trò như một bit cờ, trạng thái của nó được phụ
thuộc và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ấy mẫ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.



Synchronization 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ùng một thời điểm (ví dụ là tín hiệu audio và video) thì sẽ
có những phiên truyền riê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ùng nhận dạng SSRC. Số nhận dạng này
được gán một cách ngẫu nhiên.



Contributing 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.

- Phần mở rộng: Cơ chế mở rộng của RTP cho phép những ứng dụng riêng lẻ
của giao thức RTP thực hiện được với những chức năng mới đòi hỏi những
thông tin thêm vào phần tiêu đề của gói. Cơ chế này được thiết kế để một vài
ứng dụng có thể bỏ qua một số ứng dụng khác lại có thể sử dụng được phần
nào đó. Nếu như bit X trong phần tiêu đề cố định được đặt bằng 1 thì theo
sau phần tiêu đề cố định là phần tiêu đề mở rộng có chiều dài thay đổi.
Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 15/65



16 bit đầu tiên trong phần tiêu đề được sử dụng với mục đích riêng
cho từng ứng dụng được định nghĩa bởi profile. Thường nó được sử
dụng để phân biệt các loại tiêu để mở rộng.



16 bits tiếp theo (Length) . Mang giá trị chiều dài của phần tiêu đề mở
rộng tính theo đơn vị là 32 bits. Giá trị này không bao gồm 32 bit đầu

tiên của phần tiêu đề mở rộng.

1.1.6 Giao thức RTCP
Giao thức RTCP dựa trên việc truyền đều đặn các gói điều khiển tới tất cả các
người tham gia vào phiên truyền theo cơ chế phân phối gói dữ liệu trong mạng
giống như giao thức RTP, tức là cũng sử dụng các dịch vụ của giao thức UDP qua
một cổng UDP độc lập với việc truyền các gói RTP. 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 các thông số về bên thu và tự thích nghi cho phù hợp với bên phát. Mỗi người
tham gia một phiên truyền RTP 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:
- 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.
- Nhận dạng để tập hợp các kiểu dữ liệu khác nhau như audio, video. Điều này
là cần thiết vì khả năng này không được RTP cung cấp.
- Định kỳ gửi các gói tin RTCP mà mỗi phiên truyền có thể giám sát được số
người tham gia. RTP không thể sử dụng được cho mục đích này khi một ai
đó không gửi dữ liệu mà chỉ nhận từ những người khác.
- Chức năng lựa chọn cho phép lấy thêm thông tin của những ngườ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:

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 16/65


Hình 2-3: Giá trị của trường PT (Packet Type) ứng với mỗi loại gói [2].

- Sender Report (SR): Chứa các thông tin thống kê liên quan đến kế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
từ phía phát trong một phiên truyền thông.
- Receiver Report (RR): 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 phát ra từ phía thu trong một phiên truyền
thông.
- Source Description (SDES): bao gồm các thông số mô tả nguồn như tên, vị
trí,...
- Bye: Chỉ thị sự kết thúc tham gia vào phiên truyền.
- 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 2-4: Cấu trúc gói tin RTCP [2].

- Version (2 bit): Version của RTP hiện tại version 2.
- Padding (1 bit): 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.
- 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.
Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 17/65


Các hợp gói của RTCP được phát đi một cách đều đặn sau những khoảng thời
gian bằng nhau để thường xuyên thông báo về trạng thái các điểm cuối tham gia.
Nhưng phải đảm bảo không chiếm hết lưu lượng thông tin dành cho các thông tin
khác. Trong một phiên truyền, lưu lượng tổng cộng cực đại được gọi là băng thông
của phiên (session bandwidth). Lưu lượng này được chia cho các bên tham gia vào
cuộc hội nghị, không cho phép vượt quá để không ảnh hưởng đến các dịch vụ khác
của mạng. Trong mỗi phần băng thông của phiên được chia cho các bên tham gia
phần lưu lượng dành cho các gói RTCP, chỉ được phép chiếm một phần nhỏ khoảng
5% để không ảnh hưởng đến chức năng chính của giao thức là truyền các dòng dữ
liệu media.

CHƯƠNG 3.

ASTERISK – TỔNG ĐÀI MÃ NGUỒN MỞ.

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 18/65

1.7 Giới thiệu Asterisk [5][11]
Người tạo ra Asterisk là Mark Spencer vào năm 1999 với mục đích đầu tiên hỗ
trợ cho công ty của mình trong việc liên lạc đàm thoại hỗ trợ cộng đồng người sử
dụng và phát triển Linux, được viết bằng ngôn ngữ C chạy trên hệ điều hành linux
là hệ thống chuyển mạch mềm, phần mềm mã nguồn mở thực hiện tất cả các tính
năng của tổng đài PBX và hơn thế nữa miễn phí biến một PC rẻ tiền thông thường
chạ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, là một nền tảng tích hợp điện thoại vi tính
hoá kiến trúc mở. Chỉ cần có mạng máy tính và muố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ới 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ên mạng nội bộ của công ty.Đồng thời có
thể giao tiếp với các ứng dụng giao tiếp với mạ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. Tích hợp
vào các ứng dụng như CRM (Customer Relationship Management) 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 cho người sử
dụng điện thoại.
Ban đâu Asterisk được phát triển trên GNU/Linux nền x86 (Intel), nhưng giờ
đây nó được phát triển có thể biên dịch và chạy trên OpenBSD, FreeBSD và Mac
OS X và Microsoft Windows. Thật tốt cho người dùng sử dụng và mở rộng thêm
nhiều dịch vụ.

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 19/65

Hình 3-1: Sơ đồ tổng quan Asterisk [11].

Asterisk là hệ thống chuyển mạch tích hợp vừa là công nghệ truyền thống TDM
vừa là chuyể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.

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về

đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 20/65

1.1.7 Kiến trúc Asterisk.

Hình 3-2: Kiến trúc Asterisk [5].

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ện
thoạ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ển mạch cuộc gọi:


Khi khởi động hệ thống Asterisk thì chức năng Dynamic Module
Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các
format, codec và 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.

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 21/65




Sau đó, hệ thống PBX Switching Core của Asterisk chuyển sang trạng
thái sẵ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ào kế 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ướng cuộ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ứ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, IAX. Nên 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.
- Các API dùng cho việc giao tiếp với các module:


Codec translator API: các hàm đảm nhiệm làm việc với các định dạng
âm thanh mã hóa như MP3, GSM, G729, ADPCM…




Channel API : Giao tiếp với các kênh liên lạc khác nhau, hỗ trợ nhiều
chuần khác nhau như SIP, IAX, H323. Zaptel, MGCP…



Format API : Asterisk tương thích với việc xử lý đọc và phát các loại
file âm thanh có định dạng khác nhau như Mp3, wav, gsm…đem đến
sự linh hoạt cho các ứng dụng trên nền Asterisk trong việc xử lý âm
chuông, DTMF âm thanh phát ra khi nhấn phím,…



Aplication API : dùng các ứng dụng thứ 3 như voicemail, callerID…
cho phép cái ứng dụng mới tương tác phần lõi PBX.

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 22/65

1.1.8 Cấu trúc thư mục của Asterisk [5]

Hình 3-3: Cây thư mục Asterisk.

Bảng 3-1: Chức năng các thư mục chính của Asterisk [7].

Thư mục


Mô tả

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 23/65

/etc/asterisk

Tất cả các file cấu hình trừ /etc/zaptel.conf

/var/run

Các đoạn mã và các file thực thi của Asterisk bao gồm
asterisk, astman, astgenkey và safe_asterisk.
Các đối tượng nhị phân riêng của cấu trúc Asterisk.
Các module thời gian thực cho các ứng dụng, điều
khiển kênh, bộ nén và giải nén, định dạng file.
Chứa biến được sử dụng bởi asterisk trong suốt quá
trình hoạt động.
Các đoạn mã AGI dùng bởi ứng dụng dial plan AGI.
Cơ sở dữ liệu của Asterisk lưu trữ các thông tin cấu
hình.
Các file mp3 được sử dụng cho chức năng music on
hold.Cấu hình music on hold được chứa trong thư mục
này.
Chứa các file âm thanh, cảnh báo,…được sử dụng bởi

các ứng dụng của asterisk.
Các file PID và tên chương trình chạy thời gian thực.

/var/run/asterisk.pid

Process Identifier(PID) của các ứng dụng đang thực thi.

/usr/sbin
/usr/lib/asterisk
/usr/lib/asterisk/modules
/var/lib/asterisk
/var/lib/asterisk/agi-bin
/var/lib/asterisk/astdb
/var/lib/asterisk/mohmp3
/var/lib/asterisk/sounds

/var/spool/asterisk
/var/spool/asterisk/outgoing
/var/spool/asterisk/tmp
/var/log/asterisk
zapata.conf

zaptel.conf

Các file chạy thời gian thực cho voicemail, các cuộc
gọi ra ngoài.
Điều khiển cho các cuộc gọi ngoài.Một cuộc gọi ra
ngoài sẽ được lưu một file trong thư mục này.
Sử dụng để lưu trữ những thông tin tạm, tránh tình
trạng đọc và ghi tập tin cùng một lúc.

Chứa tất cả các tập tin nhật ký giúp cho việc giám sát
được dễ dàng.
Tập tin này thiết lập các thông số cấu hình giao tiếp
điện thoại zapata, có thể sử dụng tập tin này để cấu
hình phần cứng của Digium.Phần cứng của Digium cho
phép liên lạc được với PSTN.
Tập tin này nằm ngoài /etc, là tập tin chứa thông số cấu
hình các phần cứng TDM trong hệ thống asterisk,
driver dành cho Linux khi các thiết bị điện thoại cắm
trực tiếp vào Asterisk thông qua cổng PCI.

1.8 CentOS

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 24/65

Community enterprise Operating System (CentOS) là bản phân phối hệ điều
hành tự do dựa trên Linux kernel, có nguồn gốc hoàn toàn từ bản phân phối Red Hat
Enterprise Linux (RHEL).
CentOS tồn tại để cung cấp một nền tảng điện toán doanh nghiệp tự do và phấn
đấu để duy trì khả năng tương thích nhị phân 100% với nguồn Red Hat một công ty
phần mềm Mỹ cung cấp sản phẩm phần mềm mã nguồn mở cho cộng đồng doanh
nghiệp.

Hình 3-4: Giao diện Cài CentOS [11]


CHƯƠNG 4.

MYSQL, AGI VÀ NGÔN NGỮ PHP.

1.9 MYSQL [9].

Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


ĐỒ ÁN TỐT NGHIỆP
Trang 25/65

Là ngôn ngữ truy vấn có cấu trúc (SQL) quản trị dữ liệu tự do nguồn mở phổ
biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển
ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính
khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm
tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng
dụng có truy cập cơ sở dữ liệu trên internet.
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó
làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,...

Việc thực hiện kết nối các extensions và dialplane từ một Tổng đài hay một
Server đến một database ở xa, thì giải pháp có thể dùng ODBC làm kết nối
trung gian.

Hình 4-1: Mô hình kết nối đến database.

Bước 1: Cấu hình kết nối Asterisk với ODBC.
- extconfig.conf

[settings]
sipusers => mysql,general,sip_accounts
sippeers => mysql,general,sip_accounts
Xây dựng hệ thống tổng đài Asterisk ứng dụng dịch vụ trả lời tự động câu hỏi về
đào tạo cho Trường Đại Học


×