Công nghệ thoại IP - Dialplan

10 629 8
Công nghệ thoại IP - Dialplan

Đang tải... (xem toàn văn)

Thông tin tài liệu

Công nghệ thoại IP - Dialplan

Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IPDialplanGIỚI THIỆU DIALPLANDialplan cho biết các cuộc gọi sẽ được xử lý như thế nào qua hệ thống Asterisk. Dialplan bao gồm tập hợp các dòng lệnh hay các ứng dụng theo một trình tự nào đó mà hệ thống phải thực hiện để đáp ứng nhu cầu chuyển mạch cuộc gọi. Để hiểu rõ và cấu hình thành công hệ thống Asterisk cần biết Dialplan hoạt động thế nào.Khác biệt với các hệ thống điện thoại truyền thống tất cả các công việc cấu hình hệ thống đều là từ phía người sử dụng. Dialplan được cấu hình qua tập tin extension.conf, các khái niệm:Extentions (số nội bộ) : số nội bộ là con số mà thuê bao đó cần gọi, là thành phần mà Dialplan thực hiện kích hoạt khi có cuộc gọi vào. Số nội bộ chính yếu tố để hệ thống xác định cuộc gọi cần thực hiện.Priorities (thứ tự thực hiện) : là thứ tự thực hiện các ứng dụng trong DialplanApplications (các ứng dụng) : đây là phần quan trọng trong Diaplan, gọi thực hiện các ứng dụng cụ thểContexts ( ngữ cảnh) : là các tình huống xử lý cụ thể mà người dùng đặt ra cho Dialplan xử lýDialplan được phân chia thành nhiều ngữ cảnh khác nhau như [incoming], [outgoing]… Trong mỗi ngữ cảnh, các dòng lệnh sẽ gọi thực hiện các ứng dụng trên 1 số nội bộ cụ thể và theo thứ tự ưu tiên được chỉ định trước.Lưu ý : Trước khi cấu hình cần lưu lại tập tin extention.conf gốc và thực hiện trên tập tin extention.conf rỗng.CẤU HÌNH DIALPLAN1. Khai báo ContextNgữ cảnh (context) là thành phần không thể thiếu để tổ chức Dialplan, không được đặt tên ngữ cảnh có khoảng trắng. Việc sử dụng ngữ cảnh cần đảm bảo tính bảo mật. Nếu sử dụng ngữ cảnh đúng, cho phép người gọi này thực hiện Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IPkhả năng đặc biệt nào đó (như là cuộc gọi đường dài) mà không cho phép đối với những người gọi khác. Sau đây là tổ chức các ngữ cảnh trong tập tin cấu hình extention.confNhư vậy ứng với mỗi trường hợp hệ thống sẽ có ngữ cảnh khác nhau, ngữ cảnh được đặt trong dấu [] .a) Ngữ cảnh [general]Ngữ cảnh đầu tiên trong tập tin extention.conf là [general]. Có 3 thông số được thiết lập tại ngữ cảnh này:• static=yes|no : hiện tại chỉ có giá trị yes là được sử dụng, nếu static=yes và writeprotect=no thì chúng ta có thể lưu dialplan từ dòng lệnh của Asterisk CLI>save dialplan. CLI là giao tiếp dòng lệnh của hệ thống Asterisk, tại đây chúng ta có thể thực hiện các lệnh tương tác với Asterisk như xem trạng thái các extention liệt kê các ứng dụng…, từ giao tiếp dòng lệnh củahệ điều hành linux chuyển qua giao tiếp dòng lệnh của Asterisk được thựchiện bằng lệnh #asterisk –r).• writeprotect = yes|no : Thiết lập bằng yes để lưu dialplan.• autofallthrough=yes|no : thiết lập giá trị yes thì sau khi hoàn tất việc xửlý cuộc gọi Asterisk sẽ kết thúc cuộc gọi, còn thiết lập giá trị no thì sau khi hoàn tất xử lý cuộc gọi thì hệ thống sẽ đợi extention khác quay số. Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IP Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IPb) Ngữ cảnh [global]N gữ cảnh [globals] là nơi khai báo các biến riêng tư định nghĩa để sử dụng trong các ngữ cảnh xử lý extention ở những phần tiếp theo. Các biến không phân biệt chữ hoa và chữ thường nên biến ${MYVAR} và ${mYvaR} là như nhau.Ví dụ :c) Các ngữ cảnh khácĐối với Asterisk khi nói đến ngữ cảnh thì thường quan tâm đến trường hợp cụ thể nào đó, do đó trong hệ thống sẽ có rất nhiều ngữ cảnh khác nhau.Ví dụ: khi gọi đến tổng đài Asterisk có một thông điệp thông báo như sau “Chào mừng các Bạn gọi đến công ty chúng tôi hãy nhấn phím 1 để gặp phòng kinh doanh phím 2 gặp phòng kỹ thuật…” khi người gọi chọn phím 1 thì hệ thống sẽ chuyển đến một ngữ cảnh là [PhongKinhDoanh] khi người gọi nhấn phím 2 thì hệ thống sẽ định hướng cuộc gọi qua ngữ cảnh [PhongKyThuat] .N goài ta khi cấu hình cho các kênh thoại thì ngữ cảnh ở đây là việc xử lý các cuộc gọi tương ứng với kênh đó qua kế hoạch diaplan.Ví dụ: Với tập tin SIP.confTrong tâp tin extention.conf Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IP2. Biến trong Asteriska. Phân loại biến trong DialplanAsterisk sử dụng biến trong các đối số của application, cú pháp được sử dụng như sau:${TenBien}TenBien chứa bất kỳ chuỗi số alphanumeric nhưng phải bắt đầu bằng một ký tự số. Biến do người dùng đặt không phân biệt chữ hoa chữ thường ví dụ : ${TenBien} và ${TENBIEN} là như nhau, nhưng với các biến có sẵn trong Asterisk phải gọi đúng tên biến vì có phân biệt chữ hoa chữ thường. Ví dụ ${EXTEN} là biến sẵn có trong Asterisk nên không thể gọi ${exten}, nếu gọi như vậy là sai.Có 3 kiểu biến trong hệ thống Asterisk:• Biến toàn cục (global variables) : được định nghĩa tại ngữ cảnh [globals]hoặc được khai báo bằng lệnh SetGlobalVar Một khi được định nghĩa, biến có thể được sử dụng bởi bất kỳ kênh nào tại bất kỳ thời điểm nào• Biến kênh (channel variables) : được khai báo bằng lệnh Set, biến kênh chỉcó hiệu lực bên trong kênh khai báo chúng. Một khi kết thúc cuộc gọi biến kênh cũng sẽ không còn tồn tại nữa• Biến môi trường (environment variables) : là biến mà Asterisk có thể truy cập biến môi trường của hệ điều hành linux. Để truy cập biến môi trường chúng ta dùng cú pháp : ${ENV(foo)}Trong quá trình khai báo biến cần chú ý là: nếu khai báo biến toàn cục và biến kênh cùng tên nhau thì giá trị của biến là biến kênh nhưng tại kênh khác nếu gọi tên biến toàn cục thì giá trị biến toàn cục có hiệu lực vì biến kênh chỉ có hiệu lực tại kênh đó.b. Một số biến định nghĩa bởi DialplanAsterisk định nghĩa một số biến giúp ích trong việc thực hiện Dialplan, các biến này có phân biệt chữ hoa chữ thường nên cần lưu ý khi gọi sử dụng, đa phần các biến do Asterisk định nghĩa đều có ký tự chữ hoa, một vài biến tiêu biểu:${ANSWEREDTIME} : Lưu tổng số thời gian đàm thoại${CHANNEL}: Kênh hiện tại${CONTEXT}: N gữ cảnh hiện tại Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IP${PRIORITY} : Thứ tự hiện tại${DIALSTATUS} : Trạng thái quay số như bận, không trả lời…3. Lệnh trong DialplanLệnh hoàn chỉnh trong Dialplan có dạng sau:•N ame (tên ký tự hoặc con số) của số nội bộ• Priority (số thứ tự) : mỗi số nội bộ có thể bao gồm nhiều thứ tự thực hiện, mỗi thứ tự gọi là “priority”• Application (or command) : thực hiện một ứng dụng cụ thể nào đó cho cuộc gọi exten => tương ứng với mỗi ứng dụng thực hiện. exten=> giống nhau cho mỗi dòng thực hiện trong Dialplan.Ví dụ:7325010 là số điện thoại mà thuê bao quay, còn các số 1 và 2 là các priorites tức là thứ tự thực hiện các lệnh. Khi thuê bao quay số 7325010 thì đổ chuông máy điện thoại tại Zap/1 trong vòng 20 giây. N ếu sau 20 giây không trả lời thì cuộc gọi sẽ được định hướng đến hộp thư thoại u7325010 chữ u ở đây có nghĩa là “ 'u'navailable message”.a) Name - số nội bộDialplan là một tập gồm nhiều số nội bộ, khi một cuộc gọi tương ứng với số nội bộ nào thì ứng dụng cho cuộc gọi đó sẽ được thực hiện. Số nội bộ có thể đơn giản với một đích danh cụ thể như 8051, letoan hay là một chuỗi so mẫu được thực hiện như _9xxx.Khai báo các số nội bộ tuỳ vào trường hợp sử dụng mà có phân biệt chữ hoa và chữ thường hay không. N ếu ta khai báo số nội bộ thế nào thì khi gọi đến phải gọi đúng như thế nghĩa là có phân biệt chữ hoa và chữ thường, còn số nội bộ sử dụng trong 1 ngữ cảnh thì không phân biệt chữ hoa hay thường.Ví dụ: phân biệt chữ hoa và chữ thường Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IP.Ví dụ: không phân biệt chữ hoa và chữ thườngExtention chính là số điện thoại nội bộ có 3 kiểu extention như sau: litteral, predifined và patternVí dụ:• Litteral : là cách khai báo thông thường chứa các con số, ký tự, hoặc cả hai. Ví dụ như : 8051, x-ten, 8051-SIP.• Predefined : đây là các extention được định nghĩa trước để xử lý các trường hợp có thể xảy ra trong kế hoạch dialplan như máy điện thoại không gắn với mạng, không trả lời, quá thời gian timeout, hay chuyển đến điện thoại viên… Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IPTrong đoạn dialplan trên thực hiện quay số máy nội bộ 100 trong thời gian 15 giây, nếu quá thời gian thì thông báo hết thời gian timeout với extention t, còn nếu máy điện thoại không trả lời hay không có trên mạng thì phát thông báo invalid qua extention i.• Pattern (So mẫu) : trong thực tế số máy điện thoại nội bộ thường là một dãy nhiều con số chẳng hạn từ 100-999, với một dãy số như thế để tối ưu trong khai báo ta dùng Pattern để giải quyết. Một số quy định tạo mẫu trong dialplan“_” là ký tự bắt đầu của một Pattern.Z là con số bất kỳ từ 1-9X là con số bất kỳ từ 0-9N là con số bất kỳ từ 2-9[] so khớp bất kỳ số hoặc vùng số nào được chỉ định trong dấu []“.” Dấu chấm đại diện cho mọi con số ( _1234. số đầu tiên là 1234 còn lại là số bất kỳ ví dụ 12345 hay 123456789 đều được )Chú ý : không sử dụng “_.” vì trong Pattern này sẽ so khớp tất cả kể cả các extention định nghĩa trước (Predefined) thay vào đó chúng ta sử dụng “_X.”Ví dụ: “_09XXXXXXXX” : Pattern các số điện thoại mạng di động việt nam“_092XXXXXXX” : Pattern các số điện thoại mạng HT mobile.“_098XXXXXXX” : Pattern các số điện thoại mạng VietTel mobile.“_059XXXXX” : Pattern các số điện thoại tại Tỉnh GiaLai“_11N ” : Pattern các số điện thoại đặc biệt như 113,114,115b) Priorities - thứ tự ưu tiênPriorities là thứ tự thực hiện các ứng dụng trong dialplan, khi thứ tự “1” được thực hiện thì kế tiếp là ứng dụng tại thứ tự số “2” được thực hiện. Asterisk không quan tâm thứ tự sắp xếp câu lệnh thế nào mà chỉ cần biết đến priorities trên mỗi dòng lệnh.Ví dụ:Kể từ version 1.2 của Asterisk thay vì sử dụng gán một con số cụ thể cho thứ tự thực hiện như trên thì ta có thể gán ký tự “n” cho mọi dòng “exten=>” điều này sẽ nói với Asterisk là ứng dụng với thứ tự tiếp theo sẽ thực hiện. Thứ tự thực hiện từng dòng 1 từ trên xuống dưới. Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IPVí dụ:c) Applications – hàm ứng dụngĐây là phần quan trọng trong Diaplan tức là ứng dụng nào sẽ được thực hiện trên mỗi dòng, các ứng dụng như thực hiện quay số, trả lời cuộc gọi hay đơn giản là nhấc máy, gác máy để biết thêm thông tin về các ứng dụng cũng như các thông số kèm theo dùng lệnh show Aplications trên giao tiếp dòng lệnh của Asterisk.Một số ứng dụng thường gặp trong Dialplan :• Background() : Ứng dụng này thực hiện phát một file âm thanh và chờ nhận con số từ phím nhấn của máy điện thoại, sau khi nhận con số từ phím nhấn máy điện thoại, Asterisk sẽ ngắt phát thông điệp và xử lý chuyển đến số thứ tự priority tương ứng với con số nhận được• Goto() : Là ứng dụng thực hiện nhảy từ context, extention, priority hiệnhành đến context, extention, priority được chỉ định trong ứng dụng goto().• GotoIf () : giống như Goto() nhưng có xem xét điều kiện • GotoIfTime(): giống như Goto() nhưng dựa vào giờ của hệ thống để quyết định có rẽ nhánh hay không.• Dial() : Ứng dụng thực hiện quay số điện thoại. Chẳng hạn khi chúng ta tiếp tục ví dụ ở trên thì khi chuyển đến các phòng tương ứng, Asterisk sẽ quay số SIP/8051 cho phòng kỹ thuật, iax2/8000 cho phòng Hành Chánh và gọi đến zap/1 cho phòng tiếp thị bán hàng.• Answer() : là ứng dụng thực hiện trả lời cuộc gọi, một số tình huống dialplan không cần ứng dụng này, nhưng theo logic của xử lý cuộc gọi thì nên sử dụng .• Playback() : thực hiện phát ra đoạn tin nhắn thoại với lời chào “hello-world” tên tập tin hello-world được đặt tại thư mục Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IP/var/lib/asterisk/sounds/đây là thư mục mặc định để lấy tập tin thoại sử dụng, nhưng nếu chúng tacó một tập tin hello-world đặt tại thư mục khác chúng ta cũng có thể chỉ rõ thư mục để ứng dụng playback() thực hiện ví dụ như playback (thumuc/hello-world) .• Hangup() : là ứng dụng thực hiện chức năng kết thúc cuộc gọi, một khi ứng dụng này thực hiện thì xem như kết thúc cuộc gọi hiện hành, các lệnh dialplan sau lời gọi ứng dụng sẽ không được thực hiện .• Read() : tiếp nhận dữ liệu nhập vào từ thuê bao.• Authenticate(): thực hiện xác minh con số thuê bao nhập vào, nếu đúng thì thứ tự (priority) tiếp theo sẽ thực hiện còn ngược lại sẽ kết thúc .• Record() : thu lại những tin nhắn thoại để phục vụ cho kế hoạch dialplan. [...]...Khoa Mạng máy tính & Truyền thơng – Đại học Cơng Nghệ Thơng Tin Mơn: Cơng nghệ thoại IP Ví dụ: c) Applications – hàm ứng dụng Đây là phần quan trọng trong Diaplan tức là ứng dụng nào sẽ được thực hiện trên mỗi dòng, các ứng dụng như thực hiện quay số, trả lời cuộc gọi... thông số kèm theo dùng lệnh show Aplications trên giao tiếp dòng lệnh của Asterisk. Một số ứng dụng thường gặp trong Dialplan : • Background() : Ứng dụng này thực hiện phát một file âm thanh và chờ nhận con số từ phím nhấn của máy điện thoại, sau khi nhận con số từ phím nhấn máy điện thoại, Asterisk sẽ ngắt phát thông điệp và xử lý chuyển đến số thứ tự priority tương ứng với con số nhận được • Goto()... hay khơng. • Dial() : Ứng dụng thực hiện quay số điện thoại. Chẳng hạn khi chúng ta tiếp tục ví dụ ở trên thì khi chuyển đến các phịng tương ứng, Asterisk sẽ quay số SIP/8051 cho phòng kỹ thuật, iax2/8000 cho phòng Hành Chánh và gọi đến zap/1 cho phòng tiếp thị bán hàng. • Answer() : là ứng dụng thực hiện trả lời cuộc gọi, một số tình huống dialplan khơng cần ứng dụng này, nhưng theo logic của... hiện trả lời cuộc gọi, một số tình huống dialplan khơng cần ứng dụng này, nhưng theo logic của xử lý cuộc gọi thì nên sử dụng . • Playback() : thực hiện phát ra đoạn tin nhắn thoại với lời chào “hello-world” tên tập tin hello-world được đặt tại thư mục . – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IP Khoa Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IPb) Ngữ cảnh. Mạng máy tính & Truyền thông – Đại học Công Nghệ Thông TinMôn: Công nghệ thoại IPDialplanGIỚI THIỆU DIALPLANDialplan cho biết các cuộc gọi sẽ

Ngày đăng: 17/09/2012, 11:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan