» Vị trí : Đang xem tin
Quản lý cuộc gọi theo thời gian với hàm GotoIfTime() trong Asterisk - LPAg | Computer | Mobile | Software & Hardware
Chuyên mục: Lập trình
Quản lý cuộc gọi theo thời gian với hàm GotoIfTime() trong Asterisk
Font: Giảm | Mặc định | Tăng | Cập nhật: 20-2-2014 | Đã xem: 3353
Bài toán: Các cuộc gọi vào giờ hành chánh từ 7h30 đến 16h30 thì chuyển đến số điện thoại 224, ngoài giờ hành chánh, ngày thứ bảy, chủ nhật và ngày lễ thì chuyển cuộc gọi đến số điện thoại 225.

GotoIfTime(times,days_of_week, days_of_month,months?lable)

Giải thích: 
+ Times : thời gian trong ngày như bài toán trên thì times sẽ có giá trị là 07:30-16:30, Nếu khai báo dấu * có nghĩa là bất cứ thời gian nào trong ngày.

+ days_of_week : đây là danh sách ngày trong tuần : mon, tue, wed, thu, fri, sat, sun; theo bài toán thì khai báo như sau: mon-fri. Cách khác có thể khai báo như sau: mon & tue& wed& thu& friNếu khai báo dấu * có nghĩa là bất cứ thời gian nào trong ngày. 

+ days_of_month: ngày trong tháng, có giá trị từ 1-31. Nếu khai báo dấu * có nghĩa là bất kỳ ngày nào trong tháng. Có thể khai báo ngày 1 và ngày 5 thì khai báo: 1&5

+ months: Tháng trong năm, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, có thể khai báo tháng 1 đến tháng 4 như sau: jan-apr, hoặc Jan&Feb&Mar&Apr Nếu khai báo dấu * có nghĩa là bất kỳ tháng nào trong năm

+ lable : nếu điều kiện thỏa thì đi đến nhãn này.

Giải bài toán : 
exten=> s,1, GotoIfTime(*,*,1,1? NgayNghi,s,1)
same=> n,GotoIfTime(*,*,1,5? NgayNghi,s,1)
same=> n,GotoIfTime(*,*,30,3? NgayNghi,s,1)
same=> n,GotoIfTime(*,*,2,9? NgayNghi,s,1)

same=> n,GotoIfTime(07:30-16:30, mon-fri, *,*? NgayLamViec,s,1)
same=> n,Goto(NgayNghi,s,1)
[NgayNghi]
exten=> s,1,dial(SIP/ 224,30)
same=> n,Hangup()
[NgayLamViec]
exten=> s,1,dial(SIP/225,30)
same=> n,Hangup()

+ exten=> s,1, GotoIfTime(*,*,1,1?NgayNghi,s,1) : có nghĩa là bất cứ giờ nào, bất cứ thứ mấy trong tuần, ngày tết dương lịch 1 tháng 1 hàng năm thì chuyển cuộc gọi đến ngữ cảnh NgayNghi, giải thích tương tự cho các hàm same=> n,GotoIfTime(*,*,1,5? NgayNghi,s,1), same=> n,GotoIfTime(*,*,30,3? NgayNghi,s,1), same=> n,GotoIfTime(*,*,2,9? NgayNghi,s,1)

+ same=> n,GotoIfTime(07:30-16:30, mon-fri, *,*? NgayLamViec,s,1) : ngày làm việc bình thường thì chuyển đến số điện thoại 224 tại ngữ cảnh NgayLamViec.

+ Thời gian và ngày còn lại được xem là ngày nghỉ nên chuyển đến số điện thoại 225 tại ngữ cảnh NgayNghi

Tác giả: Lê Quốc Toàn
Nguồn: http://my.opera.com/asteriskvn/blog/
Tags:asterisk, lập trình
Lập trình TIN MỚI NHẤT
TAGS CÙNG CHỦ ĐỀ
5. [WP8] Đọc file từ thẻ nhớ SDCard (Cập nhật: 25-8-2014 | Đã xem: 2401)
Lập trình CÁC TIN KHÁC
1. Nhận dạng trình duyệt di động (Cập nhật: 20-2-2011 | Đã xem: 6321)
2. Các ebook hay về PHP MySQL (Cập nhật: 22-10-2010 | Đã xem: 5983)
3. [WP8] Đọc file từ thẻ nhớ SDCard (Cập nhật: 25-8-2014 | Đã xem: 2401)
4. Cài PHP trong CenOS (Cập nhật: 28-4-2013 | Đã xem: 2806)
5. Function chuyển số sang chữ bằng ASP (Cập nhật: 4-11-2010 | Đã xem: 6183)
NGẪU NHIÊN
1. Song: Trách Ai Vô Tình - Giáng Tiên (Cập nhật: 14-7-2014 | Đã xem: 2499)
3. Các ứng dụng hay cho người thường đi công tác (Cập nhật: 17-11-2016 | Đã xem: 1022)
KháchLogin