REGULAR EXPRESSIONS (REGEX) TRONG DIAL PLAN CỦA ASTERISK

Hướng dẫn sử dụng regex để viết dial plan trong asterisk cơ bản…

[incoming]
exten => 991123123,1,Goto(phones,100,1)
[phones]
exten => 100,1,NoOp(Call for Mathias)
same => n,Dial(SIP/mathias)
same => n,Hangup
extend => 200,1,NoOp(Call for Jamees)
same => n,Dial(SIP/james)
same => n,Hangup
exten => 8888,1,Goto(outgoing,8888,1)
[outgoing]
exten => 8888,1,Dial(SIP/outside)

Đây là file cấu hình dial plan của bài OUTGOING. Tuy nhiên nếu chúng ta có nhiều số cần khai báo thì không thể khai báo nhiều lần như vậy được. Chúng ta phải cần sử dụng regex để viết gọn lại.

Có thể viết gọn lại như sau:

[incoming]
exten => 991123123,1,Goto(phones,100,1)
[phones]
exten => 100,1,NoOp(Call for Mathias)
same => n,Dial(SIP/mathias)
same => n,Hangup
extend => 200,1,NoOp(Call for Jamees)
same => n,Dial(SIP/james)
same => n,Hangup
exten => _XXXX,1,Goto(outgoing,8888,1)
[outgoing]
exten => 8888,1,Dial(SIP/outside)

_XXXX có tác dụng khi group phones gọi bất cứ số nào có 4 số đều sẽ chuyển đến (Goto) đến group outgoing và đến số extension 8888 và gọi đến tài khoản sip peer outside

Ví dụ bạn gọi 1111 hay 8888 hay 1234 nó đều chuyển đến số extension 8888 trong group outgoing.

Tất nhiên mỗi lần thay đỗi cấu hình đều phải reload lại. Mình sẽ không nhắc lại nữa trong các bài tới.

REGEX TẤT CẢ SỐ PHÍA SAU

[incoming]
exten => 991123123,1,Goto(phones,100,1)
[phones]
exten => 100,1,NoOp(Call for Mathias)
same => n,Dial(SIP/mathias)
same => n,Hangup
extend => 200,1,NoOp(Call for Jamees)
same => n,Dial(SIP/james)
same => n,Hangup
exten => _0.,1,Goto(outgoing,8888,1)
[outgoing]
exten => 8888,1,Dial(SIP/outside)

exten => _0.,1,Goto(outgoing,8888,1) chúng ta nhìn thấy _0. ở đây có nghĩa là các cuộc gói bắt đầu bằng phím 0 và các số sau dù là bao nhiêu số và là số gì đi chăng nữa cũng sẽ chuyến đến outgoing đến extension 8888.

Leave a Reply

Your email address will not be published. Required fields are marked *