Các dịch vụ chính trong mạng NGN

Một phần của tài liệu xây dựng trung tâm quà tặng âm nhạc trên nền asterisk (Trang 54 - 128)

 Ứng dụng làm SS7, PRI Gateway ( giảm tải Internet ).

 Trung kế ảo - tổng đài chuyển mạch gói chuyển tiếp.

 Tổng đài chuyển mạch nội hạt

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

Chương III

CÁC MÔ HÌNH ỨNG DỤNG VÀ CẤU HÌNH HOẠT ĐỘNG CHO ASTERISK

Asterisk thực hiện rất nhiều ngữ cảnh ứng dụng khác nhau tuỳ vào nhu cầu sử dụng, dƣới dây là những ngữ cảnh ứng dụng thƣờng đƣợc sử dụng trong thực tế triển khai hệ thống asterisk.

3.1 Tổng đài IP PBX

Hình 3.1 : IP PBX

Đây là hệ thống chuyển mạch voip đƣợc xây dựng phục vụ các công ty có nhu cầu thực hiện trên nền tảng mạng nội bộ đã triển khai. Thay vì lắp đặt một hệ thống PBX cho nhu cầu liên lạc nội bộ thì nên lắp đặt hệ thống voip điều này sẽ làm giảm chi phí đáng kể. Hệ thống có thể liên lạc với mạng PSTN qua giao tiếp TDM.

3.2 Kết nối IP PBX với PBX

Một ngữ cảnh đặt ra ở đây là hiện tại Công ty đã trang bị hệ thống PBX bây giờ cần trang bị thêm để đáp ứng nhu cầu liên lạc trong công ty sao cho với chi phí thấp nhất, giải pháp để thực hiện đó là trang bị hệ thống asterisk và kết nối với hệ

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

thống PBX đang tồn tại qua luồng E1. Ngoài ra để tăng khả năng liên lạc với mạng PSTN và VOIP khác, Công Ty có thể thực hiện kết nối với nhà cung cấp dịch vụ voip.

Hình 3.2 : Kết nối IP PBX với PBX

3.3 Kết nối giữa các server Asterisk

Phƣơng pháp này ứng dụng rất hiệu quả cho các công ty nằm rãi rác ở các vị trị địa lý khác nhau nhằm giảm chi phí đƣờng dài. Ví dụ Công ty Mẹ có trụ sở đặt tại nƣớc Mỹ và các Chi nhánh đặt tại Việt Nam với các địa điểm Thành phố Hồ Chí Minh và Hà Nội. Thông qua mạng WAN của Công Ty các cuộc gọi nội bộ giữa các vị trí khác nhau sẽ làm giảm chi phí đáng kể. Ngữ cảnh này về mặt pháp luật không cho cuộc gọi từ Mỹ vào Việt Nam.

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

Hình 3.3 : Kết nối giữa các Server Asterisk

3.4 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

Ứng dụng thực hiện các server kết nối với hệ thống PSTN hay tổng đài PBX để triển khai các ứng dụng nhƣ tƣơng tác thoại IVR. Một ví dụ cho ứng dụng tƣơng tác thoại đó là cho biết kết quả sổ số hay kiểm tra cƣớc cuộc gọi giống dịch vụ 19001260 vậy. thoại cùng nói chuyện với nhau. Ứng dụng VoiceMail thu nhận những tin nhắn thoại từ phía thuê bao giống nhƣ chức năng hộp thƣ thoại của Bƣu Điện Thành phố triển khai. Còn chức năng điện thoại hội nghị thiết lập cho nhiều máy điện.

3.5 Chức năng Phân phối cuộc gọi tự động ACD

ACD (Automatic Call Distribution): Phân phối cuộc gọi tự động. Đây là chức năng ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hổi từ phía khách hàng. Công ty có khả năng tiếp nhận cùng một lúc 10 cuộc gọi nhƣ thế cuộc gọi thứ 11 gọi đến thì hệ thống giải quyết nhƣ thế nào?. Bình thƣờng thì sẽ nghe tín hiệu bận nhƣng với chức năng phân phối cuộc gọi sẽ đƣa thuê bao đó vào hàng đợi để chờ trả lời, trong khi chờ trả lời cuộc gọi thuê bao có thể nghe những bài hát hay do asterisk cung cấp, trong lúc này nếu 1 trong mƣời số điện thoại trở về trạng thái rỗi thì cuộc gọi đang chờ sẽ đƣợc trả lời. Giống nhƣ chức năng của dịch vụ 1080 hay 116 của Bƣu Điện Thành Phố vậy.

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

3.6 Tổ chức thư mục của Asterisk

/etc/asterisk/

Thƣ mục /etc/asterisk/ chứa tất cả các tập tin cấu hình của hệ thống Asterisk ngoại trừ tập tin Zaptel.conf đƣợc đặt tại thƣ mục /etc/.

/usr/lib/asterisk/modules/

Thƣ mục /usr/lib/asterisk/modules/ chứa tất cả các module cần thiết để asterisk hoạt động. Bên trong thƣ mục là các ứng dụng khác nhau, các codec, các định dạng âm thanh(format) và các kênh thôngtin(channel). Theo mặc định Asterisk sẽ nạp tất cả các module vào lúc khởi động. Chúng ta có thể không cho nạp một module bất kỳ bằng cách không khai báo sử dụng trong tập tin modules.conf. Lƣu ý khi không cho nạp module thì phải biết chắc module đó không làm ảnh hƣởng hoạt động của asterisk nếu không lỗi sẽ xuất hiện.

/var/lib/asterisk

Các thƣ mục con của thƣ mục /var/lib/asterisk/ bao gồm:

agi-bin/

Thƣ mục agi-bin/ chứa các script của ngƣời dùng mà Asterisk có thể định vị sử dụng qua các ứng dụng AGI. AGI là phần giao tiếp với ngôn ngữ lập trình script để thực hiện một số công việc của Asterisk từ bên ngoài.

mohmp3/

Khi cấu hình Asterisk sử dụng tính năng Music on Hold, tính năng hoạt động sẽ thực hiện lấy các tập tin mp3 tại thƣ mục moh/. Tập tin định dạng theo chuẩn của Asterisk nên khi sử dụng các file Mp3 thông thƣờng cần có sự chuyển đổi thích hợp trƣớc khi chép vào thƣ mục trên để sử dụng.

sounds/

Tất cả các tập tin âm thanh liên quan đến nhắc thoại của Asterisk đƣợc đặt tại thƣ mục sounds/. Nội dung của các tập tin chứa trong thƣ mục đƣợc liệt kê qua tập tin sounds.txt đặt tại thƣ mục mã nguồn của Asterisk. Còn nội dung của các tập tin âm thanh đƣợc mở rộng thêm đƣợc liệt kê trong tập tin sounds-extra.txt đặt trong thƣ mục đƣợc trích ra khi bung gói asterisk-sounds.

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

/var/spool/asterisk/

Thƣ mục /var/spool/asterisk/ Chứa nhiều thƣ mục con bao gồm outgoing/, qcall, tmp/, voicemail/. Asterisk luôn kiểm qua thƣ mục outgoing và qcall vì đây là hai thƣ mục chứa các tập tin dạng text chứa thông tin yêu cầu cuộc gọi. Các tập tin đó cho phép tạo ra cuộc gọi đơn giản bằng cách chép tập tin đúng cấu trúc quy định vào thƣ mục outgoing/. Sau đây là cấu trúc cây thƣ mục:

Hình 3.6 Cấu trúc cây thƣ mục

Thƣ mục tmp/ sử dụng để lƣu trữ những thông tin tạm, để luôn bảo đảm không xảy ra tình trạng đọc và viết tập tin cùng một lúc. Khi yêu cầu xử lý tập tin chúng ta thao tác trên thƣ mục tmp/ trƣớc khi lƣu vào tập tin đích. Tất cả các lời nhắc thoại từ phía ngƣời sử dụng và các lời nhắc thoại sử dụng cho thao tác hộp voicemail đều đƣợc chứa trong thƣ mục voicemail/. Một hộp thƣ thoại đƣợc tạo ra ứng với một máy nội bộ trong tập tin voicemail.conf, sẽ đƣợc tạora một thƣ mục con tƣơng ứng cho máy nội bộ đó tại thƣ mục voicemail/.

/var/run/

Thƣ mục /var/run/ chứa thông tin process ID(pid) cho tất cả các tiến trình đang hoạt động trong hệ thống, bao gồm cả Asterisk. Lƣu ý là ứng với mỗi hệ điều hành thƣ mục /var/run/ có thể khác.

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

/var/log/asterisk/

Thƣ mục /var/log/asterisk/ là nơi Asterisk chứa tất cả các tập tin nhật ký hay còn gọi là tập tin log. Chúng ta có thể tuỳ biến các loại thông tin đƣợc lƣu trong các tập tin log khác nhau qua tập tin cấu hình logger.conf đặt tại thƣ mục /etc/asterisk.

/var/log/asterisk/cdr-csv

Thƣ mục /var/log/asterisk/cdr-csv đƣợc sử dụng để lƣu chi tiết cuộc gọi CDR, hông tin mặc định về chi tiết thông tin cuộc gọi lƣu trữ trong tập tin Master.CVS, hƣng thƣờng thì ứng với mỗi mã accountcode sẽ tạo một thƣ mục riêng để lƣu chi tiết cuộc gọi cho máy đó.

3.7 Một số lệnh thao tác trên hệ thống asterisk

Asterisk có hai thành phần đƣợc xây dụng tích hợp với nhau và chạy song song nhau:

 Asterisk Server bình thƣờng chạy ở chế độ nền(background) giống các sevices rong window.

 Asterisk Client ở chế độ dòng lệnh CLI giao tiếp với Asterisk Server, thực thi các lệnh để kiểm tra, hay xem các thông tin của server.

Để Chạy và dừng Asterisk ở chế độ nền chúng ta thực hiện lệnh sau:

#/etc/init.d/asterisk (start|stop)

Một khi Asterisk đã chạy chúng ta có thể chuyển qua chế độ CLI từ dấu nhắc lệnh của linux nhƣ sau:

#asterisk –r

Khi vào chế độ lệnh nếu muốn thoát về lại dấu nhắc linux chúng ta dùng lệnh: CLI>exit

Các lệnh cơ bản thực hiện tại CLI>:

Bất cứ khi nào chỉnh sửa các tập tin cấu hình chúng ta đều cần phải nạp lại để các thay đổi có hiệu lực, điều đó thực hiện bằng lệnh:

#CLI>reload

Bật chế độ debug cho kênh thông tin SIP hoặc IAX2

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

#CLI> SIP debug

Tắt chế độ debug cho kênh thông tin SIP hoặc IAX2

#CLI> IAX2 no debug #CLI> SIP no debug

Hiển thị các trạng thái thông tin của users, peers và channels của SIP hoặc IAX2:

#CLI> sip show users

#CLI> sip show peers #CLI> sip show channels #CLI> iax2 show peers #CLI> iax2 show users #CLI> iax2 show channels

3.8 Cách thức cấu hình trên các tập tin cơ bản

Tất cả các file cấu hình cho hệ thống Asterisk đều nằm tại thƣ mục

etc/asterisk ngoại trừ file zaptel.conf cấu hình cho phần cứng TDM nằm tại thƣ mục

/etc. Cách thức cấu hình giống nhƣ tập tin .ini của Window. Các nội dung sau dấu chấm phảy “;”là nội dung chú thích trong file cấu hình. Tất cả các khoảng trắng trong file cấu hình đều đƣợc bỏ qua và không có ý nghĩa.Cú pháp thực hiện giống nhau

Trong file cấu hình còn có hai phép gán rất thƣờng xuyên đƣợc sử dụng, phép gán “=” là dùng cho việc gán các biến, còn phép gán “=>” dùng cho việc gán các đối tƣợng sau đây là một ví dụ cho file cấu hình:

Extension.conf

;

;Đây là các dòng chú thích ;

[section]

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

[section2]

Key=>object ; Gán giá trị cho đối tượng

Cú pháp thực hiện giống nhau cho tất cả các file cấu hình nhƣng có vài kiểu khác nhau cho mỗi file cầu hình dựa vào thức cách hoạt động của chúng.

3.9 Cách thức hoạt động của tập tin cấu hình

Có ba kiểu cách thức hoạt động của tập tin cấu hình nhƣ sau:

Simple Group

Có hiệu lực trên từng dòng trong file. Đây là kiểu cấu hình đơn giản nhất thƣờng sử dụng trong các file extention.conf, meetme.conf, voicemail.conf tƣơng ứng với mỗi dòng khai báo là một đối tƣợng có ý nghĩa trên dòng đó. Ví dụ:

Extention.conf

[section]

object1=> op1,op2,op3 object2=> op1b,op2b,op3b

Trong ví dụ trên mỗi dòng tƣơng ứng với các toán tử khác nhau object1 có các toán từ op1, op2, op3 trong khi đó object2 lại có các toán từ op1b, op2b, op3b.

Option inheritance

Đây là cấu hình kiểu thừa kế thƣờng đƣợc cấu hình trong các file zapata.conf, agent.conf. với kiểu cấu hình này thì các dòng phía dƣới có thể thừa kế các thông số dòng phía trên, tƣơng ứng với mỗi section các dòng phía dƣới có thể thay đổi các thông số cho tƣơng ứng.

Ví dụ: Extention.conf [section] Op1=bas Op2=adv Object1=>1 Op1=int Object1=>2

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

Với cấu hình trên có thể giải thích nhƣ sau object1=>1 thừa hƣởng hai thông số ở phía trên đó là op1=bas và op2=adv trong khi đó đối với object1=>2 với thông số op1=int đƣợc khai báo lại nên object1=>2 đƣợc thừa kế từ hai thông số op1=int và op2=adv.

Complex Entity

Với cấu kiểu này đƣợc tổ chức thành nhiều entity, ứng với mỗi entity có nhiều thông số đƣợc khai báo, mỗi entity ở đây chính là các section để khai báo các kênh thông tin. Cấu hình thƣờng đƣợc sử dụng trong các file iax.conf, sip.conf. Ví dụ: Extention.conf [entity1] Op1=value1 Op2=value2 [entity2] Op1=value3 Op2=value4

Entity1 có các giá trị value1 và value2 cho thông số op1 và op2, trong khi đó cũng là thông số op1 và op 2 nhƣng có các giá trị khác là value3 và value4 cho entity2.

3.10 Tập tin cấu hình

3.10.1 Giới thiệu dialplan

Dialplan là trái tim của hệ thống asterisk. Dialplan 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 thì điều kiện tiên quyết là phải biết nhƣ thế nào dialplan hoạt động.

Dialplan là công việc thiết lập cho hoạt động của hệ thống nhƣ định hƣớng các cuộc gọi vào và ra hệ thống, đó là một danh sách các bƣớc hay các lệnh liên tục nhau để thực hiện một tác vụ nào đó mà hệ thống phải thực hiện theo. 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ừ

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

phía ngƣời sử dụng. Hệ thống chúng ta có hoàn chỉnh tốt hay không phụ thuộc rất nhiều vào việc chúng ta hiểu rõ vào dialplan hay không.

Dialplan đƣợc cấu hình qua tập tin extension.conf, liên quan đến việc cấu hình dialplan có những khái niệm cần nắm đó là:

Extentions: Điện thoại nội bộ. Priorities: Thứ tự thực hiện. Applications: Các ứng dụng. Contexts: Các ngữ cảnh. Extentions

Dialplan là một tập gồm nhiều extention, khi một cuộc gọi tƣơng ứng với extention nào thì ứng dụng cho cuộc gọi đó sẽ đƣợc thực hiện. extention 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. Ví dụ :

/etc/asterisk/extention.conf

exten=>8051,1,dial(sip/8051,20) exten=>8051,2,hangup()

“exten=>” giống nhau cho mỗi dòng thực hiện trong dialplan, 8051 là số điện thoại mà thuê bao quay hay là extention, còn các con 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ố 8051 thì đỗ chuông máy ip sip 8051 nếu trong vòng 20 giây mà thuê bao không nhấc máy thì kết thúc cuộc gọi.

Extension là thành phần mà asterisk thực hiện theo, đƣợc kích hoạt khi có cuộc gọi vào extension chính là con số mà thuê bao đó cần gọi. Trong mỗi ngữ cảnh sẽ có thể có nhiều extension. Extenstion chính là hạt nhân để hệ thống xác định cuộc gọi cần thực hiện. Extenstion hoàn chỉnh gồm có các phần :

exten => Name,priority,application( )

Name (Tên ký tự hoặc con số) của extension.

Priority (Mỗi extension có thể bao gồm nhiều bƣớc mỗi bƣớc đƣợc 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.

Chương III : Các mô hình ứng dụng và cấu hình hoạt động cho Asterisk

Một extensionnum có nhiều dạng nhƣ sau: Một ví dụ cụ thể nhƣ sau:

/etc/asterisk/extention.conf

exten => 7325010,1,Dial(Zap/1,20)

exten => 7325010,2,Voicemail(u7325010)

exten => Tƣơng ứng với mỗi ứng dụng thực hiện

7325010 là con số nhận đƣợc khi thuê bao chủ gọi quay số. 1, 2 là các “priority” thứ tự đƣợc thực hiện 1 rồi tới 2…

Trong ví dụ của chúng ta con số 7325010 sẽ đƣợc gửi đến kênh zap/1 rung chuông tối đa 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”.

Priorities – Thứ tự thực hiện

Priorities 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, kể từ vertion 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ì ở đây 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.

Một phần của tài liệu xây dựng trung tâm quà tặng âm nhạc trên nền asterisk (Trang 54 - 128)