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

Báo cáo thực hành truyền thông đa phương tiện

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 (689.75 KB, 21 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
******* ◄○► ********

BÁO CÁO
Thực hành
Truyền thông đa phương tiện
Nhóm 5

Giáo viên hướng dẫn:
PGS.TS. Nguyễn Thị Hoàng Lan

Hà Nội – 2014

1


MỤC LỤC

2


PHẦN I: TÌM HIỂU CHUNG VỀ ASTERISK
1. Giới thiệu về Asterisk
Asterisk là hệ thống chuyển mạch mềm, là phần mềm nguồn mở được viết bằng ngôn
ngữ C chạy trên hệ điều hành linux thực hiện tất cả các tính năng của tổng đài PBX
(Private Branch Exchange). Asterisk ra đời vào năm 1999 bởi một sinh viên sinh năm
1977 tên là Mark Spencer.
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 với đầy đủ chức năng. Nhiều hệ thống Asterisk đã được cài đặt thành công
trên khắp thế giới. Công nghệ Asterisk đang phục vụ cho nhiều doanh nghiệp. Đâ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ên mạng nội bộ của
công ty. Ngoài ra chúng còn cung cấp các ứng dụng giao tiếp với mạng PSTN (Public
Switched Telephone Network: Mạng chuyển mạch điện thoại công cộng) cho phép gọi ra
bất cứ số điện thoại nào trên mạng PSTN.
2. Kiến trúc chung của Asterisk

Asterisk có 4 khối chức năng chính:
3


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ư G711, GSM, G729…
• 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 giao thức giao tiếp
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 trong
hệthống Asterisk nhưvoicemail, callerID…


4


PHẦN II:

CÁC KỊCH BẢN THÍ NGHIỆM TRÊN ASTERISK


1. Bài thí nghiệm 1
Điều kiện thử nghiệm:



Asterisk đã được cài đặt sẵn trên máy chủ.
Mỗi máy client đã cài đặt Telnet Client, softphone : Ekiga

Các máy client :






Nguyễn Đức Chiến: 102
: 101
: 102
: 103
: 104

Địa chỉ máy chủ:192.168.4.11
Nhóm trưởng:
1.1. Mục đích.
- Tìm hiểu môi trường làm việc của phần mềm Asterisk.
- Cài đặt và thử nghiệm truyền âm thanh theo mô hình PC to PC trên mạng Lan tại
phòng thí nghiệm.
1.2. Nội dung thí nghiệm.
Server sử dụng: 192.168.4.11
Tiến hành cấu hình ở 2 tệp thư mục: sip.config và extension.conf

Thêm thông tin thuê bao tại tệp sip.conf
Thêm thông tin dialplan tại tệp extension.conf
Cấu hình tương tự tại softphone ở các máy client để truy cập.
1.3. Tiến hành.


Từ client, dùng telnet truy cập vào máy chủ gõ lệnh: telnet 192.168.4.11. Trong đó
192.168.4.11 là địa chỉ của máy chủ.



Nhập tên tài khoản : lab801 và password : 123



Truy cập vào các thư mục /ect/asterisk/sip.conf và /ect/asterisk/extensions.conf để
tiến hành cấu hình lại

Tại tệp /ect/asterisk/sip.conf tiến hành thêm các thông tin thuê bao:

5


[101]
type=friend
host=dynamic
secrect=123
[102]
type=friend
host=dynamic

secrect=123
[103]
type=friend
host=dynamic
secrect=123
[104]
type=friend
host=dynamic
secrect=123
[105]
type=friend
host=dynamic
secrect=123

Trong đó :
-

[101, 102,...105] : Định nghĩa tên của user.

6




-

Type=friend : Trường type xác định mỗi kết nối là 1 user, peer hay là friend,
loại user được dùng cho các cuộc gọi đến, peer được dùng cho các cuộc gọi
đi, và loại friend được dùng cho cả 2.


-

Host=dynamic : Trường host yêu cầu client đăng ký cho Asterisk biết IP của
mình. Ở đây Host=dynamic cho phép các client có IP động bất kỳ.

-

Secrect=123 : Password của user là 123.

Tại tệp extension.conf : thêm thông tin dialplan
[default]
exten=>101,1,Dial(SIP/101)
exten=>102,1,Dial(SIP/102)
exten=>103,1,Dial(SIP/103)
exten=>104,1,Dial(SIP/104)
exten=>105,1,Dial(SIP/105)
Trong đó :
-

[default] : Tên của luật quay số.
exten=>101,1,Dial(SIP/101): Khi có máy gọi đến máy 101 thì ở mức ưu tiên
thứ nhất sẽ gọi đến máy 101, sử dụng giao thức SIP, 101 đổ chuông và chờ
được nhấc máy.



Retart lại hệ thống bằng lệnh: #/etc/init.d/asterick/retart




Tiến hành cấu hình trên Softphone tại mỗi PC.

1.4. Kết quả thí nghiệm.


Sử dụng phần mềm Putty để SSH vào máy chủ Asterisk :

7





Nhập username: lab801, password: 123
Sau khi đăng nhập thành công, chỉnh sửa file sip.conf bằng lệnh:
sudo pico /etc/asterisk/sip.conf



Thêm thông tin thuê bao vào tập tin sip.conf :
[101]
type=friend
host=dynamic
secrect=123
[102]
type=friend
host=dynamic
secrect=123
[103]


8


type=friend
host=dynamic
secrect=123
[104]
type=friend
host=dynamic
secrect=123
[105]
type=friend
host=dynamic
secrect=123


Cài đặt và cấu hình trên Softphone tại PC: Sử dụng Ekiga Softphone (đã cài sẵn
tại các máy trong phòng thực hành).

9


Khởi động Ekiga, sau đó tạo một Account. Lưu ý: phần Registrar phải điền đúng địa chỉ
IP của máy chủ Asterisk (ở đây là 192.168.4.11), User và Authentication User phải
đúng thuê bao, phải đặt Password khớp với password của thue bao. Name có thể đặt
tùy ý.

10



Sau khi tạo xong Account thì đăng nhập, lúc này có thể tiến hành cuộc gọi. Thực hiện
cuộc gọi đến thuê bao xxx bằng cách sử dụng lệnh:
sip:
Với xxx là số của thuê bao còn A.B.C.D là địa chỉ IP của máy chủ Asterisk, với điều kiện
thuê bao xxx đã được đăng ký thành công.

11


Kết quả: cuộc gọi thành công, thuê bao 101 và 102 kết nối và có thể hội thoại với nhau.
Tương tự đối với thuê bao 101 và 104.

2. Bài thí nghiệm 2
Điều kiện thử nghiệm:



Asterisk đã được cài đặt sẵn trên máy chủ.
Mỗi máy client đã cài đặt Telnet Client, softphone : Ekiga

Các máy client :





Nguyễn Đức Chiến : 102
:101
:102
:103

12


:104
:105
Địa chỉ máy chủ:192.168.4.11



Nhóm trưởng:
2.1. Mục đích.
- Hiểu khái niệm và hoạt động của tổng đài nội bộ
- Cài đặt một tổng đài nội bộ trên Asterick và thử nghiệm môi trường phòng thí
nghiệm một số tác nghiệm tổng đài điện thoại.
2.2. Nội dung thí nghiệm.
Sử dụng các thuê bao ở thí nghiệm 1 để thực hiện các chức năng theo các kịch bản
ở bài 2.
Năm kịch bản:
1. Kịch bản máy bận
2. Kịch bản người dùng vắng mặt
3. Kịch bản chuyển cuộc gọi
4. Kịch bản rẽ nhánh cuộc gọi
5. Tìm hiểu chức năng quản lý hệ thống
2.3. Tiến hành và kết quả.
Tiến hành khai báo các thuê bao lại như ở thí nghiệm 1. Ở bài này sử dụng máy chủ
có địa chỉ: 192.168.1.11
Để dễ dàng thao tác, sử dụng phần mềm: SSH để vào file:
/ect/asterisk/sip.conf và /ect/asterisk/extensions.conf, dùng notepad để chỉnh sửa.
a. Kịch bản 1: Máy bận


Tiến hành như ở thí nghiệm 1.
 Kết quả:

Khi có cả hai máy 103 và 104 cùng gọi đến 101 thì máy 101 vẫn nhận được vì có 2
lines.
Khi máy 105 gọi đến máy 101 thì bị báo máy bận.
13


b. Kịch bản 2: Người dùng vắng mặt

Định nghĩa trên file extensions.conf trường hợp người dùng vắng mặt. Kịch bản
là các máy khi gọi vào một máy nào đó không nhấc máy trong 20s sẽ tự động kết
thúc cuộc gọi.
Chỉnh sửa nội dung file extensions.conf:
[default]
exten=>101,1,Dial(SIP/101,20)
exten=>101,2,hangup()
Trong đó:
[default] :là trường context.
exten=>101,1,Dial(SIP/101,20) : có { nghĩa khi có cuộc gọi đến user 101,
mức ưu tiên thứ nhất sẽ là quay số (Dial) đến user 101, sử dụng giao thức
SIP, 101 đổ chuông và chờ được nhấc máy trong vòng 20s.
- exten=>101,2,hangup() : có nghĩa khi có cuộc gọi đến user 101, sau 20s
không nhấc máy sẽ là kết thúc cuộc gọi (hang up).
 Kết quả:
-

Thuê bao 103 gọi đến thuê bao 101, chờ 20s thuê bao 101 không nhấc máy thì sẽ tự
động kết thúc cuộc gọi.


c. Kịch bản 3: Kịch bản chuyển cuộc gọi


Yêu cầu:

Định nghĩa trên file extensions.conf trường hợp chuyển cuộc gọi. Kịch bản là các
máy khi gọi vào máy A không nhấc máy trong 20s sẽ được tự động chuyển sang
gọi vào máy B.
Thực hiện:
Tương tự các bước ở trên, mở file extensions.conf (các user đã được khai báo
trong sip.conf từ phần 2.1)


Chỉnh sửa nội dung file extensions.conf:
[default]
exten=>101,1,Dial(SIP/101,20)
exten=>101,2,Dial(SIP/102)
Trong đó:
14


-

[default]: là trường context.

-

exten=>101,1,Dial(SIP/101,20): có { nghĩa khi có cuộc gọi đến user 101, mức
ưu tiên thứ nhất sẽ là quay số (Dial) đến user 101, sử dụng giao thức SIP,

101 đổ chuông và chờ được nhấc máy trong vòng 20s.

-

exten=>101,2,Dial(SIP/102): có { nghĩa khi có cuộc gọi đến user 101, mức ưu
tiên thứ 2 sẽ là quay số (Dial) đến user 102, sử dụng giao thức SIP.

-

Khi có cuộc gọi đến 101 thì tổng đài sẽ xử lý mức ưu tiên 1 trước đó là quay
số và chờ 101 trả lời trong 20s. Nếu sau 20s, 101 không nhấc máy thì sẽ
chuyển sang quay số đến thuê bao 102.

 Kết quả:

Thuê bao 103 gọi đến thuê bao 101, chờ 20s thuê bao 101 không nhấc máy thì sẽ tự
động chuyển cuộc gọi đến thuê bao 102. Mặt khác, khi thuê bao 103 gọi đến thuê bao
101, trong quá trình 20s, thuê bao 101 dừng cuộc gọi thì hệ thống cũng sẽ tự động
chuyển cuộc gọi đến thuê bao 102.
d. Kịch bản 4: Rẽ nhánh cuộc gọi

Yêu cầu: định nghĩa trên file extensions.conf trường hợp rẽ nhánh cuộc gọi. Kịch bản
xảy ra là: các thuê bao khi gọi đến thuê bao A sẽ được nghe thông điệp hello, khi đó
các thuê bao có thể nhấn phím 1 để thực hiện rẽ nhánh cuộc gọi tới thuê bao B, nhấn
phím 2 để rẽ nhánh cuộc gọi đến thuê bao C.
Thực hiện:
Chỉnh sửa nội dung file extensions.conf:
[default]
exten=>101,1,goto(PBX,101,1)
[PBX]

exten=>101,1,background(helloWorld)
exten=>1,1,Dial(SIP/103)
exten=>2,1,Dial(SIP,104)
Trong đó:
-

[default] và [PBX] là tên context.

-

exten=>101,1,goto(PBX,101,1) : khi có cuộc gọi đến user 101, với mức độ
ưu tiên là 1 sẽ thực hiện ứng dụng goto. Ứng dụng goto sẽ chuyển
estension 101 đến context PBX, mức độ ưu tiên là 1.
15


-

exten=>101,1,background(hello) : ứng dụng background được gọi để phát
đoạn âm thanh hello. Nó được dùng để chờ một phím nhập vào từ user.
Người dùng có thể nhập phím mà không cần nghe hết đoạn âm thanh.

-

exten=>1,1,Dial(SIP/103) : nếu người dùng nhập vào phím 1 (ứng với
extension1), tống đài sẽ thực hiện ứng dụng Dial đến user 103, theo giao
thức SIP. Thuê bao 103 sẽ đổ chuông chờ được nhấc máy.

-


exten=>2,1,Dial(SIP/104) : nếu người dùng nhập vào phím 2 (ứng với
extension2), tống đài sẽ thực hiện ứng dụng Dial đến user 104, theo giao
thức SIP. Thuê bao 104 sẽ đổ chuông chờ được nhấc máy.

 Kết quả:

Do sơ suất nên nhóm em đã để mất ảnh chụp màn hình, quá trình thực hiện
đúng như kịch bản, tuy nhiên ko sử dụng được file âm thanh khi chờ cuộc gọi,
thỉnh thoảng không gọi được do nghẽn đường truyền

3. Bài thí nghiệm 3
3.1. Yêu cầu:
Cài đặt và cấu hình để xây dựng một cuộc họp trực tuyến qua mạng IP. Có một chủ
tọa, các thành viên chính thức và không chính thức. Kịch bản cuộc hội nghị thoại:
1máy đóng vai trò chủ toạn phát biểu trước. Sau đó chủ tọa lần lượt cho các thành
viên chính thức được phát biểu, tại mỗi thời điểm chỉ có 1 người được phát biểu. Các
thành viên không chính thức chỉ được nghe.
3.2. Thực hiện:
Cấu hình context trong file sip.conf
[101]
type=friend
host=dynamic
secret=123
context=admin
 Tạo 1 phòng họp trong file Meetme.conf:


[rooms
16



conf => 1000
Trong đó rooms là tên context, Conf=>1000 dùng để tạo phòng số hiệu là 1000, không
có mật khẩu đăng nhập và mật khẩu quản trị.
 Chỉnh sửa file extensions.conf:

[default]
exten => 101,1,Dial(SIP/101)
exten => 102,1,Dial(SIP/102)
exten => 103,1,Dial(SIP/103)
exten => 104,1,Dial(SIP/103)
exten => 105,1,Dial(SIP/103)
;thanh vien chinh thuc
exten=> 201,1,Answer()
exten=> 201,n,MeetMe(1000,pi)
;thanh vien quan sat
exten=> 202,1,Answer()
exten=> 202,n,MeetMe(1000,lpi)
Trong đó:
-

[default], exten => 102,1,Dial(SIP/102) : như đã trình bày ở trên.

-

exten=> 201,1,Answer() : thành viên chính thức muốn tham gia vào phòng họp
sẽ gọi đến số 201. Khi có cuộc gọi đến 201, mức ưu tiên thứ nhất là gọi ứng
dụng Answer để trả lời cuộc gọi này. Tác vụ tiếp theo cần cuộc gọi được trả
lời trước khi thực thi.


-

exten=> 201,n,MeetMe(1000,pi) : khi cuộc gọi đến 201 đã được trả lời, ứng
dụng MeetMe được thực hiện để cho phép user đó tham gia vào phòng họp số
1000, các option là p: được thoát khỏi phòng khi bấm # và i: được thông báo
khi có thành viên vào/ra phòng họp.

-

exten=> 202,1,Answer(): thành viên không chính thức sẽ gọi đến 202 để tham
gia phòng họp.

-

exten=> 202,n,MeetMe(1000,lpi): thành viên được đưa vào phòng họp số 1000,
các option là l:chỉ nghe không nói, p,I như trên.

 Vẫn trong file extensions.conf, cấu hình cho vai chủ tọa
17


[admin]
include => default
exten=> 200,1,Answer()
exten=>200,n,Set(MEETME_RECORDINGFILE=/tmp/Conference-$
{CONFNO}-${UNIQUEID)
exten=> 200,n,MeetMe(1000,asprc)
Trong đó:
-


[admin] tên context

-

include => default : tất cả các khai báo trong context có tên là default đều
được bao gồm trong context admin này.

-

exten=> 200,1,Answer() :admin sẽ gọi đến 200 để tham gia cuộc họp. Đầu tiên
ứng dụng Answer được gọi vì các tác vụ sau cần cuộc gọi được trả lời trước.

-

exten=>200,n,Set(MEETME_RECORDINGFILE=/tmp/Conference-${CONFNO}-$
{UNIQUEID): ứng dụng Set được gọi để cài đặt 1 số thông số trong đó có
đường dẫn của file ghi âm được khai báo trong biến
MEETME_RECORDINGFILE.

-

exten=> 200,n,MeetMe(1000,asprc) : thuê bao gọi đến 200, ứng dụng MeetMe
sẽ đưa vào phòng họp số hiệu 1000, các option dành cho admin đó là: a:chế độ
chủ tọa, s:chế độ xem menu của chủ toạn khi bấm*, p:thoát khỏi phòng khi
bấm#, r:ghi âm và c: được thông báo số lượng thành viên trong cuộc họp.Các
chức năng của chủ tọa: (định nghĩa trong file extensions.conf)

 Kích tất cả hoặc thuê bao ra khỏi phòng họp:

exten=>900,1,Answer()

exten=>900,n,MeetMeAdmin(1000,K)
exten=>901,1,Answer()
exten=>901,n,MeetMeAdmin(1000,k,1)
exten=>902,1,Answer()
exten=>902,n,MeetMeAdmin(1000,k,2)
exten=>903,1,Answer()
exten=>903,n,MeetMeAdmin(1000,k,3)
 Khóa, mở phòng họp

exten=>906,1,Answer()
exten=>906,n,MeetMeAdmin(1000,L)
18


exten=>907,1,Answer()
exten=>907,n,MeetMeAdmin(1000,l)
 Tắt tiếng các thành viên

exten=>908,1,Answer()
exten=>908,n,MeetMeAdmin(1000,M,1)
exten=>909,1,Answer()
exten=>909,n,MeetMeAdmin(1000,M,2)
exten=>910,1,Answer()
exten=>910,n,MeetMeAdmin(1000,M,3)
 Tắt/Bỏ tắt tiếng cả phòng

exten=>913,1,Answer()
exten=>913,n,MeetMeAdmin(1000,N)
exten=>914,1,Answer()
exten=>914,n,MeetMeAdmin(1000,n)

 Tăng giảm volume nói cả phòng

exten=>915,1,Answer()
exten=>915,n,MeetMeAdmin(1000,s)
exten=>916,1,Answer()
exten=>916,n,MeetMeAdmin(1000,S)
 Tăng giảm volume nghe trong phòng

exten=>917,1,Answer()
exten=>917,n,MeetMeAdmin(1000,v)
exten=>918,1,Answer()
exten=>918,n,MeetMeAdmin(1000,V)
 Tăng giảm volume nói 1 thành viên

exten=>919,1,Answer()
exten=>919,n,MeetMeAdmin(1000,t,1)
exten=>920,1,Answer()
exten=>920,n,MeetMeAdmin(1000,T,1)
 Tăng giảm volume nghe 1 thành viên
19


exten=>921,1,Answer()
exten=>921,n,MeetMeAdmin(1000,u,1)
3.3. Kết quả:
-

Kịch bản hội nghị trong phòng họp:

Ban đầu tất cả các thành viên không vào được, lúc sau chỉ có các thành viên chính

thức và dự thính vào được, tuy nhiên admin không vào được, không thực hiện
được các chức năng của admin
Nguyên nhân dẫn tới tình trạng trên là do :
Nghẽn mang : Ban đầu SSH refuse, những trường hợp không dùng mạng Lan
Asterisk 1 lúc sau lại chạy mượt ( có thể do các gói tin trong mạng tự hủy với
TTL)
• Vấn đề load các file config : CLI thông báo lỗi


20


KẾT LUẬN
Tóm lại, phần mềm mã nguồn mở Asterisk có thể thực hiện hầu hết tất cả các tính
năng cơ bản của tổng đài PBX: cho phép thiết lập, kiểm soát và kết thúc các cuộc gọi;
quản lý thuê bao, hệ thống và lịch sử các cuộc gọi; các chức năng mở rộng và dịch vụ
gia tăng. Ngoài ra Asterisk còn hỗ trợ chức năng Hội nghị thoại trên mạng LAN. Do
những ưu điểm trên, Asterisk không ngừng phát triển, hoàn thiện, được nhiều doanh
nghiệp tin cậy sử dụng. Qua 3 bài thực hành trên, chúng em đã được làm quen, tìm
hiểu về hệ thống chuyển mạch mềm mã nguồn mở Asterisk, đồng thời ứng dụng vào
thực tế, qua đó tích lũy được nhiều kinh nghiệm bổ ích cho công việc tương lai.

21



×