ربط SMPP باستخدام bind_transceiver
هذه الصفحة تتحدث عن إجراء ربط SMPP. ربط SMPP هو طلب إعداد الاتصال على رابط SMPP. يشرح هذا الدليل كيف يتصل عميل SMPP بـ خادم SMPP عن طريق إرسال طلب ربط SMPP. يشرح الاختلافات بين أنماط الاتصال الممكنة (المرسل، المستقبل والمرسل/المستقبل) ويعطي رؤى حول توصيل عدة عملاء باستخدام حساب مستخدم SMPP نفسه.
ما هو ربط SMPPربط SMPP هو أول PDU يتم إرساله بعد إنشاء رابط SMPP. برامج SMPP، مثل بوابة Ozeki للرسائل القصيرة، ترسل PDU ربط SMPP لتسجيل الدخول إلى SMSC. يحتوي PDU ربط SMPP على اسم المستخدم وكلمة المرور.
كيف يتم إنشاء اتصال SMPPعند إعداد اتصال SMPP، يتم تنفيذ الخطوات التالية:
- يقوم عميل SMPP ببدء الاتصال
- يتم توصيل رابط TCP/IP
- في اتصالات SMPPS يتم إجراء مصافحة SSL
- يقوم العميل بتعيين رقم تسلسل PDU bind_transceiver إلى 0
- يقوم العميل بوضع اسم مستخدم SMPP في PDU bind_transceiver
- يقوم العميل بوضع كلمة مرور SMPP في PDU bind_transceiver
- يقوم العميل بإرسال PDU bind_transceiver
- يتحقق الخادم من اسم المستخدم (معرف نظام SMPP) وكلمة المرور
- إذا كان المصادقة صحيحة، يتم تعيين رمز الخطأ 0.
- يقوم الخادم بإرجاع PDU bind_transceiver_resp.
- يكون عميل SMPP جاهزًا لإرسال الرسائل القصيرة
يوضح الشكل 1 إعداد اتصال SMPP. يمكنك أن ترى أن عميل SMPP يقوم ببدء الاتصال، ويتم استخدام معاملة واحدة للمصادقة. يمكنك أيضًا أن ترى أنه بعد تسجيل الدخول الناجح، يمكن إرسال رسائل SMS باستخدام PDU submit_sm. ويمكن استقبال تقارير التسليم الواردة ورسائل SMS الواردة باستخدام PDU deliver_sm.
تستخدم طلبات ربط SMPP لإعداد اتصال SMPP. يتم إرسالها بواسطة عميل SMPP إلى خادم SMPP عندما يحاول العميل تسجيل الدخول. هناك 3 أنواع من طلبات الربط: SMPP bind_transmitter، SMPP bind_receiver، SMPP bind_transceiver. يمكن استخدام SMPP bind_transmitter فقط لإرسال رسائل SMS، بينما bind_receiver مخصص فقط لاستقبال رسائل SMS، و bind_transceiver يمكن استخدامه لكليهما. يعتبر SMPP bind_transceiver الطريقة الأكثر شيوعًا. إنه شائع لأنه يسمح باتصال واحد بإرسال واستقبال رسائل SMS في نفس الوقت.
ما هو bind_transmitterيتم إرسال PDU SMPP bind_transmitter بواسطة عميل SMPP لاتصال مخصص لإرسال رسائل SMS. لا يمكن استخدام هذا الاتصال لاستقبال رسائل SMS. نادرًا ما يتم استخدام طريقة الربط هذه. معظم العملاء الآن يتصلون باستخدام bind_transceiver.
ما هو bind_receiverيتم إرسال PDU SMPP bind_receiver بواسطة عميل SMPP لاتصال مخصص لاستقبال رسائل SMS. لا يمكن استخدام هذا الاتصال لإرسال رسائل SMS. نادرًا ما يتم استخدام طريقة الربط هذه. معظم العملاء الآن يتصلون باستخدام bind_transceiver.
ما هو bind_transceiverيتم إرسال PDU SMPP bind_transceiver بواسطة عميل SMPP لاتصال مخصص لكل من إرسال واستقبال رسائل SMS. يتم إعداد معظم اتصالات عملاء SMPP باستخدام طريقة الاتصال هذه.
هل يجب أن أستخدم bind_transceiver أو bind_transmitter أو bind_receiver؟من بين أنماط تشغيل SMPP الثلاثة. يجب على عميل SMPP (المشار إليه غالبًا باسم ESME) اختيار وضع bind_transceiver. هذا يسمح لنفس الاتصال أن يستخدم لكل من إرسال واستقبال رسائل SMS. استخدام اتصال bind_transceiver واحد يشبه وجود اتصال مرسل و مستقبل على نفس رابط الشبكة ويسمح بالإرسال والاستقبال في نفس الوقت.
فيديو تعليمي عن إعداد اتصال SMPPيوضح الفيديو التالي كيف يمكنك إعداد اتصال عميل SMPP وكيف يمكنك إرسال تسجيل الدخول إلى خادم SMPP باستخدام PDU bind_transceiver. يظهر الفيديو من منظور عميل SMPP.
كيف يتصل عميل SMPP بخادم SMPP؟
عندما يتصل عميل SMPP بخادم SMPP الخاص بك، أولاً يقوم بإعداد اتصال TCP/IP. إذا كنت تستخدم خادم SMPP آمنًا يعتمد على SMPPS، بعد إنشاء اتصال TCP/IP تتم مصافحة SSL. الخطوة التالية تحدث في طبقة التطبيق، وهي طبقة SMPP. في طبقة بروتوكول SMPP، أول PDU يتم إرساله بواسطة العميل هو SMPP bind_transceiver. يحتوي هذا PDU على اسم المستخدم (المشار إليه غالبًا باسم معرف نظام SMPP) وكلمة المرور. يتحقق الخادم من بيانات تسجيل الدخول هذه ويقرر ما إذا كان سيتم قبول اتصال العميل. إذا كانت تفاصيل تسجيل الدخول صحيحة، يقوم الخادم بإرجاع استجابة SMPP bind_transceiver_resp بدون رمز خطأ. (الشكل 2)
مثال SMPP bind_transceiver
تم أخذ مقتطف السجل التالي من سجل اتصال عميل Ozeki 10 SMPP. يمكنك رؤية إعداد اتصال SMPP قياسي. إذا قرأت السجل، ستجد أنه أولاً يتم إنشاء رابط اتصال TCP/IP وبعد ذلك يتم إرسال PDU bind_transceiver لـ SMPP. استجاب خادم SMPP بإجابة bind_transceiver_resp. قبلت بوابة Ozeki 10 للرسائل القصيرة هذه الاستجابة وكتبت "تسجيل دخول ناجح." في السجل.
2021-04-06 12:06:09.082 INFO SMPP_client_1: [TCP client] Connecting to 192.168.93.113:9550. 2021-04-06 12:06:09.082 INFO SMPP_client_1: Connected from 192.168.93.6:33444 to 192.168.93.113:9550. 2021-04-06 12:06:09.082 INFO SMPP_client_1: <- 00000030000000090000000000000001736D703100717765313233004F5A454B493130003401012B3030303030303000 2021-04-06 12:06:09.082 INFO SMPP_client_1: -> 0000001C8000000900000000000000014F5A454B4953595354454D00 2021-04-06 12:06:09.082 INFO SMPP_client_1: Successful login. 2021-04-06 12:06:09.082 INFO SMPP_client_1: Connection online.قبول عملاء SMPP على خادم SMPP
عندما تشغل خادم SMPP الخاص بك، ستقوم بإنشاء أسماء مستخدمين وكلمات مرور لـ SMPP، من أجل قبول اتصالات عملاء SMPP الواردة. سيقوم عملاؤك بإدخال أسماء المستخدمين وكلمات المرور الخاصة بهم مع عنوان IP ومنفذ SMPP لخادم SMPP الخاص بك في تكوين برنامج عميل SMPP الخاص بهم. بعد ذلك، سيتصل برنامجهم بنظامك.
بعض خوادم SMPP تسمح فقط باتصال واحد بنفس اسم المستخدم وكلمة المرور. يسمح خادم Ozeki 10 SMPP لعملائك بالاتصال من أجهزة متعددة في وقت واحد. بدلاً من ذلك، يمكنهم إنشاء روابط TCP متعددة من نفس الكمبيوتر والاتصال بنفس اسم المستخدم وكلمة المرور. وهذا ما يسمى بربط SMPP متعدد.
كيفية استخدام ربط SMPP لتوصيل عملاء SMPP متعددينيوضح الشكل 3 كيف يمكن لعميل واحد يسمى العميل "A" الاتصال بنفس خادم SMPP باستخدام اسم مستخدم وكلمة مرور واحدة باستخدام طلبات ربط SMPP متعددة. في هذا الإعداد، يمكن للعميل إرسال PDU bind_transceiver على جميع روابطه.
يظهر الفيديو التالي كيف يمكنك تكوين بوابة Ozeki 10 للرسائل القصيرة بحساب مستخدم SMPP واحد لقبول اتصالات متعددة للعملاء. باختصار، لا حاجة إلى تكوين خاص. بمجرد تعيين اسم المستخدم وكلمة المرور للاتصال، يمكن للعديد من العملاء الاتصال. في هذه الحالة، نوصي بتمكين تسجيل SMPp على مستوى منخفض (كما هو موضح في الفيديو) للتأكد من معرفة مكان انتهاء كل من رسائل SMPP الخاصة بك. سيعرض سجل SMPP على المستوى المنخفض أي عميل SMPP أرسل PDU معين لـ SMPP وسترى الرد المقابل من خادم SMPP.
تصحيح أخطاء طلبات bind_transceiver الواردة
إذا فحصت سجل اتصال SMPP بعناية، ستلاحظ أن طلبات ربط SMPP الواردة غير موجودة في سجل ملف السجل لمستخدم SMPP معين. هذا لأنه عند وصول PDU هذا، لم يتم تعيين أي مستخدم للاتصال بعد. لرؤية طلبات ربط SMPP، تحتاج إلى فتح نموذج التكوين لخادم SMPP. يمكن القيام بذلك بالنقر على الزر Advanced في شريط الأدوات، ثم تحديد صفحة التفاصيل لخادم SMPP (الشكل 4).
في صفحة تفاصيل SMPP، ستشاهد على الفور PDU-s لربط SMPP الواردة. ومن الجدير بالذكر أن PDU-s للاستجابة غير مدرجة هنا. لتكون أكثر دقة، يتم سردها هنا فقط لمحاولات تسجيل الدخول الفاشلة. بمجرد تحديد مستخدم SMPP بنجاح باسم مستخدم وكلمة مرور، يتم كتابة السجلات من اتصالات عميل SMPP المقابلة في سجل ذلك المستخدم. (الشكل 5)
إذا فتحت صفحة تفاصيل مستخدم SMPP، يمكنك رؤية العملاء المتصلين حاليًا في قسم "العملاء المتصلين" في اللوحة الجانبية اليسرى. هنا سترى نقاط نهاية TCP/IP البعيدة لكل عميل. تستخدم هذه النقاط لتحديد إدخالات السجل لعميل معين في سجل اتصال SMPP على المستوى المنخفض، والذي يمكنك العثور عليه في اللوحة الجانبية اليسرى (الشكل 6).
كيف يتم التعامل مع الرسائل الواردة؟
إذا قام أي من عملاء SMPP بإرسال رسالة قصيرة باستخدام طلب SMPP submit_sm، سيتم إرجاع التقرير المقابل لـ SMPP (يسمى submit_sm_resp) على نفس الاتصال. هذا يسمح لعملاء SMPP بمعالجة تقارير إرسال الرسائل القصيرة بشكل صحيح حتى إذا كانوا يعملون على أجهزة كمبيوتر مختلفة.
بالنسبة للرسائل القصيرة الواردة وتقارير التسليم، يقوم بوابة Ozeki 10 SMS بإجراء موازنة الحمل بين العملاء المتصلين. هذا يعني أنه عندما تتوفر سعة على اتصال عميل SMPP وارد، سيتم دفع الرسائل القصيرة الواردة وتقارير التسليم إلى ذلك العميل. إذا لم يكن هناك عملاء متصلون أو إذا كانت اتصالات العملاء مشغولة بإرسال أو استقبال رسائل قصيرة، سيتم تخزين الرسائل القصيرة الواردة في مجلد الوارد.
لاحظ أن تقارير التسليم الواردة لن يتم مطابقتها مع العملاء المرسلين. هذا لأنه عندما يأتي تقرير تسليم، قد يكون العميل المرسل غير متصل أو متصل من عنوان مختلف. تذكر أن تقارير التسليم يمكن أن تأتي في وقت متأخر جدًا. هذا يعني أنه من الممكن أن يتم إرجاع تقرير التسليم على رابط مختلف عن الرابط الذي تم إرسال الرسالة القصيرة عليه. يحدث هذا فقط إذا كان هناك عدة عملاء متصلين باستخدام نفس اسم مستخدم وكلمة مرور SMPP. لتجنب هذه الحالة، يمكنك إنشاء حسابات مستخدمين متعددة لـ SMPP لعملائك، وإخبارهم بأنه يجب عليهم الاتصال برابط واحد لكل حساب مستخدم.
More information