LẬP TRÌNH ỨNG DỤNG TỔNG ĐÀI IP ASTERISK

68 1K 1
LẬP TRÌNH ỨNG DỤNG TỔNG ĐÀI IP ASTERISK

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CÔNG NGHỆ THOẠI IP BÀI LẬP TRÌNH ỨNG DỤNG TỔNG ĐÀI IP ASTERISK Cấu hình tổng đài với CLI • CLI - Command Line Interface • Lệnh “ # asterisk –r” để kết nối vào Asterisk Console Các lệnh cấu hình CLI • Lệnh “# CLI> ?” Lệnh “# CLI> help” giúp đỡ xem thông tin lệnh CLI Ví dụ số lệnh CLI • Lệnh “# CLI> sip” xem cấu hình có liên quan đến giao thức SIP extension channel • Lệnh “# CLI> sip show users” xem users SIP Asterisk • Lệnh “# CLI> dialplan” cấu hình Dialplan • Lệnh “# CLI> dialplan add extension ” tạo extension Lập trình AsteriskAsterisk cho phép lập trình Diaplan để người dùng thực yêu cầu cách nhanh chóng • Biểu thức lập trình kết hợp biến, toán tử để tạo kết • Biểu thức dùng để kiểm tra biến, thực tính toán toán học, thay đổi string… • Trong lập trình Asterisk, biểu thức bắt đầu ‘$’, biểu thức sau đặt dấu ngoặc vuông $[expression] • Ví dụ: $[${COUNT} + 1] $[${COUNT} / 2] Ví dụ lập trình Asterisk Biến Asterisk Asterisk sử dụng biến đối số application, cú pháp sử dụng sau: ${TenBien} TenBien chứa chuỗi ký tự alphanumeric người dùng đặt không phân biệt chữ hoa chữ thường Ví dụ : ${TenBien} ${TENBIEN} nhau, với biến có sẵn Asterisk phải gọi tên biến có phân biệt chữ hoa chữ thường Ví dụ : ${EXTEN} biến sẵn có Asterisk nên gọi ${exten} Biến Asterisk Có kiểu biến hệ thống Asterisk: • Biến toàn cục (global variables) : định nghĩa ngữ cảnh [globals] khai báo lệnh SetGlobalVar Một định nghĩa, biến sử dụng kênh thời điểm • Biến kênh (channel variables) : khai báo lệnh Set, biến kênh có hiệu lực bên kênh khai báo chúng Một kết thúc gọi biến kênh không tồn • Biến môi trường (environment variables) : biến mà Asterisk truy cập biến môi trường hệ điều hành linux Để truy cập biến môi trường dùng cú pháp : ${ENV(foo)} Trong trình khai báo biến cần ý là: khai báo biến toàn cục biến kênh tên giá trị biến biến kênh kênh khác gọi tên biến toàn cục giá trị biến toàn cục có hiệu lực biến kênh có hiệu lực kênh Lệnh Asterisk Lệnh hoàn chỉnh Dialplan có dạng sau: • Name (tên ký tự số) số nội • Priority (số thứ tự) : số nội bao gồm nhiều thứ tự thực hiện, thứ tự gọi “priority” • Application (or command) : thực ứng dụng cụ thể cho gọi exten => tương ứng với ứng dụng thực exten=> giống cho dòng thực Dialplan Hàm Asterisk • • • Đây phần quan trọng Diaplan tức ứng dụng thực dòng, Các ứng dụng thực quay số, trả lời gọi hay đơn giản nhấc máy, gác máy để biết thêm thông tin ứng dụng thông số kèm theo dùng lệnh show Aplications giao tiếp dòng lệnh Asterisk Background() : Ứng dụng thực phát file âm chờ nhận số từ phím nhấn máy điện thoại, sau nhận số từ phím nhấn máy điện thoại, Asterisk ngắt phát thông điệp xử lý chuyển đến số thứ tự priority tương ứng với số nhận Hàm Asterisk - Hàm dùng để thực công việc giống Sử dụng hàm giúp tiết kiệm thời gian công sức Hàm Asterisk cho phép tính toán độ dài string, ngày giờ, check MD5,… - Cú pháp hàm sau: TÊN_HÀM(đối số) - Cũng giống biến, để tham chiếu đến giá trị hàm cần đặt tên hàm dấu ngoặc nhọn {} dấu $ trước ${TÊN_HÀM(đối số)} - Hàm Asterisk đặt làm đối số hàm khác (phải đặt tên hàm dấu ngoặc kép {}, phía trước dấu $ ) ${TÊN_HÀM(${TÊN_HÀM(đối số)})} Một số dịch vụ Asterisk • IVR Server cho phép thực gọi rẽ nhánh tuỳ theo tương tác người gọi, hệ thống dịch vụ 1080 • Conference Server tạo phòng hội nghị cho phép nhiều người dùng tham gia vào gọi hội nghị; • Voice Mail: tạo hộp thư thoại, cho phép khách hàng lựa chọn hộp thư thoại tuỳ theo tương tác người gọi; • Ứng dụng phân phối gọi tự động ACD: phân phối gọi tự động ACD (Automatic Call Distribution), dành cho nhu cầu chăm sóc, hỗ trợ khách hàng hay tiếp nhận phản hồi từ khách hàng Dịch vụ trả lời tự động IVR Voicemail VoiceMail() dùng để chuyển người gọi sang hộp thư cụ thể có dạng mailbox@context Có thêm kí tự b(busy), u(unavailable message) exten => 101,1,Dial(${JOHN},10,r) exten => 101,2,VoiceMail(u101@default) exten => 101,102,VoiceMail(b101@default) Conferencing với MeetMe( ) Ứng dụng cho phép nhiều người trao đổi nói chuyện với họ địa điểm Một vài tiện ích nó:  Khả tạo password bảo vệ hội thoại  Quản lý hội thoại  Lựa chọn muting option all ngoại trừ người  Tạo phòng hội thoại static dynamic MeetMe() Chức Năng Hội Thoại cho phép nhiều người trao đổi nói chuyển với nhau, nơi mà người gọi đến để trao đổi nói chuyện gọi phòng hội thoại “room”, Asterisk cho phép tạo nhiều phòng hội thoại “room” tuỳ vào nhu cầu người sử dụng Trong hệ thống điện thoại truyền thống PSTN để sử dụng tính phải trả tiền Asterisk miễn phí Để cấu hình thực phòng hội thoại “room” cấu sau: Tạo phòng hội thoại “room” tập tin cấu hình meetme.conf Khai báo phòng hội thoại ”room” kế hoạch dialplan người gọi đến Dialplan qua tập tin cấu hình extention.conf 58 Ví dụ Conferencing [HoiThoai] exten => 1234,1,Goto(conf,1) exten =>conf,1,Set(MEETME_RECORDINGFILE=/tmp/ Tutorial-${TIMESTAMP}) exten => conf,2,Meetme(1234|sr) exten => conf,3,Hangup() ConfBridge() ConfBridge() tương tự MeetMe có thêm số tính năng: + Âm có tần số lấy mẫu cao với mẫu từ 896kHz + Hoạt động video tự động chuyển đổi nguồn tốt + Hệ thống menu điều khiển động cho quản trị viên người sử dụng + Các tùy chọn có sẵn tập tin confbridge.conf 60 Xử lý âm Asterisk • Băng thông ngày mở rộng âm có chất lượng thấp • Trong tương lai Asterisk sử dụng mã hóa âm có độ trung thực cao giao tiếp thiết bị Xây dựng tổng đài xử lý âm • Con người mong muốn triển khai công nghệ nói chuyện với người • Thách thức : thiết kế hệ thống đáp ứng yêu cầu thông dụng người dùng xử lý tình dự đoán • Có thể cài đặt với hệ thống mã nguồn mở text-to-speech nhận dạng âm Mã nguồn mở Festival  Festival hệ thống mã nguồn mở text-tospeech  Khi sử dụng chung Festival với Asterisk, dialplan chuyển đoạn văn cho Festival Sau Festival “đọc” nội dung văn cho người gọi  Một lợi ích dễ thấy Festival ta nghe nội dung email lái xe Mã nguồn mở Sphinx • Mã nguồn mở Sphinx cho phép nhận diện giọng nói hoạt động tốt bị hạn chế nén, tín hiệu nên không thực PSTN • Asterisk trở thành hệ thống nhận dạng giọng nói có tiềm có độ tin cậy tốt Zapateller() • Ngăn chặn gọi từ telemarketers • Sử dụng: Zapateller(options) Ví dụ: answer the line, and play the SIT tone if there is no Caller ID information exten => 123,1,Zapateller(answer|nocallerid) 65 Inbound call • Cuộc thoại gọi vào (Inbound call): thoại gọi từ bên tổng đài qua đường trung kế tới điện thoại IP • Dịch vụ gọi vào (Inbound Service): Dịch vụ Call center (Trung tâm gọi) cho phép điện thoại viên tiếp nhận điện thoại khách hàng gọi tới để giải đáp thông tin, tư vấn cho khách hàng Outbound call • Cuộc thoại gọi (Outbound call): thoại gọi từ máy nhánh tổng đài gửi qua trung kế tới điện thoại  Dịch vụ gọi (Outbound service): Dịch vụ Call center (Trung tâm gọi) cho phép điện thoại viên sử dụng điện thoại để gọi tới khách hàng với mục tiêu chăm sóc khách hàng, nâng cao hình ảnh thương hiệu Công ty HẾT PHẦN ... : thực ứng dụng cụ thể cho gọi exten => tương ứng với ứng dụng thực exten=> giống cho dòng thực Dialplan Hàm Asterisk • • • Đây phần quan trọng Diaplan tức ứng dụng thực dòng, Các ứng dụng thực... Trong lập trình Asterisk, biểu thức bắt đầu ‘$’, biểu thức sau đặt dấu ngoặc vuông $[expression] • Ví dụ: $[${COUNT} + 1] $[${COUNT} / 2] Ví dụ lập trình Asterisk Biến Asterisk Asterisk sử dụng. .. dialplan add extension ” tạo extension Lập trình Asterisk • Asterisk cho phép lập trình Diaplan để người dùng thực yêu cầu cách nhanh chóng • Biểu thức lập trình kết hợp biến, toán tử để tạo kết

Ngày đăng: 08/06/2017, 15:59

Mục lục

    BÀI 8 LẬP TRÌNH ỨNG DỤNG TỔNG ĐÀI IP ASTERISK

    Cấu hình tổng đài với CLI

    Các lệnh cấu hình CLI

    Lập trình trong Asterisk

    Ví dụ lập trình trong Asterisk

    Ví dụ hàm trong Asterisk

    Ví dụ toán tử

    Định nghĩa một Macro

    Sử dụng Macro trong Dialplan

    Chương trình con GoSub()

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

Tài liệu liên quan