الاتصال عبر SMPP وHTTP
انقل مسار الاختبار إلى الإنتاج دون كسر الربط أو النوافذ أو الإيصالات: الربط، ومعدل النقل، والإبقاء على الاتصال حيا، والترميز، واستدعاءات الرد، ومعالجة الأعطال.
اتصال المراسلة في الإنتاج عقد تشغيل، وليس مجرد نقطة نهاية. يضيف SMPP حالة الربط، ونافذة معدل النقل، وحركة الإبقاء على الاتصال حيا، والإيصالات على الجلسة. ويضيف HTTP المصادقة لكل طلب واستدعاءات الرد. يحول هذا الدليل الاثنين إلى تسلسل من الاختبار إلى الإنتاج.
في هذه الصفحة
حالة الربط أول ما يجب أن تتولاه
الربط جلسة ذات اتجاه معلن. المرسل (transmitter) يقدم الرسائل، والمستقبل (receiver) يتلقى الرسائل الواردة والإيصالات، والمرسل والمستقبل (transceiver) يقوم بالأمرين معا. يصدر مقدم الخدمة بيانات الاعتماد لنوع الربط الذي تحتاجه، ويجب أن يعامل العميل الربط كحالة: قيد الفتح، أو مربوط، أو مقيد المعدل، أو قيد إعادة الاتصال، أو مغلق. والعميل الذي يفترض أن الربط قائم دائما سيفقد الرسائل عند أول انقطاع.
تتبع حالة الربط بشكل صريح. سجل كل طلب ربط واستجابته، وإصدار الواجهة، ومعرف النظام، ورمز الخطأ. وعند الانقطاع، أعد الاتصال مع تراجع تدريجي، ولا تعد إرسال طلبات التقديم المعلقة حتى تعرف ما إذا كان مركز الرسائل قد قبلها. ومعرف الرسالة الوارد في submit_sm_resp هو الطريقة الموثوقة الوحيدة لمعرفة ذلك.
الربط وأول عملية تقديم
- التطبيق (ESME)
- bind_transceiver فتح الجلسة
- SMSC
- submit_sm_resp مقبولة للتسليم
- إيصال التسليم
وصف نصي
يرسل العميل طلب ربط ويتلقى استجابة الربط. ثم يقدم رسالة عبر submit_sm ويتلقى submit_sm_resp مع معرف الرسالة. لاحقا يرسل مركز الرسائل وحدة PDU من نوع deliver_sm تحمل الإيصال، ويرد العميل بـdeliver_sm_resp. ويغلق unbind الجلسة.
النافذة ونبض الاتصال والترميز
النافذة هي عدد الطلبات المعلقة التي يقبلها مركز الرسائل على ربط واحد. أبق عدد الطلبات قيد التنفيذ دونها، ودع النافذة تفرغ قبل أي دفعة كبيرة. التقديم المقيد المعدل إشارة إلى الإبطاء؛ وإعادة المحاولة بالمعدل نفسه تملأ قائمة الانتظار وتحول رسالة بطيئة واحدة إلى تراكم. حدد عدد الربطات انطلاقا من معدل الذروة، لا من المتوسط الشهري.
تعلم تبادلات الإبقاء على الاتصال حيا كلا الطرفين بأن الجلسة ما زالت قائمة. أرسل enquire_link وفق جدول زمني، وأغلق الجلسة التي تتوقف عن الرد. أما الترميز، فأرسل بـGSM-7 حيث يسمح المحتوى، وبـUCS-2 في غير ذلك. وحرف واحد خارج مجموعة GSM-7 يحول الرسالة كلها إلى UCS-2 وقد يغير عدد المقاطع. اختبر القالب الفعلي، بما في ذلك قيم المتغيرات.
إيصالات التسليم
يصل الإيصال بشكل غير متزامن كوحدة PDU من نوع deliver_sm. ويحمل معرف الرسالة الأصلي، وحالة مثل delivered أو expired أو undelivered أو unknown، وغالبا رمز الشبكة. طابقه بمعرف الرسالة وخزن الحالة مع سجل الرسالة. لا تطابق حسب ترتيب الوصول، ولا تعامل الإيصال المفقود كرسالة فاشلة.
تختلف صيغ الإيصالات. تستخدم مراكز الرسائل الأحدث حقل message_state بصيغة tag-length-value؛ أما الأقدم فتضع نصا بصيغة مفتاح وقيمة في حقل short message. حلل الصيغتين كلتيهما. وحد الحالات التي يحتاجها تطبيقك واحتفظ بالرمز الخام، حتى يمكن تتبع طلب الدعم وصولا إلى ما قالته الشبكة.
أنماط الأعطال والاستجابة الأولى
| العرض | السبب المرجح | الفحص الأول |
|---|---|---|
| رفض الربط | بيانات اعتماد خاطئة، أو نوع ربط أو إصدار واجهة خاطئ | اقرأ رمز استجابة الربط وإصدار الواجهة |
| تزايد انتهاء المهلات | تجاوز النافذة أو مسار بطيء | تحقق من عدد الطلبات قيد التنفيذ ورموز الاستجابة قبل إعادة المحاولة |
| الربط مفتوح، ولا ردود | الجلسة منقطعة أو توقف العميل عن إرسال رسائل الإبقاء على الاتصال | أرسل enquire_link، ثم أعد الاتصال مع تراجع تدريجي |
| إيصال مفقود | لم يصل الإيصال إلى المعالج قط | تحقق من سجل الجلسة ومعرف الرسالة قبل إعادة الإرسال |
| أحرف خاطئة | محتوى GSM-7 أرسل بترميز UCS-2، أو العكس | تحقق من ترميز البيانات وعدد المقاطع |
| انتهاء مهلة استدعاء الرد | نقطة النهاية بطيئة أو يتعذر الوصول إليها | رد بسرعة، وعالج بشكل غير متزامن، وتحقق من التوقيع |
ترتيب الاستجابة مهم: راقب الحالة أولا، ثم غير متغيرا واحدا.
من مسار الاختبار إلى الإنتاج
-
اربط بمسار الاختبار
استخدم بيانات اعتماد الاختبار ونوع الربط الذي ستشغله في الإنتاج. تحقق من استجابة الربط وإصدار الواجهة.
-
أرسل القوالب الفعلية
اختبر المحتوى الذي ستطلقه، بما في ذلك الروابط والمتغيرات وأطول رسالة. سجل الترميز وعدد المقاطع.
-
اقرأ الإيصالات
طابق كل إيصال بمعرف الرسالة. تحقق من الحالات ورموز الأخطاء التي سيتلقاها تطبيقك.
-
اختبر مسار الفشل
أرسل إلى رقم غير صالح، وإلى جهاز ذاكرته ممتلئة، وإلى خدمة محظورة. تحقق من حالات الإيصال ومن طريقة تعامل التطبيق معها.
-
حدد حجم النافذة
شغل اختبارا بمعدل الذروة وتحقق من أن عدد الطلبات قيد التنفيذ يبقى دون النافذة. أضف ربطا إذا لم يبق دونها.
-
فعل الإشراف
اضبط التنبيهات على حالة الربط، وزمن استجابة التقديم، وزمن وصول الإيصال، وتوزيع حالات الإيصال. حدد الشخص الذي يتصرف عند كل تنبيه.
-
حول حركة الإنتاج
انقل حصة صغيرة أولا، وقارن الإيصالات بنتائج الاختبار، ثم زد الحصة. أبق مسار الاختبار متاحا كخيار احتياطي.
مصادقة HTTP واستدعاءات الرد
يصادق تكامل HTTP كل طلب بالمفتاح الصادر عند الإعداد. بدل المفتاح قبل انتهاء صلاحيته، وأبق المفتاح القديم صالحا خلال فترة التداخل. يعيد الإرسال استجابة قبول تحمل معرف الرسالة؛ ويصل الإيصال وأي رسالة واردة إلى عنوان URL الخاص باستدعاء الرد لديك.
يجب أن تتحقق نقطة نهاية استدعاء الرد من التوقيع، وأن ترد بسرعة، وأن تعالج الحدث بعد الاستجابة. نقطة النهاية البطيئة تسبب إعادة المحاولات، وإعادة المحاولات تسبب التكرار ما لم يكن المعالج متساوي الأثر (idempotent). أبق نقطة النهاية قابلة للوصول خلال تغييرات الشهادات وDNS، واضبط تنبيها عندما يرتفع معدل فشل استدعاءات الرد. يتناول شرح SMPP الجلسة؛ وتتناول مقارنة وسائل النقل الاختيار بينهما.
الأسئلة الشائعة
أي إصدار من SMPP يجب أن نستخدم؟
كم عدد الربطات التي نحتاجها؟
هل يجب أن يرد استدعاء الرد قبل المعالجة؟
ماذا لو لم يصل الإيصال أبدا؟
كيف نختبر حالة فشل؟
ذات صلة
- دليل معرّف المرسل العالمي لرسائل A2P
كيف تعمل معرّفات المرسل عبر الأسواق: المسارات الأبجدية الرقمية والرقمية ومسارات الرموز القصيرة، وتوقعات التسجيل، وأمثلة من الدول.
- A2P SMS
رسائل A2P SMS (من التطبيق إلى الشخص) هي حركة مرور يرسلها تطبيق إلى هاتف محمول، مثل رمز التحقق أو تنبيه معاملة، عبر مرسل مسجل.
- DLR
يُبلغ إيصال التسليم عن حالة الشبكة المحمولة لرسالة SMS مرسلة، مثل: مسلّمة، أو منتهية الصلاحية، أو مرفوضة، أو غير معروفة.
مجاور لما نقدمه
نشرح هذا هنا لأنه يؤثر في كيفية استخدامك لخدمتنا.