bao cao thi nghiem truyen thong da phuong tien DH BK
Trang 1TRƯỜ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í nghiệm
Truyền thông đa phương tiện
Giáo viên hướng dẫn: ThS Trần Nguyên Ngọc
Sinh viên thực hiện: Trần Trung Dũng
Phạm Đình Sỹ Trịnh Mạnh Cường Mai Minh Long Nguyễn Trường Sơn Phùng Đức Long
Hà Nội, 2012
Trang 2N i dung báo cáo ội dung báo cáo
I Tìm hiểu chung về Asterisk 3
1 Giới thiệu về Asterisk 3
2 Sơ đồ tổng quát 3
3 Kiến trúc chung của Asterisk 4
II Các kịch bản thí nghiệm trên hệ thống Asterisk 5
1 Bài thí nghiệm 1 6
a.Mục đích 6
b.Nội dung thí nghiệm 6
c.Tiến hành 6
d.Kết quả: 8
1 Bài thí nghiệm 2 9
a.Mục đích 10
b.Nội dung thí nghiệm 10
c.Tiến hành và kết quả 10
d.Ảnh màn hình 13
Trang 3I Tìm hiểu chung về Asterisk
1 Giới thiệu về Asterisk
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à 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) và hơn thế nữa
Asterisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại và là một server xử
lý cuộc gọi đầy đủ chức năng Asterisk là một nền tảng tích hợp điện thoại vi tính hoá kiến trúc mở 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 Sơ đồ tổng quát
Trang 4Asterisk 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
3 Kiến trúc chung của Asterisk
Asterisk có 4 khối chức năng chính:
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…
Trang 5 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…
II Các kịch bản thí nghiệm trên hệ thống Asterisk
Điều kiện thử nghiệm :
o Asterisk đã được cài đặt sẵn trên máy chủ.
o Mỗi máy client đã cài đặt Telnet Client, softphone : X-lite
Các máy client :
o Trịnh Mạnh Cường : 121 (máy hỏng - dùng lap)
o Nguyễn Trường Sơn : 101
Nhóm trưởng :Phạm Đình Sỹ.
Thư ký :Trần Trung Dũng
1 Bài thí nghiệm 1.
a.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
b.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
c.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
Trang 6Trong đó 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 (dùng vi)
Tại tệp /ect/asterisk/sip.conf tiến hành thêm các thông tin thuê bao:
Trang 7secrect=123 [121]
type=friend host=dynamic secrect=123
Trong đó: Trong đó :
[101, 102, 105, 121] : Định nghĩa tên của user
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) exten=>121,1,Dial(SIP/121)
Trong đó :
[default] : Tên của luật quay số
Trang 8exten=>101,1,Dial(SIP/101) : Có nghĩa là 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
d.Kết quả:
Kết nối và giao tiếp được giữa các máy trong mạng lan
Cấu hình trên X-lite :
- show channels:
Trang 9- Show peer, users:
2 Bài thí nghiệm 2.
Điều kiện thử nghiệm :
o Asterisk đã được cài đặt sẵn trên máy chủ.
o Mỗi máy client đã cài đặt Telnet Client, softphone : X-lite
Các máy client :
o Trịnh Mạnh Cường : 121 (máy hỏng - dùng lap)
o Nguyễn Trường Sơn : 101
Trang 10 Nhóm trưởng :Phạm Đình Sỹ.
Thư ký :Trần Trung Dũng
a.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
b.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
Có 5 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
c.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 để Download file:
/ect/asterisk/sip.conf và /ect/asterisk/extensions.conf, dùng notepad để chỉnh sửa
Kịch bản 1:Máy bận
Trang 11Tiến hành như ở thí nghiệm 1.
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, mức ưu tiên thứ 2 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 hủy cuộc gọi
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)
Trang 12Chỉnh sửa nội dung file extensions.conf:
[default]
exten=>101,1,Dial(SIP/101,20) exten=>101,2,Dial(SIP/102)
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,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ốngcũng sẽ tự động chuyển cuộc gọi đến thuê bao 102
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(hello) exten=>1,1,Dial(SIP/103)
exten=>2,1,Dial(SIP,104)
Trong đó:
[default] và [PBX] là tên context
Trang 13exten=>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
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ả: Vì không tìm được file âm thanh nên nhóm không thực hiện được kết quả của kịch bản này
d.Ảnh màn hình
3.Bài thí nghiệm số 3
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ủ toan, 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.
Thực hiện:
Trang 14 Cấu hình context trong file sip.conf
Tạo 1 phòng họp trong file Meetme.conf:
Tạo 1 phòng họp trong file Meetme.conf:
Chỉnh sửa file extensions.conf:
Tạo 1 phòng họp trong file Meetme.conf:
Trang 15exten=> 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
Tạo 1 phòng họp trong file Meetme.conf:
[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.
Trang 16Kích tất cả hoặc thuê bao ra khỏi phòng họp:
Tạo 1 phòng họp trong file Meetme.conf:
Trang 17exten=>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
Tạo 1 phòng họp trong file Meetme.conf:
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
Tạo 1 phòng họp trong file Meetme.conf:
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
Tạo 1 phòng họp trong file Meetme.conf:
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
Tạo 1 phòng họp trong file Meetme.conf:
exten=>919,1,Answer()
exten=>919,n,MeetMeAdmin(1000,t,1)
Trang 18exten=>920,1,Answer()
exten=>920,n,MeetMeAdmin(1000,T,1)
Tăng giảm volume nghe 1 thành viên
Tạo 1 phòng họp trong file Meetme.conf:
- Kịch bản kích 1 người ra khỏi phòng họp:
+ Trước khi thực hiện kích: phòng có 4 user
Trang 19+ Sau khi thực hiện lệnh kích user vào thứ 2 trong phòng họp:
Trang 20Thông tin trong file log của hệ thống:
Trang 21III- Kết luận:
- Nhu cầu truyền thông nội bộ trong những doanh nghiệp lớn với chi phí thấp (thuê server) đảm bảo được tính an toàn thông tin, tiết kiệm => asterisk là một lựa chọn đáng quân tâm với nhiều doanh nghiệp lớn hiện nay!