1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tổng quan về Asterisk - chương 4

25 783 7
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Cấu Hình Hệ Thống Asterisk
Tác giả Lê Quốc Toàn
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Sách
Năm xuất bản 2025
Thành phố Hồ Chí Minh
Định dạng
Số trang 25
Dung lượng 353,59 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Asterisk là hệ thống chuyển mạch mềm, là phần mềm nguồn mở được viết bằng ngôn ngữ C chạy trên hệ điều hành linux thực hiện tất cả các tính năng của tổng đài PBX và hơn thế nữa.

Trang 1

#CLI> sip show channels

#CLI> iax2 show peers

#CLI> iax2 show users

#CLI> iax2 show channels

Đến thời điểm này có thể nói chúng ta đã hoàn thành cài đặt hệ thốngAsterisk, cài đặt xong mới là bước mở đầu, để cho hệ thống Asterisk hoạt động vớitừng ứng dụng cụ thể chúng sẽ tiếp tục thực hiện các giai đoạn được xem là quantrọng nhất trong việc triển khai hệ thống Asterisk, đó là giai đoạn cấu hình hệ thống,lên kế hoạch Diaplan chương còn lại đều nhắm đến mục tiêu này

1 GIỚI THIỆU

Sau khi hoàn tất phần cài đặt hệ thống asterisk, một bước quan trọng tiếp theo

là cấu hình hệ thống, có thể nói đây là bước quan trọng nhất của việc khiển khai hệthống đến với từng ứng dụng cụ thể Trong chương này xin giới thiệu cái nhìn đầutiên về việc cấu hình trước khi đi sâu hơn ở những chương sau, những gì giới thiệu

Trang 2

trong chương này là nền móng cơ bản nhưng đủ để hiểu làm thế nào hệ thống có thểhoạt động được, nội dung chính bao gồm:

+ Thao tác cấu hình trên hệ thống tập tin của asterisk

+ Cách cài đặt phần mềm softphone trên công nghệ sip

+ Cấu hình cho hai máy softphone liên lạc với nhau

+ Cấu hình phát thông điệp

+ Quay số qua Sip và mạng PSTN

2 Tập Tin cấu hình

Tất cả các file cấu hình cho hệ thống asterisk đều nằm tại thư mục /etc/asteriskngoại trừ file zaptel.conf cấu hình cho phần cứng TDM nằm tại thư mục /etc, cáchthức cấu hình giống như tập tin ini của window vậy Các nội dung sau dấu chấmphảy ; là nội dung chú thích trong file cấu hình giống như chú thích trong ngôn ngữlập trình C là dấu // Tất cả các khoảng trắng trong tập tin đều được bỏ qua không có

ý nghĩa trong file cấu hình

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áncác đối tượng sau đây là một ví dụ cho file cấu hình:

Extention.conf

Trang 3

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

; [section]

Key=value ; gán giá trị cho biến [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ểukhá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 Các kiểu ảnh hưởng trong tập 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:

Zapata conf [channels]

Context=From_PSTNSignalling=fxs_ksGroup=1

Trang 4

[xten]

Type=friendSecret=6789Host=dynamicContext=NoiBo

1 Simple Group

Đây là kiểu cấu hình đơn giản nhất thường sử dụng trong các fileextention.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 đó

2 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ácthông số cho tương ứng

Trang 5

Ví dụ:

Extention.conf[section]

Op1=basOp2=advObject1=>1Op1=intObject1=>2

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

3 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ềuthông số được khai báo, mỗi entity ở đây chính là các section để khai báo các kênhthông tin Cấu hình thường được sử dụng trong các file iax.conf, sip.conf

Ví dụ:

Extention.conf

Trang 6

Op1=value1Op2=value2[entity2]

Op1=value3Op2=value4Entity1 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 choentity2

4 Cấu hình giao tiếp với mạng PSTN

1 Ngữ cảnh kết nối

Để kết nối với mạng PSTN chúng ta cần phải có một card TDM với CổngFXO và một đường dây điện thoại hoặc có thể là một tổng đài nội bộ PBX Cónhiều nhà sản xuất phần cứng khác nhau nhưng trong phần cấu hình dưới dây là cấuhình cho card zapata TDM01B của digium (card này hiện nay giá bán khoảng175$)

Trang 7

Hình Giao tiếp với FXO và FXS

Ở hình trên chúng ta đang tiến hành cấu hình cho port FXO

2 Lắp đặt card TDM01B và cấu hình.

Trước khi lắp đặt card TDM01B hãy tắt nguồn máy tính và kiểm tra cổngPCI có tương thích để gắn vào hay không Sau khi hoàn tất hãy bật máy tính trở lại

và chuẩn bị cấu hình cho card hoạt động

Cấu hình cho card hoạt động thông qua hai file cấu hình đó là file zaptel.conf nằm trong thư mục /etc và file zapata.conf tại thư mục /etc/asterisk, cấu hình trong file zapata.conf để cho kênh FXO hoạt động.

Tại thời điểm này chỉ ở mức cơ bản nên không giải thích kỹ các thông số cấu

hình một cách chi tiết, nếu muốn tham khảo thêm kỹ hơn xin mời xem chương Cấu

Hình Kết Nối Với Mạng PSTN

Trang 8

Để giữ lại các cấu hình cũ nên lưu lại để đề phòng bất trắc cần khôi phục lại

channels=1

/etc/asterisk/zapata.conf

[channels]

Group=1 context=default ;cuộc gọi vào sẽ đến [default] qua file extensions.conf

signalling=fxs_ks ;Sử dụng tín hiệu FXS cho kênh FXO

channel => 1 ;Đường dây điện thoại được gắn với port 1

Sau khi cấu hình xong tiến hành nạp driver và nạp lại file cấu hình cho cardhoạt động như sau

Trang 9

Trong phần này cũng sẽ giới thiệu cấu hình khai báo đơn giản điện thoại IP

SIP phone, để có thông tin chi tiết hơn xin mời tham khảo chương Cấu Hình Giao

Thức SIP và IAX

Thực hiện cấu hình trong file /etc/asterisk/sip.conf Các máy điện thoại sẽ cấu

hình trong file này trước khi quay số hay nhận cuộc gọi

1 Phần khai báo Chung

Trong file sip.conf có section [general] dùng để khai báo các thông số chungcho tất cả các kênh sip trong toàn bộ tập tin này, nhưng các thông số đó có thể manggiá trị khác trong phần khai báo trên các kênh riêng để phù hợp với kênh đó

Sau đây là các thông số chính:

Allow/disallow: Định nghĩa sử dụng các codec.

Bindaddr: Địa chỉ IP mà client kết nối đến kênh này, nếu thông số này được

khai báo là 0.0.0.0 cho phép tất cả các địa chỉ IP có thể kết nối đến kênh này

Context : Tất cả các cuộc gọi mặc định sẽ được chuyển đến ngữ cảnh này

ngoại trừ phần dưới file cấu hình có khai báo ngữ cảnh khác

Bindport: Cổng SIP UDP mà client cần kết nối đến.

Maxexpirey: Thời gian tối đa để đăng ký, đơn vị tính bằng giây.

Defaultexpirey: Thời gian mặc định để đăng ký, đơn vị tính bằng giây.

Register: Để kết nối giao tiếp với server khác.

Ví dụ:

Trang 10

[general]

Bindport=5060 Bindaddr=0.0.0.0 Context=default Disallow=all Allow=ulaw Maxexpirey=120

Defaultexpirey=80

2 Khai báo kênh SIP

Trong phần này sẽ khai báo các kênh sip riêng cho từng điện thoại ip sipphone, tất nhiên các thông số trong phần [general] sẽ có hiệu lực trên các kênh nàyngoại trừ tại phần khai báo các kênh này khai báo lại thông số ở phần trên

Sau đây là các thông số dành khai báo riêng cho từng kênh SIP:

[name]: đây là phần khai báo máy điện thoại extention ip sip, có thể là ký tự

nhưng thường là các con số quay vì trên các phím điện thoại thường là các con số

mà thôi

Type: Kiểu kết nối thông tin user, peer hay friend

Host : Địa chỉ IP hay tên miền mà client kết nối với kênh này thường dùng giá

trị là “dynamic” cho tất cả client kết nối đến

Trang 11

Secret : mật khẩu để sử dụng kênh này Máy điện thoại phía client phải khai

báo trùng với thông số này thì mới sử dụng được

Ví dụ:

/etc/asterisk/sip.conf

[8000]

Type=friend Secret=123456 Context=NoiBo Host=dynamic

[8001]

Type=friend Secret=2222 Context=NoiBo

Host=192.168.5.16

6 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ònglệ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ốngasterisk 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áccuộ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

Trang 12

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

1 Extentions

Dialplan là một tập gồm nhiều extention, khi một cuộc gọi tương ứng vớiextention nào thì ứng dụng cho cuộc gọi đó sẽ được thực hiện extention có thể đơngiản với một đích danh cụ thể như 8051, letoan hay là một chuỗi so mẫu được thựchiện như _9xxx

Trang 13

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

Trang 14

sẽ có thể có nhiều extension Extenstion chính là hạt nhân để hệ thống xác địnhcuộ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à

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

7325010 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 rungchuô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 địnhhướng đến hộp thư thoại u7325010 chữ u ở đây có nghĩa là “ 'u'navailablemessage”

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

Trang 15

Priorities là thứ tự thực hiện các ứng dụng trong dialplan, khi thứ tự “1” đượcthự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.2củ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

Trang 16

CLI> show Aplications

4 Contexts - Ngữ cảnh

Đầu tiên hãy hình dung như thế này, khi Cô Giáo và Sinh Viên trao đổi vềmôn cơ sở tin học viễn thông có nghĩa là ngữ cảnh(context) lúc này chỉ tập trungvào lĩnh vực viễn thông mà thôi Như vậy ngữ cảnh (context) đã được giới hạntrong một tình huống cụ thể, đối với Asterisk ở đây cũng thế khi nói đến ngữ cảnh(context) thì thường quan tâm đến trường hợp cụ thể nào đó, điều này rõ ràng rằngtrong hệ thống sẽ có rất nhiều ngữ cảnh(context) 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 kinhdoanh 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 (context) 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 (context) [PhongKyThuat] như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 đặttrong dấu []

/etc/asterisk/extention.conf

[PhongKinhDoanh]

exten => 7325010,1,Dial(SIP/${EXTEN}),20) exten => 7325010,2,Voicemail(u${EXTEN})

[PhongKyThuat]

exten => _9.,1,Dial(SIP/${EXTEN})

Ngoài ta đối với việc 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

Trang 17

ví dụ:

/etc/asterisk/sip.conf

[8051]

Type=friend Context=Tu_SIP

………

[8052]

Type=friend Context=noibo

………

/etc/asterisk/extention.conf

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

[Tu_SIP] exten=>8052,1,dial(sip/8052,20) exten=>8052,2,hangup()

Khi thuê bao 8052 nhấc máy thì Asterisk chuyển cuộc gọi này đến ngữ cảnh[noibo] và chờ nhận con số quay, nếu thuê bao 8052 quay số 8051 thì số máy 8051

Trang 18

sẽ rung chuông trong vòng 20 giây, nếu qua 20 giây mà thuê bao 8051 không nhấcmáy thì cuộc gọi sẽ kết thúc.

Khi thuê bao 8051 nhấc máy thì Asterisk chuyển cuộc gọi này đến ngữ cảnh[Tu_SIP] và chờ nhận con số quay, nếu thuê bao 8051 quay số 8052 thì số máy

8052 sẽ rung chuông trong vòng 20 giây, nếu qua 20 giây mà thuê bao 8052 khôngnhấc máy thì cuộc gọi sẽ kết thúc

7 Ngữ cảnh thực hành ứng dụng

Hình Ngữ cảnh thực hành ứng dụngTrong phần thực hành này chúng ta cần trang bị những thiết bị sau:

+ Máy tính server asterisk

Trang 19

+ Hai máy tính client cài đặt hai softphone X-lite nối mạng với máy tínhserver asterisk.

+ Để giao tiếp với PSTN cần trang bị card FXO hoặc nhà cung cấp dịch vụVoIP

1 Bước 1: Cấu hình cho hai sip phone X-lite 8051 và 8052 bằng

cách cấu hình trên file sip.conf như sau:

/etc/asterisk/sip.conf

Trang 20

Bindport=5060 Bindaddr=0.0.0.0 Context=default Disallow=all Allow=ulaw Maxexpirey=120 Defaultexpirey=80

[8051]

Type=friend Secret=123456 Context=NoiBo Host=dynamic Canreinvite=no

[8052]

Type=friend Secret=2222 Context=NoiBo Host=dynamic Canreinvite=no

2 Bước 2: Cấu hình softphone x-lite phía client cho máy 8051

Trang 21

1 Chọn settings trên menu

2 Thực hiện khai báo cấu hình như sau:

3 Chọn apply hoặc ok để xác nhận thông tin

4 Tại đây softphone có thể kết nối với server asterisk

3 Bước 3 : Lập lại bước hai để khai báo máy điện thoại softphone

8052

8 Tạo diaplan.

Trang 22

Bây giờ tới phần để cho các máy điện thoại đã khai báo trên có thể thực hiệncác cuộc gọi với nhau thì chúng ta tiến hành thực hiện dialplan, việc này được cấuhình trong file extention.conf

1 Thực hiện một ví dụ cơ bản.

/etc/asterisk/extention.conf

[incoming]

Exten=>s,1,answer() Exten=>s,2,playback(hello_world) Exten=>s,3,hangup()

Thứ tự Priority 1 thực hiện ứng dụng trả lời cuộc gọi cho tất cả các cuộc gọi

đến sau đó chuyển qua thứ tự Priority kế tiếp

Thứ tự Priority 2 hệ thống sẽ phát ra thông điệp thoại từ file âm thanh

helloworld.gsm

Cuối cùng Priority 3 kết thúc cuộc gọi.

Giải thích đoạn lệnh trên:

Một cuộc gọi nhận từ cổng giao tiếp FXO được gửi đến ngữ cảnh[incoming], ngữ cảnh này được định nghĩa trong file cấu hình zapata.conf, các cuộcgọi vào được xử lý qua extention “s”, trong ví dụ trên có 3 priorities, ứng với mỗipriorities là một ứng dụng được gọi thực hiện

Extention “s” là một extention đặc biệt thực hiện xử lý các cuộc gọi vào khicon số được quay của thuê bao đến hệ thống asterisk là không biết trước (ví dụ cáccuộc gọi vào từ giao tiếp FXO)

Trang 23

Answer() Application thực hiện trả lời cuộc gọi trong trạng thái cuộc gọiđang rung chuông hoặc một số ứng dụng trả lời cuộc gọi trước khi xử lý cuộc gọi Playback() Application ứng dụng này để phát một file âm thanh được thusẵn Khi ứng dụng playback() thực thi thì tất cả các con số được gửi đến từ điệnthoại ấn phím đều bị loại bỏ cú pháp playback(Tenfile) Tên file có thể là dạng.gsm hoặc wav, file âm thanh được lấy từ thư mục mặc định là(/var/lib/asterisk/sounds).

Hangup() application ứng dụng kết thúc cuộc gọi

2 Các ứng dụng dial(), background() và goto().

Để thực hiện dialplan thêm phần uyển chuyển hơn xin giới thiệu thêm 3 ứngdụng cơ bản nữa trong thực hiện dialplan

Background() : Ứng dụng này thực hiện phát một file âm thanh và chờ nhậncon 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ự prioritytương ứng với con số nhận được cú pháp của ứng dụng:

Ngày đăng: 09/10/2012, 15:04

HÌNH ẢNH LIÊN QUAN

Hình Giao tiếp với FXO và FXS - Tổng quan về Asterisk - chương 4
nh Giao tiếp với FXO và FXS (Trang 7)
Hình Ngữ cảnh thực hành ứng dụng Trong phần thực hành này chúng ta cần trang bị những thiết bị sau: - Tổng quan về Asterisk - chương 4
nh Ngữ cảnh thực hành ứng dụng Trong phần thực hành này chúng ta cần trang bị những thiết bị sau: (Trang 18)

TỪ KHÓA LIÊN QUAN

w