بناء PJSIP trunk في Asterisk: تسجيل رقم من SMS Conecta
آخر تحديث 2026-09-30 · كتبه فريق SMS Conecta (SMSConecta Inc.)
الإجابة السريعة: لتوصيل Asterisk بـ SMS Conecta، أضف خمسة أقسام في pjsip.conf لتشكيل trunk واحد: قسم registration يشير إلى sip.smsconecta.com، وقسم auth باسم مستخدم وكلمة مرور SIP، وقسم aor، وقسم endpoint مقيَّد بـ ulaw وalaw، وقسم identify يطابق خادمنا. ثم وجّه رقم DID في extensions.conf واتصل للخارج عبر الـ endpoint.
هذا هو المسار الخالص لـ Asterisk الموجَّه لمن يديرون ملفات الإعداد بأنفسهم مباشرة. ويتبع تنظيم الـ trunk في أمثلة res_pjsip الرسمية، مع تعبئة قيم SMS Conecta فيه.
ما تحتاج إليه
- ✓ رقم من SMS Conecta مع اسم مستخدم وكلمة مرور SIP الخاصين به، من صفحة الرقم في لوحة التحكم.
- ✓ Asterisk مع تحميل res_pjsip (أي إصدار مدعوم حاليًا).
- ✓ وصول إلى سطر الأوامر لتحرير /etc/asterisk/pjsip.conf وextensions.conf، وAsterisk CLI للاختبار.
قيم SMS Conecta المستخدمة في الإعداد
| الإعداد | القيمة |
|---|---|
| خادم SIP / المسجِّل / النطاق | sip.smsconecta.com |
| بروتوكول النقل والمنفذ | UDP أو TCP 5060؛ وTLS 5061 |
| اسم المستخدم | <SIP_USERNAME> (من صفحة الرقم في لوحة التحكم) |
| كلمة المرور | <SIP_PASSWORD> (من الصفحة نفسها) |
| المصادقة | Digest (اسم مستخدم + كلمة مرور)، قائمة على التسجيل |
| الترميز (Codecs) | G.711 µ-law (PCMU) وG.711 A-law (PCMA) |
| DTMF | RFC 2833 (أحداث RTP) أو SIP INFO |
| الرقم الوارد (DID) | <YOUR_NUMBER> بصيغة E.164 |
pjsip.conf: النقل والـ trunk
الصق هذا في pjsip.conf واستبدل القيم المؤقتة بما يخصك. تجاوز كتلة transport إن كان لديك نقل UDP جاهز أصلًا. ولـ TCP أو TLS، أنشئ النقل المطابق واستخدم المنفذ 5061 مع TLS.
يعتمد قسم identify على مطابقة عنوان مصدر حركة SIP القادمة منا؛ ويحلّ Asterisk اسم المضيف عند تحميل الإعدادات.
[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
extensions.conf: خطة الاتصال الواردة والصادرة
تصل المكالمات الواردة إلى السياق from-smsconecta حيث يكون رقمك هو التحويلة المطلوبة. أما النمط الصادر فيرسل الأرقام المطلوبة مبدوءة بعلامة زائد عبر الـ trunk.
في السطر الصادر، ${EXTEN} هو متغير القناة في Asterisk الذي يحمل الرقم المطلوب. غيّر 1001 لتحويلتك أو مجموعة الرنين الخاصة بك.
[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()
خطوة بخطوة: التحميل والاختبار
- 1احفظ الملفين ونفّذ pjsip reload وdialplan reload في Asterisk CLI (asterisk -rvvv).
- 2نفّذ pjsip show registrations وتأكد من أن smsconecta في حالة Registered.
- 3نفّذ pjsip show endpoint smsconecta للتحقق من الترميز وجهة اتصال aor ومطابقة identify.
- 4اتصل برقمك من SMS Conecta من هاتف آخر وراقب CLI: يجب أن تدخل المكالمة إلى from-smsconecta وترن التحويلة 1001.
- 5اطلب رقمًا دوليًا من تحويلة محلية بصيغة +رمز الدولة، وتأكد من أن الطرف المتصَل به يرى رقمك من SMS Conecta.
هوية المتصل في المكالمات الصادرة
اضبط هوية المتصل على الرقم الذي يملك حساب SIP، إما عبر callerid في الـ endpoint أو عبر CALLERID(num) في خطة الاتصال كما هو موضح أعلاه. حافظ على تطابقها مع البيانات المستخدمة في الـ trunk. وتُستهلك المكالمات الصادرة من حصة 1,000 دقيقة المشمولة شهريًا مع الرقم.
حل المشكلات
- ✓ التسجيل 401/403: عدم تطابق في اسم المستخدم أو كلمة المرور، أو أن قسم auth غير مرتبط عبر outbound_auth. نفّذ pjsip set logger on واقرأ تبادل رسائل REGISTER.
- ✓ رفض المكالمات الواردة كمجهولة أو مع «No matching endpoint found»: قسم identify غائب أو عنوان المصدر لا يطابق. تحقق من أن اسم المضيف يُحلّ على خادمك ثم أعد التحميل.
- ✓ صوت في اتجاه واحد: اضبط external_media_address وexternal_signaling_address وlocal_net على النقل، وحافظ على تفعيل rtp_symmetric وforce_rport، وافتح نطاق المنافذ المحدد في rtp.conf عند جدار الحماية.
- ✓ 488 Not Acceptable Here: عدم تطابق في الترميز. حافظ على allow=ulaw,alaw.
- ✓ DTMF غير ملتقط: حافظ على dtmf_mode=rfc4733 (طريقة أحداث RTP المعرّفة في RFC 2833)؛ ولا تستخدم info إلا إن تطلّبه الطرف الآخر صريحًا.
الأسئلة المتكررة
هل يلزم وجود قسمَي registration وidentify معًا؟
هل rfc4733 يعادل DTMF وفق RFC 2833؟
هل يمكن استخدام chan_sip عوضًا عن PJSIP؟
هل TLS قابل للاستخدام مع Asterisk؟
كيف أضيف رقمًا ثانيًا من SMS Conecta؟
هل تقدم SMS Conecta واجهة API لـ Asterisk؟
المصادر
- Asterisk Documentation: res_pjsip Configuration Examples (حتى سبتمبر 2026)
- Asterisk Documentation: Configuring Outbound Registrations (حتى سبتمبر 2026)
- Asterisk Documentation: Asterisk PJSIP Troubleshooting Guide (حتى سبتمبر 2026)
كل رقم يأتي جاهزًا بكل ما تحتاجه
- ✓ استقبال رسائل دون حد أقصى
- ✓ استقبال مكالمات دون حد أقصى
- ✓ 500 رسالة صادرة في الشهر
- ✓ 1000 دقيقة صادرة في الشهر
- ✓ بيانات SIP لربط أي تطبيق اتصال أو سنترال
- ✓ تحويل المكالمات لأي جهاز هاتف
- ✓ أداة اتصال من لوحتك عبر المتصفح
- ✓ يبقى الرقم ملكك طوال الفترة التي تريدها
- ✓ ضمان الاستبدال خلال 7 أيام — رقم جديد مجانًا
يبدأ السعر من $1.80/شهريًا · يُسدد سنويًا ($21.60).
ضمان الاستبدال خلال 7 أيام
إذا لم يعمل الرقم معك خلال 7 أيام من الشراء، كأن يرفضه تطبيق ما أو لا تصل الرموز، تستبدله برقم جديد مجانًا بنقرة واحدة من لوحة التحكم، حتى مرتين، سواء استُخدم الرقم أم لا. وإذا لم يُستخدم في أي مكالمة أو رسالة SMS، يمكنك بدلًا من ذلك استرداد المبلغ كاملًا.
تتوفر صفحتا إنشاء الحساب والدفع باللغة الإنجليزية حصريًا.