» 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: 4397
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: 2914)
Lập trình CÁC TIN KHÁC
2. Cài MySql trong CenOS (Cập nhật: 28-4-2013 | Đã xem: 3543)
3. Viết ứng dụng Windows Phone chỉ trong 60 phút (Cập nhật: 27-6-2014 | Đã xem: 3073)
4. Tăng tốc độ xử lý CSDL MySQL (Cập nhật: 18-9-2013 | Đã xem: 3369)
5. Các ebook hay về PHP MySQL (Cập nhật: 22-10-2010 | Đã xem: 6663)
NGẪU NHIÊN
2. 5 sai lầm phong thủy dễ mắc phải (Cập nhật: 4-7-2014 | Đã xem: 2467)
4. 12 mẹo hay cho người dùng iPhone (Cập nhật: 29-6-2014 | Đã xem: 2555)
KháchLogin