انتقل إلى المحتوى
OmniChannels.ai
القائمة

واجهات API وSMPP

كيف أربط نظامي بمزوّد رسائل نصية عبر SMPP؟

آخر تحديث

الإجابة المختصرة

للربط بمزوّد رسائل نصية عبر SMPP، اطلب اتصال bind وسجّل عناوين IP التي ستتصل منها، ثم افتح اتصال TLS بالمضيف والمنفذ المحددين. أرسل bind_transceiver مع system_id وكلمة المرور، وأرسل الرسائل عبر submit_sm، وأكّد استلام كل تقرير deliver_sm، وأرسل enquire_link بانتظام للإبقاء على الجلسة نشطة.

ما الذي يزوّدك به المزوّد؟

عادةً ما يجهّز المزوّد صلاحية SMPP بنفسه، ولا تتوفر كخدمة ذاتية. أبلغه بالدول المستهدفة، وأسماء المرسلين، وحجم الذروة المتوقع، وعناوين IP العامة التي ستتصل منها.

البندما هو
المضيف ومنفذ TLSالعنوان الذي يتصل به عميلك
system_id وكلمة المروربيانات اعتماد الـ bind، واحفظها كأسرار
system_typeيُترك فارغاً عادةً ما لم يحدد المزوّد قيمة له
عدد اتصالات bind والإنتاجيةعدد الجلسات المسموح بفتحها والمعدل المتفق عليه لكل bind
قائمة IP المسموح بهالا يمكن الربط إلا من عناوين IP المسجّلة

فتح الجلسة وتشغيلها

يتيح bind من نوع transceiver الإرسال والاستقبال على جلسة واحدة. ولا تستخدم اتصالَي transmitter وreceiver منفصلين إلا إذا كان عميلك يتطلب ذلك.

  1. افتح اتصال TLS بالمضيف والمنفذ اللذين حصلت عليهما.
  2. أرسل bind_transceiver مع system_id وكلمة المرور، وانتظر bind_transceiver_resp بقيمة command_status تساوي 0.
  3. أرسل كل رسالة عبر submit_sm واحفظ message_id العائد في submit_sm_resp.
  4. استقبل تقارير التسليم على شكل deliver_sm وردّ على كل واحد منها بـ deliver_sm_resp.
  5. أرسل enquire_link في فترات الخمول، وأعد الاتصال مع تأخير متزايد (backoff) إذا توقفت الردود.
  6. أغلق الجلسة بـ unbind وانتظر unbind_resp.

ما حقول submit_sm التي تسبب معظم حالات الرفض؟

  • source_addr_ton وsource_addr_npi: القيمتان 5 و0 لاسم مرسل أبجدي رقمي، و1 و1 لرقم دولي.
  • destination_addr: رمز الدولة متبوعاً بالرقم، من دون علامة + أو أصفار بادئة.
  • data_coding: القيمة 0 لأبجدية GSM-7 الافتراضية، و8 لترميز UCS-2 (العربية والرموز التعبيرية واللغات الأخرى).
  • registered_delivery: القيمة 1 لطلب تقرير تسليم.
  • يتسع short_message لما يصل إلى 254 أوكتيت؛ وللمحتوى الأطول استخدم message_payload TLV مع sm_length بقيمة 0، ولا تجمع بينهما أبداً.

أخطاء الربط والإرسال الشائعة

تجهّز OmniChannels.ai اتصالات SMPP 3.4 عبر TLS لكل حساب مع إدراج عناوين IP المصدر في القائمة المسموح بها، ويمكن للموزّعين وشركاء الجملة الحصول على اتصالات bind مخصّصة.

command_statusالسبب المرجّحالحل
ESME_RBINDFAILsystem_id خاطئ أو عنوان IP غير مدرج في القائمة المسموح بهاتحقق من بيانات الاعتماد وعنوان IP المصدر
ESME_RINVPASWDكلمة مرور خاطئةتحقق من بيانات الاعتماد
ESME_RINVSRCADRاسم المرسل أو قيم TON/NPI الخاصة به غير صالحةصحّح اسم المرسل وقيم TON/NPI
ESME_RTHROTTLEDالإرسال بمعدل يتجاوز المتفق عليهخفّف المعدل وأعد المحاولة مع backoff

المصادر الرسمية