Bài thực hành VoIP
Trang 11 Tạo các số điện thoại
Các số điện thoại ở các phòng ta đặt trong ngữ cảnh [Noibo] khi tạo:
- Phòng giám đốc : ext 5xx5 (IAX)
- Phòng nhân sự : ext 6xx6 (SIP)
- Phòng kỹ thuật : ext 7xx7 (IAX)
- Phòng bán hàng : ext 8xx8 (SIP)
• Số điện thoại 1111 (IAX) là số điện thoại ở ngoài công ty, đặt trong ngữ cảnh [Benngoai]
• Số điện thoại 2222 (SIP) là số điện thoại public của công ty (muốn gọi vào các số nội bộ của công ty phải gọi qua số này > 2222 đặt trong ngữ cảnh [Bentrong]
2 Liên lạc nội bộ
• Kết nối cho các số nội bộ trong công ty liên lạc bình thường
Trong file extensions conf ta khai báo như sau trong ngữ cảnh [Noibo]:
CODE
;quay so den phong Giam Doc
exten => 5015,1,Answer()
exten => 5015,2,Dial(IAX2/5015,30)
exten => 5015,3,Hangup()
;quay so den phong Nhan Su
exten => 6016,1,Answer()
exten => 6016,2,Dial(SIP/6016,30)
exten => 6016,3,Hangup()
;end of [from-internal]
;quay so den phong Ky Thuat
exten => 7017,1,Answer()
exten => 7017,2,Dial(IAX2/7017,30)
exten => 7017,3,Hangup()
;quay so den phong Ban Hang
exten => 8018,1,Answer()
exten => 8018,2,Dial(SIP/8018,30)
exten => 8018,3,Hangup()
• Họp nội bộ công ty qua điện thoại giữa tất cả các phòng.
Theo yêu cầu đề bài để có thể họp nội bộ công ty qua điện thoại giữa tất cả các phòng, tại mỗi phòng ta nhấn số 4014 là có thể liên lạc với nhau Ứng dụng Meetme cho phép ta thực hiện điều đó.Các bước thực hiện
+++ Mở file Meetme.config trong PBX/ Config File Editor khai báo như sau:
CODE
Trang 2Conf => 2000, 654321, 123456
Với:
conf=> từ khóa để tạo phòng hội thoại
2000: số phòng hội thoại, thuê bao gọi vào con số này để đăng nhập vào phòng hội thoại.
654321: mật khẩu đăng nhập
123456: mật khẩu quản trị phòng hội thoại.
Nhấn Update để lưu lại
+++ Sau khi tạo phòng hội thoại, chúng ta phải khai báo trong dialplan để người gọi có thể đăng nhập vào Để tiếp nhận các cuộc gọi hội thoại chúng ta dùng hàm ứng dụng meetme() trong kế hoạch dialplan.
Mở file extensions.config trong PBX/ Config File Editor khai báo trong ngữ cảnh [Noibo]:
CODE
;hoi thoai
exten => 4014,1,Goto(room,1) // khi thuê bao quay số 4014 sẽ được chuyển tới phòng hội thoại room
exten => room,1,MeetMe(2000||654321) // phòng room có số phòng là 2000, mật khẩu đăng nhập là 654321
exten => room,2,Hangup()
3 Liên lạc từ trong ra ngoài : khai báo trong file extensions.conf trong ngữ cảnh Noibo
CODE
;Them so 9 truoc so can goi de lien lac ra ngoai cong ty
exten =>_9xxxx,1,Goto(Benngoai,1111,1)
4 Liên lạc từ ngoài vào trong
Khi cuộc gọi từ ngoài đến số public của công ty thì hệ thống asterisk sẽ phát sinh thông điệp
“Chào mừng gọi đến công ty ABC, vui lòng nhấn phím 1 để được nghe hướng dẫn, nhấn phím 2
để được hỗ trợ về kỹ thuật, nhấn phím 3 để biết thông tin tuyển dụng, nhấn phím 4 để để lại lời nhắn hay góp ý, nhấn phím 5 để nghe lại lời chào” sau đó tùy theo lựa chọn của khách hàng mà thực hiện các thao tác
Ở đây mình đã test thử file chạy thông điệp background bằng file.wav mà mình tự thu.Tuy nhiên
do quá nặng nên ko thể load được và mình test thử trên file gsm có sẵn trong thư mục sounds của tổng đài
++ Copy file báo hiệu với thông điệp chào mừng vào thư mục /var/lib/asterisk/sounds
Dùng chương trình winscp382.exe (chương trình quản lý folder hay file giữa PC và địa chỉ cần login )login vào địa chỉ tổng đài asterisk (ví dụ 192.168.1.18) với user và pass là tài khoản và mật khẩu mà bạn đăng nhập trong linux
Trang 3Login thành công Lúc này một bên cửa sổ là các thư mục ở máy PC mình, một bên cửa sổ là các thư mục của tổng đài asterisk
Chép file báo hiệu từ máy PC vào thư mục /var/lib/asterisk/sounds Lưu ý: file báo hiệu phải có định dạng là wav hoặc gsm (dung lượng nhỏ)
Trang 4++ Cấu hình trong file extensions.conf
hello-world,1-for-am-2-for-pm, 1-yes-2-no là các file báo hiệu gsm có sẵn trong thư mục sounds Các bạn có thể dùng file báo hiệu khác để thử.
CODE
[Bentrong]
/// khi gọi vào phát ra thông điệp chào mừng
exten => 2222,1,Background(hello-world)
// Sau khi thông điệp phát xong thì chờ và nhận phím từ người dùng
exten => 2222,2,Waitexten()
///Khi người dùng nhấn phím 1 phát thông điệp và chuyển tới phòng bán hàng
exten =>1,1,Playback(1-for-am-2-for-pm)
exten =>1,2,Goto(Noibo,8018,1)
// Khi người dùng nhấn phím 2 chuyển tới phòng kỹ thuật
exten =>2,1,Goto(Noibo,7017,1)
// Khi người dùng nhấn phím 3 chuyển tới phòng nhân sự
Trang 5exten =>3,1,Goto(Noibo,6016,1)
// Khi người dùng nhấn phím 4 phát thông điệp
exten =>4,1,Playback(1-yes-2-no)
// phát ra một tiếng pip
exten =>4,2,Answer()
//ghi lời nhắn vào hộp thư thoại với aa là tên file ghi lại, %d là số thứ tự lần lượt ghi
// ví dụ bạn gọi lần 1 vào số này nó sẽ lưu là aa1, lần kế tiếp sẽ lưu là aa2
exten =>4,3,Record(aa%d.gsm)
// sau khi thu xong,nó sẽ tự động kết thúc nếu đợi lâu Bạn nhấn phím # để nghe lại lời thu (test thử)
exten =>4,4,Playback(${RECORDED_FILE})
xten =>4,5,Hangup()
// Khi người dùng nhấn phím 5 phát lại thông điệp
exten =>5,1,Playback(1-yes-2-no)
exten =>2222,3,Hangup()
;end of [Bentrong]
******************************************************************************
Bài thực hành này, chỉ cấu hình trên 2 file extensions.conf và meetme.conf
extensions.conf
CODE
[general]
static = yes
writeprotect = yes
autofallthrough = yes
;end of [general]
[Noibo]
;Them so 9 truoc so can goi de lien lac ra ngoai cong ty
exten =>_9xxxx,1,Goto(Benngoai,1111,1)
Trang 6;hoi thoai
exten => 4014,1,Goto(room,1)
exten => room,1,MeetMe(2000||654321) exten => room,2,Hangup()
;quay so den phong Giam Doc
exten => 5015,1,Answer()
exten => 5015,2,Dial(IAX2/5015,30) exten => 5015,3,Hangup()
;quay so den phong Nhan Su
exten => 6016,1,Answer()
exten => 6016,2,Dial(SIP/6016,30)
exten => 6016,3,Hangup()
;end of [from-internal]
;quay so den phong Ky Thuat
exten => 7017,1,Answer()
exten => 7017,2,Dial(IAX2/7017,30) exten => 7017,3,Hangup()
;quay so den phong Ban Hang
exten => 8018,1,Answer()
exten => 8018,2,Dial(SIP/8018,30)
exten => 8018,3,Hangup()
;end of [Noibo]
[Benngoai]
; tu 1111 goi vao 2222
exten => 2222,1,Goto(Bentrong,2222,1) exten => 1111,1,Answer()
exten => 1111,2,Dial(IAX2/1111,30) exten => 1111,3,Hangup()
;end of [Benngoai]
[Bentrong]
exten => 2222,1,Background(hello-world) exten => 2222,2,Waitexten()
exten =>1,1,Playback(1-for-am-2-for-pm) exten =>1,2,Goto(Noibo,8018,1)
exten =>2,1,Goto(Noibo,7017,1)
Trang 7exten =>3,1,Goto(Noibo,6016,1)
exten =>4,1,Playback(1-yes-2-no)
exten =>4,2,Answer()
exten =>4,3,Record(aa%d.gsm)
exten =>4,4,Playback(${RECORDED_FILE}) exten =>4,5,Hangup()
exten =>5,1,Playback(1-yes-2-no)
exten =>2222,3,Hangup()
;end of [Bentrong]
meetme.conf
CODE
Conf => 2000, 654321,123456