Kế hoạch quay số

Một phần của tài liệu Toàn tập về Asterisk (Trang 67 - 79)

Hướng gọi Kế hoạch quay số-cách sử dụng

Gọi ra( out-going calls) Bấm số “9” để chiếm trung kế gọi ra

Gọi vào ( in-coming calls) Quay số vào trực tiếp

Nội bộ(internal) Quay số Bấm trực tiếp số

Voicemail -để lại tin nhắn:nếu

sau 10 hồi chuông không có người nhấc

máy, có thể để lại tin

nhắn sau tiếng “bip”(để

“#”)

-truy xuất vào voice mail : quay số 9000

6.3. Một số chức năng cơ bản

Stt Chức năng Cách sử dụng

1 Hiển thị số thuê bao chủ gọi

2 Nhấc máy từ xa (Call pickup) Từ máy điện thoại bất kỳ trong cùng

nhóm, quay *8 để nhận cuộc gọi đang

rung chuông. 3 Người gọi hay người bị gọi

dùng máy điện thoại khác để

tiếp tục cuộc đàm thoại ( Call parking)

Quay # 700, gác máy và đến một máy điện

thoại khác quay 701, và tiếp tục cuộc đàm

thoại.

4 Chuyển cuộc gọi trong khi đàm thoại (Call Transfer)

Nhấn # và số điện thoại cần chuyển.

5 Chuyển cuộc gọi( Call Forward) - chuyển cuộc gọi tức thời:

đăng ký : *30 số điện thoại #

hủy:*31#

- chuyển cuộc gọi khi bận :

đăng ký : *32 số điện thoại #

hủy:*33#

- chuyển cuộc gọi khi không trả

lời:

đăng ký : *34 số điện thoại #

hủy:*35# 6 Từ chối nhận cuộc gọi(Do Not

Disturb)

- đăng ký : *94# - hủy:*95#

7 Quay số tắt(Speed Dial) - nhấn 1 sẽ gọi số 3005

- nhấn 2 sẽ gọi số 3006

6.4. Cấu hình

Với mô hình, cùng với kế hoạch quay số và các chức năng cơ bảnđã trình bày ở trên, chúng ta sẽ có nội dung các tập tin cấu hình như sau :

6.4.1.Cấu hình cổng FXO (card TDM01B)

6.4.1.a. Tập tin zaptel.conf

loadzone=us defaultzone=us

Sau khi thiết lập cấu hình zaptel, nạp lại module cho thiết bị bằng lệnh sau :

# /etc/init.d/zaptel restart

6.4.1.b. Tập tin zapata.conf

[trunkgroups]

;định nghĩa các nhóm trung kế tại đây, mặc định có thể bỏ qua

[channels] usecallerid=yes hidecallerid=no callwayting=no transfer=yes echocancel=yes echotraining=yes ; FXO interface context=incoming sinallinging=fxs_ks channel=1 6.4.2. Tập tin sip.conf [general] contex = default bindport=5060 bindaddr=0.0.0.0 disallow=all allow=ulaw srvlookup = yes ;khai báo các user [3003] type=friend secret=pasword_03 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3003 callgroup=1 pickupgroup=1

[3004] type=friend secret=pasword_04 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3004 callgroup=1 pickupgroup=1 [3005] type=friend secret=pasword_05 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3005 callgroup=1 pickupgroup=1 [3006] type=friend secret=pasword_06 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3006 callgroup=1 pickupgroup=1

Chú ý : trường context=internal phải đúng với một context được định nghĩa [internal] trong tập tin extensions.conf , như thế thì các SIP Entry đó mới hoạt động được bên trong một context

6.4.3.Tập tin features.conf ( chức năng call parking)

[general] parkext => 700 parkpos => 701-720 context => parkedcalls parkingtime => 25

Chú ý đối với tập tin này, để sự thay đổi có ảnh hưởng thì ở giao tiếp dòng lệnh

Asterisk, ta dùng lệnh restart hoặcreload res_feature.so.Nếu dùng lệnh reload thì sự thay đổi trong tập tin sẽ không ảnh hưởng.

6.4.4.Tập tin voicemail.conf [general] format=wav49|gsm|wav servicemail=asterisk [default] 3003 => 1234,hai,lxhai@yahoo.com 3004 => 2134,hai,lxhai@yahoo.com 3003 => 3214,hai,lxhai@yahoo.com 3003 => 4231,hai,lxhai@yahoo.com 3003 => 1324,hai,lxhai@yahoo.com 6.4.5. Tập tin extensions.conf

Đây là tập tin cấu hình quan trọng nhất, các máy điện thoại trong mô hình có thực hiện được các cuộc gọi nội bộ, gọi ra, từ mạng PSTN gọi vào và các dịch vụ có triển khai được hay không, tất cả phụ thuộc vào tập tin này.

[general] static=yes writeprotect=no [incoming] exten => s,1,Dial(SIP/3003) [internal] include => parkedcalls include => tinhnang include => out-going exten => _3XXX,1,Macro(dial-voicemail,SIP/${EXTEN},20,${EXTEN}) exten => 9000,1,VoiceMailMain(${CALLERID(num)}) [out-going] exten => _9NXXXXXX,1,Dial(Zap/g1/${EXTEN:1}) exten => _9NXXXXXX,2,Congestion() exten => _9NXXXXXX,102,Congestion() [tinhnang] exten => _*30.,1,Set(FORWARD=${EXTEN:3}) exten => _*30.,2,Macro(CFIM-ON)

exten => *31,1,Macro(CFIM-OFF) exten => _*32.,1,Set(FORWARD=${EXTEN:3}) exten => _*32.,2,Macro(CFBS-ON) exten => *33,1,Macro(CFBS-OFF) exten => _*34.,1,Set(FORWARD=${EXTEN:3}) exten => _*34.,2,Macro(CFUN-ON) exten => *35,1,Macro(CFUN-OFF) exten => *94,1,Macro(DND-ON) exten => *95,1,Macro(DND-OFF) ;khai báo các Macro

[macro-dial-voicemail]

;Voicemail khi bận và không trả lời

exten => s,1,Set(DESTINATION=${ARG1})

exten => s,n,Set(temp=${DB(DND/${MACRO_EXTEN})}) exten => s,n,GotoIf($[${temp} = 1]?DND_ON:DND_OFF) exten => s,n(DND_ON),NoOp(DND -ON)

exten => s,n,Busy()

exten => s,n(DND_OFF),NoOp(DND -OFF)

exten => s,n,Set(temp=${DB(CIFM/${MACRO_EXTEN})}) exten => s,n,GotoIf(${temp} ?CFIM_ON:CFIM_OFF) exten => s,n(CFIM_ON),NoOp(CFIM -ON)

exten => s,n,Goto(CF,1)

exten => s,n(CFIM_OFF),NoOp(CFIM -OFF) exten => s,n,Dial(${ARG1},25,Tt) exten => CF,1,Dial(local/${temp}${EXTEN}) exten => CF,1,Dial(SIP/${temp},25,r) exten => CF,n,Dial(iax2/${temp},20,r) exten => CF,n,Dial(zap/g0/${temp},20,r) exten => s-NOANSWER,1,Set(temp=${DB(CFUN/${MACRO_EXTEN})}) exten => s-NOANSWER,n,GotoIf(${temp} ?CFUN_ON:CFUN_OFF) exten => s-NOANSWER,n(CFUN_ON),NoOp(CFUN- ON)

exten => s-NOANSWER,n,Goto(CF,1)

exten => s-NOANSWER,n(CFUN_OFF),NoOp(CFUN- OFF) exten => s-NOANSWER,n,Voicemail(u${ARG2}@default) exten => s-NOANSWER,n,Hangup()

exten => s-CHANUNAVAIL,1,Voicemail(u${ARG2}@default) exten => s-CHANUNAVAIL,2,Hangup()

exten => s-BUSY,1,Set(temp=${DB(CFBS/${MACRO_EXTEN})}) exten => s-BUSY,n,GotoIf(${temp} ?CFBS_ON:CFBS_OFF) exten => s-BUSY,n(CFBS_ON),NoOp(CFBS- ON)

exten => s-BUSY,n,Goto(CF,1)

exten => s-BUSY,n(CFBS_OFF),NoOp(CFBS- OFF) exten => s-BUSY,n,Voicemail(b${ARG2}@default) exten => s-BUSY,n,Hangup()

exten => _s-.,1,NoOp(STATUS = ${DIALSTATUS} – Hanging up) exten =>_s-.,n,Hangup() [macro-CFIM-ON] exten => s,1,NoOp() exten => s,n,Set(DB(CFIM/${CALLERID(num)})=${FORWARD}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() [macro-CFIM-OFF] exten => s,1,NoOp() exten => s,n,Dbdel(CFIM/${CALLERID(num)}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() [macro-CFBS-ON] exten => s,1,NoOp() exten => s,2,Set(DB(CFBS/${CALLERID(num)})=${FORWARD}) exten => s,3,Playback(beep) exten => s,4,Wait(1) exten => s,5,Hangup() [macro-CFBS-OFF] exten => s,1,NoOp() exten => s,n,Dbdel(CFBS/${CALLERID(num)}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() [macro-CFUN-ON] exten => s,1,NoOp() exten => s,n,Set(DB(CFUN/${CALLERID(num)})=${FORWARD}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup()

[macro-CFUN-OFF] exten => s,1,NoOp() exten => s,2,Dbdel(CFUN/${CALLERID(num)}) exten => s,3,Playback(beep) exten => s,4,Wait(1) exten => s,5,Hangup() [macro-DND-ON] exten => s,1,NoOp() exten => s,2,Set(DB(DND/${CALLERID(num)})=1}) exten => s,3,Playback(beep) exten => s,4,Wait(1) exten => s,5,Hangup() [macro-DND-OFF] exten => s,1,NoOp() exten => s,n,Dbdel(DND/${CALLERID(num)}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() 6.5.Một số kết quả thực hiện

-Bên ngoài gọi vào PBX (quay số của đường dây kết nối cổng FXO) sẽ đổ chuông máy 3003 .

-Bên trong thuê bao bấm số 9 sẽ chiếm trung kế gọi ra, rồi tiếp tục quay số của mạng

PSTN.

-Các thuê bao nội bộ quay số trực tiếp để liên lạc với nhau

-Các dịch vụ:

+DND (từ chối nhận cuộc gọi): ví dụ khi thuê bao 3004 quay *94# để đăng ký dịch vụ DND, thì tất cả các thuê bao khác khi gọi số 3004 đều nghe tone bận. Để hủy

dịch vụ này, thuê bao 3004 quay *95#

+Call parking: ví dụ thuê bao 3005 gọi thuê bao 3006 và thuê bao 3006 nhấc máy đàm thoại, nếu thuê bao 3005 không muốn dùng điện thoại 3005 để tiếp tục đàm thoại mà muốn dùng điện thoại 3004, thì thuê bao 3005 nhấn # và tiếp theo là 700, gác máy rồi đi đến điện thoại 3004 quay số 701, thì sẽ tiếp tục đàm thoại với thuê bao 3006(trong thời gian thuê bao 3005 di chuyển đến điện thoại 3004 thì thuê bao 3006 sẽ nghe được nhạc chờ).

Tất cả kịch bản cuộc gọi trong phần 6.3 và các dịch vụ trong phần 6.4 đã test và cho kết quả tốt.

KẾT LUẬN

Truyền thoại qua IP (VoIP) là công nghệ đã và đang phát triển mạnh mẽ . Cùng với sự

phát triển của hạ tầng chuyển mạch gói, IP-PBX sẽ dần dần thay thế cho các PBX

chuyển mạch kênh truyền thống .Yếu tố cơ bản nhất tạo ra sự thayđổi này chính là bắt

nguồn từ bản chất mềm dẻo và hiệu suất của chuyển mạch gói nói chung và chuyển

mạch IP nói riêng .

Công nghệ Asterisk cực kỳ linh hoạt, có thề kết nối với mạng điện thoại bên ngoài qua

đường dây tương tự (Analog) hay số (Digital) .Chỉ với một số thiết bị phần cứng đơn

giản, kết hợp với phần mềm mã nguồn mở Asterisk, chúng ta có thể xây dựng nên một

hệ thống IP-BPX hoàn chỉnh với đầy đủ các tính năng. Ngoài các dịch vụ truyền thống

và các dịch vụ tiên tiến cho IP-PBX, Asterisk có thể mở rộng thêm các chức năng khác

như IVR với chức năng Text To Speech , lấy dữ liệu động từ database và phát thành lời nói (ứng dụng trong ngân hàng, đặt chổ trong hàng không, tra điểm thi

…),Voicemail, ghi âm cuộc gọi, định tuyến cuộc gọi theo phí thấp nhất bầng cách đăng ký với các SIP Provider như : Vietvoice,OCI, …để tạo các cuộc gọi quốc tế giá

rẻ, do được phát triển bằng phần mềm nên IP-PBX Asterisk dễ dàng tích hợp được với

các hệ thống quản lí khách hàng CRM (Customer Relationship Management) với các

chức năng Click to talk, lưu giữ thông tin khách hàng gọi vào, là môi trường cơ sở để

xây dựng nên các trung tâm cuộc gọi (Call Center) hay các trung tâm liên lạc (Contact

PHỤ LỤC Thư viện cú pháp lệnh và biến trong Asterisk 1. Các lệnh tổng quát:

Stt Cú pháp Tác dụng

1 add extension Thêm một extension vào ngữ cảnh

2 debug channel Mở Debug cho channel

3 help Hiển thị danh sách các dòng lệnh

4 no debug channel Tắt debug cho một channel

5 pri debug span Bật chế độ debug cho một span(đối với kết nối

E1)

6 pri no debug span Tắt chế độ debug cho một span(đối với kết nối

E1)

7 show agents Hiển thị trạng thái các agent

8 show applications Hiển thị các ứng dụng đang đăng ký

9 show channel Hiển thị các thông tin về một kênh cụ thể

10 show channels Hiển thị thông tin về các kênh 11 show codecs Hiển thị các codec được hổ trợ

12 show conferences Hiển thị trạng thái các phòng hội thoại

13 show dialplan Hiển thị thông tin Dialplan

14 show manager command

Hiển thị các cú pháp lệnh về quản lí

15 show manager connect Hiển thị các user quản lí đang đăng ký

16 show parkedcalls Hiển thị danh sách các parked call 17 show queues Hiển thị thông tin các hàng đợi

18 show voicemail users Danh sách các hộp thư thoại được tạo

19 show voicemail zones Danh sách các định dạng bản tin zone

20 shoft hangup Yêu cầu hangup 1 kênh thoại cụ thể nào đó

2.Cú pháp lệnh tương tác với Database

stt Cú pháp Tác dụng

1 database del Xóa một giá trị/khóa trong database

2 database deltree Xóa các giá trị/cây khóa trong database

3 database get Lấy dữ liệu từ database

4 database put Lưu dữ liệu vào database 5 database show Hiển thị nội dung database

3. Cú pháp dòng lệnh liên quan đến kênh IAX

Stt Cú pháp Tác dụng

1 iax2 debug Debug kênh iax 2 iax2 no debug Tắt debug kênh iax

3 iax2 show cache Hiển thị các thông tin cache của kênh iax 4 iax2 show channel Hiển thị thông tin các kênh iax

5 iax2 show peers Hiển thị trạng thái các kết nối iax

6 iax2 show registry Hiển thị tình trạng đăng ký của các kết nối

7 iax2 show users Hiển thị danh sách các user iax đã được tạo

8 iax set jitter Thiết lập bộ đệm cho iax

4. Cú pháp lệnh liên quan đến kênh SIP:

Stt Cú pháp Tác dụng

1 sip debug Bật debug kênh sip 2 sip no debug Tắt debug kênh sip

3 sip reload Tải lại các thông tin cấu hình sip 4 sip show channels Hiển thị danh sách các kênh sip

5 sip show peers Hiển thị danh sách các tài khoản sip đã được tạo

6 sip show registry Hiển thị trạng thái đăng ký của các tài khoản sip

7 sip show users Hiển thị danh sách tất các tài khoản sip đã được tạo

5.Cú pháp lệnh liên quan đến quản trị hệ thống:

Stt Cú pháp Tác dụng

1 restart gracefully Khới động lại hệ thống ở chế độ cẩn thận (khi

không còn cuộc gọi nào đang xử lý)

2 restart now Khởi động hệ thống ngay lập tức

3 restart when convenient Khởi động lại hệ thống khi thuận tiện (khi ít

người gọi)

4 reload Tải lại asterisk

5 stop gracefully Tắt Asterisk một cách cẩn trọng

6 stop now Tắt Asterisk ngay lập tức

7 stop when convenient Tắt asterisk khi thuận tiện

8 extensions reload Tải lại các thông tin cấu hình extension 9 show modules Hiển thị các modules đã được cấu hình 10 show uptime Hiển thị thời gian uptime của hệ thống

6.Các biến định nghĩa trong Asterisk:

Stt Biến Chú thích

1 ${ACCOUNTCODE} Mã tài khoản

2 ${CALLERID} Caller ID

3 ${CALLERIDNAME} Chỉ tên của phần caller ID

4 ${CALLERIDNUM} Chỉ số của phần Caller ID

5 ${CHANNEL} Tên của kênh hiện tại

6 ${CONTEX} Ngữ cảnh hiện tại

7 ${DATETIME} Ngày giờ hiện tại theo định dạng:YYYY-MM-DD- HH:MM:SS

8 ${DNID} Nhận dạng số đã quay

9 ${ENUM} Chứa kết quả của ứng dụng EnumLookup

10 ${EXTEN} Extension hiện tại

11 ${ENV(VAR)} Biến môi trường dạng (VAR)

12 ${HANGUPCAUSE} Nguyên nhân hangup cuộc gọi

13 ${INVALID_EXTEN} Extension được gọi không phù hợp

14 ${LANGUAGE} Ngôn ngữ hiện tại

15 ${LEN(VAR)} Chiều dài của chuỗi

16 ${MEETMESECS} Thời gian(giây) của một user ở trong phòng hội thoại

17 ${PRIORITY} Thứ tự ưu tiên

18 ${TIMESTAMP} Ngày giờ hiện tại,Định dạng:YYYYMMDD- HHMMSS

19 ${TXTCIDNAME} Chứa kết quả của ứng dụng TXTCIDName 20 ${UNIQUEID} Khóa nhận dạng cuộc gọi hiện tại

TÀI LIỆU THAM KHẢO

[1] Building Telephony Systems with Asterisk, David Gomillion & Barrie Dempster, 2006, PACKT.

[2] Asterisk : The Future of Telephony , Leif Madsen, Jared Smith & Jim Van Meggelen, 2005,O’Reilly.

[3] Asterisk Hacking, Benjamin Jackson & Champ Clark III,2007,Syngress. [4] http://www.asterisk.org [5] http://www.digium.com [6] http://www.voip-info/wiki-asterisk [7] http://www.asteriskguru.com [8] http://www.vfonex.com [9] http://my.opera.com/asteriskvn

Một phần của tài liệu Toàn tập về Asterisk (Trang 67 - 79)

Tải bản đầy đủ (PDF)

(79 trang)