Cấu hình trunk PJSIP trên Asterisk: đăng ký số ZuteSIP

Cập nhật 2026-09-30 · Bởi đội ngũ ZuteSIP (ZuteSIP Inc.)

Trả lời ngắn: Để kết nối Asterisk với ZuteSIP, hãy thêm năm mục pjsip.conf cho một trunk: một registration trỏ tới sip.zutesipdialer.com, một auth với tên người dùng và mật khẩu SIP, một aor, một endpoint chỉ dùng ulaw và alaw, và một identify khớp với máy chủ của chúng tôi. Sau đó định tuyến DID trong extensions.conf và gọi ra qua endpoint.

Đây là phiên bản Asterisk thuần dành cho người quản lý trực tiếp file cấu hình. Nó theo bố cục trunk trong các ví dụ res_pjsip chính thức, với các giá trị của ZuteSIP đã được điền sẵn.

01

Bạn cần gì

  • ✓ Một số ZuteSIP cùng tên người dùng và mật khẩu SIP lấy từ trang của số trong bảng điều khiển.
  • ✓ Asterisk đã nạp res_pjsip (bất kỳ bản phát hành nào còn được hỗ trợ).
  • ✓ Quyền truy cập shell để sửa /etc/asterisk/pjsip.conf và extensions.conf, cùng Asterisk CLI để kiểm tra.
02

Các giá trị ZuteSIP dùng trong cấu hình

Thông sốGiá trị
Máy chủ SIP / registrar / tên miềnsip.zutesipdialer.com
Giao thức truyền và cổngUDP hoặc TCP 5060; TLS 5061
Tên người dùng<SIP_USERNAME> (trên trang của số trong bảng điều khiển)
Mật khẩu<SIP_PASSWORD> (trên cùng trang đó)
Xác thựcDigest (tên người dùng + mật khẩu), dựa trên đăng ký
CodecG.711 µ-law (PCMU) và G.711 A-law (PCMA)
DTMFRFC 2833 (sự kiện RTP) hoặc SIP INFO
DID gọi đến<YOUR_NUMBER> theo định dạng E.164
03

pjsip.conf: transport và trunk

Dán đoạn này vào pjsip.conf và thay các placeholder. Bỏ qua khối transport nếu bạn đã có transport UDP. Với TCP hoặc TLS, hãy tạo transport tương ứng và dùng cổng 5061 cho TLS.

Identify khớp theo địa chỉ nguồn của lưu lượng SIP từ chúng tôi; Asterisk phân giải hostname khi nạp cấu hình.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
; behind NAT also set:
; external_media_address=<PUBLIC_IP>
; external_signaling_address=<PUBLIC_IP>
; local_net=192.168.0.0/16

[zutesip]
type=registration
transport=transport-udp
outbound_auth=zutesip-auth
server_uri=sip:sip.zutesipdialer.com:5060
client_uri=sip:<SIP_USERNAME>@sip.zutesipdialer.com
contact_user=<YOUR_NUMBER>
retry_interval=60

[zutesip-auth]
type=auth
auth_type=userpass
username=<SIP_USERNAME>
password=<SIP_PASSWORD>

[zutesip]
type=aor
contact=sip:sip.zutesipdialer.com:5060
qualify_frequency=60

[zutesip]
type=endpoint
transport=transport-udp
context=from-zutesip
disallow=all
allow=ulaw,alaw
dtmf_mode=rfc4733
outbound_auth=zutesip-auth
aors=zutesip
from_user=<SIP_USERNAME>
from_domain=sip.zutesipdialer.com
callerid=<YOUR_NUMBER>
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes

[zutesip]
type=identify
endpoint=zutesip
match=sip.zutesipdialer.com
04

extensions.conf: dialplan gọi đến và gọi đi

Cuộc gọi đến rơi vào context from-zutesip với số của bạn là extension được gọi. Mẫu gọi đi gửi các số quay kèm dấu cộng ở đầu ra ngoài qua trunk.

Trong dòng gọi đi, ${EXTEN} là biến kênh chứa số được quay của Asterisk. Thay 1001 bằng máy nhánh hoặc nhóm đổ chuông của bạn.

[from-zutesip]
; inbound: DID = your ZuteSIP number
exten => <YOUR_NUMBER>,1,NoOp(Inbound call on ZuteSIP DID)
 same => n,Dial(PJSIP/1001,30)
 same => n,Hangup()
; catch other DID formats (with or without +)
exten => _X.,1,Goto(from-zutesip,<YOUR_NUMBER>,1)

[from-internal]
; outbound: dial +<country code><number>
exten => _+X.,1,Set(CALLERID(num)=<YOUR_NUMBER>)
 same => n,Dial(PJSIP/${EXTEN}@zutesip,60)
 same => n,Hangup()
05

Từng bước: nạp và kiểm tra

  1. 1Lưu cả hai file và chạy pjsip reload và dialplan reload trong Asterisk CLI (asterisk -rvvv).
  2. 2Chạy pjsip show registrations và xác nhận zutesip ở trạng thái Registered.
  3. 3Chạy pjsip show endpoint zutesip để kiểm tra codec, contact của aor và kết quả khớp identify.
  4. 4Gọi đến số ZuteSIP từ một điện thoại khác và theo dõi CLI: cuộc gọi phải vào from-zutesip và đổ chuông máy nhánh 1001.
  5. 5Quay một số quốc tế từ máy nhánh nội bộ theo định dạng +mã quốc gia và xác nhận người nghe thấy số ZuteSIP của bạn.
06

Số hiển thị khi gọi đi

Đặt caller ID là số sở hữu tài khoản SIP, bằng callerid trên endpoint hoặc CALLERID(num) trong dialplan như ví dụ. Giữ nó khớp với thông tin đăng nhập trên trunk. Cuộc gọi đi trừ vào 1.000 phút đi kèm mỗi tháng của số.

07

Khắc phục sự cố

  • ✓ Đăng ký lỗi 401/403: tên người dùng hoặc mật khẩu không khớp, hoặc mục auth chưa được liên kết qua outbound_auth. Chạy pjsip set logger on và đọc quá trình trao đổi REGISTER.
  • ✓ Cuộc gọi đến bị từ chối là anonymous hoặc báo 'No matching endpoint found': thiếu mục identify hoặc địa chỉ nguồn không khớp. Kiểm tra hostname có phân giải được trên máy chủ của bạn rồi reload.
  • ✓ Âm thanh một chiều: đặt external_media_address, external_signaling_address và local_net trên transport, giữ rtp_symmetric và force_rport được bật, và mở dải cổng trong rtp.conf trên tường lửa.
  • ✓ 488 Not Acceptable Here: codec không khớp. Giữ allow=ulaw,alaw.
  • ✓ Không nhận DTMF: giữ dtmf_mode=rfc4733 (phương thức sự kiện RTP định nghĩa trong RFC 2833); chỉ dùng info nếu đầu bên kia yêu cầu SIP INFO.
FAQ

Câu hỏi thường gặp

Tôi có cần cả mục registration lẫn identify không?
Có. Registration cho ZuteSIP biết gửi cuộc gọi của bạn đến đâu, còn identify giúp Asterisk khớp các cuộc gọi đến đó với endpoint zutesip.
rfc4733 có giống DTMF RFC 2833 không?
Có. RFC 4733 cập nhật RFC 2833 và mô tả cùng phương thức sự kiện RTP, cũng là phương thức mà thiết lập rfc4733 của Asterisk sử dụng.
Tôi có thể dùng chan_sip thay cho PJSIP không?
chan_sip đã bị gỡ khỏi các bản Asterisk hiện tại, nên PJSIP là con đường được hỗ trợ. Máy chủ, thông tin đăng nhập và codec vẫn như cũ.
Tôi có thể dùng TLS với Asterisk không?
Có. Tạo một transport TLS, trỏ registration và aor tới cổng 5061 và tham chiếu transport đó. Không hỗ trợ mã hóa media SRTP.
Làm sao để thêm số ZuteSIP thứ hai?
Nhân bản các mục registration, auth, aor, endpoint và identify dưới tên mới với thông tin đăng nhập của số đó, và thêm DID của nó vào dialplan.
ZuteSIP có cung cấp API cho Asterisk không?
Không. Không có API hay webhook cho khách hàng; Asterisk kết nối qua SIP chuẩn bằng thông tin đăng nhập của từng số.
→
SRC

Nguồn tham khảo

✓

Mỗi số đã bao gồm tất cả

  • ✓ Nhận SMS không giới hạn
  • ✓ Nhận cuộc gọi không giới hạn
  • ✓ 500 SMS gửi đi mỗi tháng
  • ✓ 1.000 phút gọi đi mỗi tháng
  • ✓ Thông tin SIP cho mọi softphone hoặc tổng đài
  • ✓ Chuyển tiếp cuộc gọi đến bất kỳ điện thoại nào
  • ✓ Trình quay số trên web trong bảng điều khiển
  • ✓ Số thuộc về bạn bao lâu tùy ý
  • ✓ Bảo đảm đổi số trong 7 ngày — nhận số mới miễn phí

Chỉ từ $1.80/tháng · thanh toán theo năm ($21.60).

Bảo đảm đổi số trong 7 ngày

Trong vòng 7 ngày kể từ khi mua, nếu số không dùng được với bạn — ví dụ một ứng dụng không chấp nhận số hoặc mã không đến — bạn có thể đổi sang số mới cùng quốc gia miễn phí chỉ với một cú nhấp trên bảng điều khiển, tối đa 2 lần, dù số đã được dùng hay chưa. Ngoài ra, nếu số chưa được dùng cho cuộc gọi hay SMS nào, bạn có thể nhận hoàn tiền toàn bộ.

Xem tất cả số →

Trang đăng ký và thanh toán chỉ có bằng tiếng Anh.