Cấu hình trunk PJSIP trên Asterisk: khai báo số SMS Conecta

Cập nhật ngày 2026-09-30 · Thực hiện bởi đội ngũ SMS Conecta (SMSConecta Inc.)

Tóm lại: Muốn ghép Asterisk với SMS Conecta, hãy thêm năm mục trong pjsip.conf cho một trunk: một registration trỏ về sip.smsconecta.com, một auth chứa tên người dùng và mật khẩu SIP, một aor, một endpoint chỉ cho phép ulaw và alaw, và một identify khớp với máy chủ của chúng tôi. Sau đó dẫn DID trong extensions.conf và gọi ra thông qua endpoint.

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

01

Chuẩn bị trước những gì

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

Các giá trị của SMS Conecta dùng trong cấu hình

Thông sốGiá trị
Máy chủ SIP / registrar / tên miềnsip.smsconecta.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: khối transport và trunk

Dán nguyên đoạn dưới vào pjsip.conf rồi thay các placeholder bằng giá trị của bạn. Nếu đã có sẵn transport UDP thì bỏ qua khối transport này. Với TCP hoặc TLS, hãy tạo riêng một transport tương ứng, dùng cổng 5061 cho TLS.

Khối identify khớp theo địa chỉ nguồn của lưu lượng SIP từ phía chúng tôi; Asterisk sẽ phân giải hostname ngay lúc 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

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

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

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

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

[smsconecta]
type=identify
endpoint=smsconecta
match=sip.smsconecta.com
04

extensions.conf: dialplan cho cả hai chiều gọi

Cuộc gọi đến rơi vào context from-smsconecta, với số của bạn đóng vai extension được gọi tới. Mẫu gọi đi đẩy các số quay có dấu cộng ở đầu ra ngoài qua trunk.

Ở dòng gọi đi, ${EXTEN} là biến kênh của Asterisk lưu số vừa được quay. Hãy thay 1001 bằng máy nhánh hoặc nhóm đổ chuông mà bạn đang dùng.

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

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

Nạp cấu hình và kiểm tra lại

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

Số hiển thị ra sao lúc gọi đi

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

07

Giải quyết các lỗi hay gặp

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

Hỏi đáp

Có bắt buộc phải có cả registration và identify không?
Bắt buộc. Registration cho SMS Conecta biết gửi cuộc gọi của bạn tới đâu, còn identify giúp Asterisk nhận diện cuộc gọi đến đó thuộc endpoint smsconecta.
rfc4733 có phải chính là DTMF RFC 2833?
Đúng vậy. RFC 4733 là bản cập nhật của RFC 2833, mô tả cùng một phương thức sự kiện RTP — cũng là phương thức mà thiết lập rfc4733 trong Asterisk sử dụng.
Dùng chan_sip thay PJSIP được không?
Không nên, vì chan_sip đã bị gỡ khỏi các bản Asterisk hiện tại; PJSIP là con đường duy nhất còn được hỗ trợ. Máy chủ, thông tin đăng nhập và codec thì vẫn giữ nguyên.
Asterisk có chạy được TLS không?
Chạy được. Hãy tạo một transport TLS, trỏ registration và aor về cổng 5061, rồi tham chiếu đúng transport ấy. Riêng mã hóa media (SRTP) thì không được hỗ trợ.
Muốn thêm số SMS Conecta thứ hai thì làm sao?
Nhân bản các mục registration, auth, aor, endpoint và identify dưới một tên mới, gắn thông tin đăng nhập của số đó, rồi thêm DID tương ứng vào dialplan.
SMS Conecta có API riêng cho Asterisk không?
Không có. Không tồn tại API hay webhook dành cho khách hàng; Asterisk kết nối hoàn toàn qua SIP chuẩn bằng thông tin đăng nhập của từng số.
→
SRC

Căn cứ tham khảo

✓

Mỗi số đều đã trọn gói mọi thứ

  • ✓ Nhận SMS vô hạn
  • ✓ Nhận cuộc gọi vô hạn
  • ✓ Hạn mức 500 SMS gửi đi mỗi tháng
  • ✓ Hạn mức 1.000 phút gọi đi mỗi tháng
  • ✓ Thông số truy cập SIP dùng cho bất kỳ softphone hay tổng đài nào
  • ✓ Tính năng chuyển tiếp cuộc gọi tới số bất kỳ
  • ✓ Công cụ gọi qua web ngay trong bảng điều khiển
  • ✓ Số thuộc về bạn trong suốt thời gian bạn muốn
  • ✓ Bảo đảm đổi số trong 7 ngày — nhận số mới miễn phí

Giá chỉ từ $1.80/tháng · lập hóa đơ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 toàn bộ các số →

Quy trình đăng ký và thanh toán chỉ hỗ trợ ngôn ngữ tiếng Anh.