SIP (Session Initiation Protocol) trong Asterisk là một giao thức cho phép thiết lập, chuyển, và kết thúc các cuộc gọi điện thoại qua mạng internet. Nó là một trong những giao thức phổ biến nhất được sử dụng trong các hệ thống IP PBX, bao gồm cả Asterisk.
SIP trong Asterisk cho phép bạn tạo các tài khoản SIP, cấu hình các trạm cuộc gọi, và quản lý các cuộc gọi qua giao thức SIP. Bạn có thể sử dụng SIP để tạo các cuộc gọi trực tiếp giữa các máy IP hoặc sử dụng một provider SIP để tạo các cuộc gọi điện thoại với các số điện thoại thông thường.
Để cấu hình SIP trong Asterisk, bạn cần chỉnh sửa các tập tin cấu hình SIP trong thư mục “sip.conf” và “extensions.conf” của hệ thống.
Để cấu hình SIP trong Asterisk, bạn cần thực hiện các bước sau:
Bước 1: Tạo một tài khoản SIP: Bạn cần tạo một tài khoản SIP cho mỗi thiết bị hoặc người dùng muốn sử dụng dịch vụ SIP của bạn. Bạn cần mở tập tin “sip.conf” trong thư mục cấu hình của Asterisk và thêm một section mới với tên là tên tài khoản SIP mà bạn muốn tạo. Ví dụ:
[john_doe]
type=friend
username=john_doe
secret=password
context=internal
Trong đó :
- [john_doe] là tên của tài khoản SIP
- type=friend cho phép tài khoản SIP này thực hiện cuộc gọi đến và đi.
- username=john_doe là tên đăng nhập cho tài khoản SIP
- secret=password là mật khẩu cho tài khoản SIP
- context=internal chỉ định context sẽ sử dụng cho cuộc gọi đến từ tài khoản SIP này
Bước 2: Cấu hình trạm cuộc gọi: Bạn cần cấu hình các trạm cuộc gọi SIP để cho phép các cuộc gọi đến và đi từ hệ thống của bạn. Bạn cần chỉnh sửa tập tin “sip.conf” để cấu hình các trạm cuộc gọi và thêm một section mới với tên là tên trạm cuộc gọi mà bạn muốn tạo. Ví dụ:
[my_sip_trunk]
type=peer
username=my_sip_trunk
secret=my_secret
context=external
host=sip.myprovider.com
- Trong đó :
- [my_sip_trunk] là tên của trạm cuộc gọi
- type=peer cho phép trạm này chỉ thực hiện cuộc gọi đi
- username=my_sip_trunk là tên đăng nhập cho trạm cuộc gọi
- secret=my_secret là mật khẩu cho trạm cuộc gọi
- host=sip.myprovider.com là địa chỉ IP hoặc domain của trạm cuộc gọi
- context=external chỉ định context sẽ sử dụng cho cuộc gọi đi từ trạm cuộc gọi này
Lưu ý : Cấu hình trạm cuộc gọi có thể khác nhau tùy vào nhà cung cấp dịch vụ SIP mà bạn sử dụng
Bước 3: Cấu hình các quy tắc chuyển cuộc gọi: Bạn cần cấu hình các quy tắc chuyển cuộc gọi để cho phép chuyển cuộc gọi từ một tài khoản SIP đến một tài khoản khác. Bạn cần chỉnh sửa tập tin “extensions.conf” để cấu hình các quy tắc chuyển cuộc gọi và tìm đến context mà bạn muốn cấu hình quy tắc chuyển cuộc gọi, ví dụ context “internal”
Thêm các lệnh “exten” với pattern và các actions tương ứng để chuyển cuộc gọi từ một tài khoản SIP đến một tài khoản khác hoặc trạm cuộc gọi. Ví dụ:
exten => _9.,1,Dial(SIP/${EXTEN:1}@my_sip_trunk)
- Trong đó :
- _9. là pattern, nghĩa là mọi số bắt đầu bằng 9 sẽ được chuyển tới hành động sau
- Dial(SIP/${EXTEN:1}@my_sip_trunk) là hành động, nghĩa là chuyển cuộc gọi tới trạm cuộc gọi có tên là “my_sip_trunk” và số điện thoại là ${EXTEN:1} (nghĩa là số điện thoại sau ký tự 9)
Lưu ý : Các quy tắc chuyển cuộc gọi có thể khá phức tạp và có thể khác nhau tùy vào nhu cầu của bạn, bạn có thể sử dụng các lệnh khác nhau như “Goto”, “Gosub”, “Macro” để chuyển cuộc gọi tới các context khác, thực hiện các hành động khác nhau, hoặc chuyển cuộc gọi tới một máy chủ IVR.
Bước 4: Khởi động lại dịch vụ SIP:
Sau khi hoàn tất cấu hình, bạn cần khởi động lại dịch vụ SIP để áp dụng các thay đổi. Bạn có thể sử dụng lệnh “sip reload” trong Asterisk CLI để khởi động lại dịch vụ SIP.
Cách sử dụng:
- Truy cập vào Asterisk CLI bằng cách sử dụng lệnh “asterisk -r” trên terminal hoặc qua SSH.
- Gõ vào “sip reload” và nhấn enter để khởi động lại dịch vụ SIP.
- Kiểm tra trạng thái của dịch vụ SIP bằng cách sử dụng lệnh “sip show registry” để xem các trạm cuộc gọi đã được đăng ký hay chưa.
Lưu ý : bạn có thể sử dụng lệnh “sip show peers” để xem thông tin về các tài khoản SIP đã được cấu hình và trạng thái của chúng.
Bước 5: Kiểm tra cấu hình: Bạn có thể kiểm tra cấu hình SIP bằng cách sử dụng lệnh “sip show peer <peer_name>” trong Asterisk CLI để xem thông tin về một tài khoản SIP cụ thể.
sip show peer john_doe
Trong đó “john_doe” là tên của tài khoản SIP mà bạn muốn kiểm tra. Lệnh sẽ trả về thông tin về tài khoản SIP như tên, IP, trạng thái, thời gian đăng ký, v.v.
Bạn có thể sử dụng các lệnh khác như “sip show users” hoặc “sip show peer <peer_name> detail” để xem thông tin chi tiết hơn.