SMSC مقابل بوابة SMS مقابل خادم SMPP: ما يفعله كل منها فعلًا
ثلاثة مصطلحات تُستخدم كأنها شيء واحد. ما هو SMSC، وما الذي تفعله بوابة SMS، وما الذي يضيفه خادم SMPP، وأيّها تحتاج إلى تشغيله.
في هذا الدليل
اسأل ثلاثة مورّدين عمّا يبيعونه، وقد تسمع «SMSC» و«بوابة SMS» و«خادم SMPP» لما يبدو أنه المنتج نفسه. هذه الكلمات ليست مترادفة، والخلط بينها يكلّف مالًا: يشتري بعضهم خادم SMPP ظنًّا أنه سيصل إلى أجهزة الهاتف، أو يرصد ميزانية لـ«SMSC» بينما ما يحتاج إليه بوابة وعقدان مع مشغّلين. يحسم هذا الدليل مسألة SMSC مقابل بوابة SMS مقابل خادم SMPP بتعريفات واضحة، ويبيّن كيف تتصل الثلاثة في مسار رسالة حقيقي، وينتهي بما عليك تشغيله منها فعلًا.
SMSC مقابل بوابة SMS مقابل خادم SMPP في فقرة واحدة
يعيش SMSC داخل شبكة مشغّل الهاتف المحمول ويسلّم الرسائل النصية إلى الهواتف. وتعيش بوابة SMS خارج الشبكة، فتستقبل الرسائل من التطبيقات والعملاء، وتوجّهها إلى اتصال المشغّل الصحيح، وتجمع إشعارات التسليم. أما خادم SMPP فمكوّن من مكوّنات البوابة يتيح للأنظمة الأخرى الاتصال بها باستخدام بروتوكول SMPP، بالطريقة نفسها التي تتصل بها البوابة بالمشغّلين. المشغّلون يشغّلون مراكز SMSC. والشركات التي ترسل الرسائل أو تعيد بيعها تشغّل بوابات. والبوابات التي تخدم عملاء تقنيين تشغّل أيضًا خوادم SMPP.
كل ما يلي هو تلك الفقرة بعد ملء تفاصيلها.
SMSC: آلة التخزين وإعادة التوجيه لدى المشغّل
مركز خدمة الرسائل القصيرة (Short Message Service Centre) هو الجزء المسؤول عن SMS في شبكة الهاتف المحمول. حين يرسل هاتف رسالة نصية، تذهب إلى SMSC لدى مشغّل المرسِل؛ فيخزّنها SMSC، ويبحث عن موقع هاتف المستلم، ثم يعيد توجيهها إليه، ويعيد المحاولة إن كان الهاتف مغلقًا أو خارج التغطية. سلوك «التخزين وإعادة التوجيه» هذا هو سبب وصول الرسالة حين تعيد تشغيل هاتفك، والذي يقوم بذلك هو SMSC.
يترتّب على ذلك ثلاثة أمور. يتواصل SMSC مع أجهزة الهاتف عبر نواة التشوير في الشبكة (SS7، أو Diameter في النوى الأحدث)، وهي علاقة اتصالات لا بروتوكول إنترنت. وSMSC ملك للمشغّل، ولكل مشغّل مركزه الخاص؛ فلا يوجد SMSC عالمي. وSMSC هو الشيء الوحيد في هذا المقال القادر على إيصال رسالة إلى هاتف. وكل ما عداه وسيلة لإيصال رسالة إلى SMSC.
تصل الشركات إلى SMSC بإحدى طريقتين: عبر مجمّع لديه أصلًا اتصالات مع مشغّلين كثيرين، أو مباشرةً بعقد وربط SMPP (bind) يوفّره المشغّل. وفي الحالتين تكون الشركة عميلًا لـ SMSC لا مشغّلًا له. والمنتجات التي تُسوَّق على أنها «SMSC للمؤسسات» هي بوابات تقبل روابط SMPP، ولا تسلّم إلى أجهزة الهاتف بمفردها.
بوابة SMS: الموجّه والسجلّ المالي ولوحة التحكم
بوابة SMS هي النظام الذي تشغّله الشركة لإرسال الرسائل على نطاق واسع، ولتمكين عملائها من الإرسال إن كانت تعيد البيع. وعمل البوابة هو كل ما يقع بين «أُرسِلت رسالة» و«هذا إشعار التسليم»:
- استقبال الرسائل من لوحة ويب، أو واجهة HTTP API، أو رفع ملف، أو ربط SMPP.
- التحقق منها: قواعد معرّف المرسل، والترميز، والطول، ورصيد العميل.
- التوجيه: اختيار اتصال المشغّل أو المجمّع الذي ينقل هذه الرسالة إلى هذه الوجهة، بحسب السعر أو الجودة أو العقد.
- التسليم عبر الاتصال المختار، وعادةً يكون SMPP إلى مشغّل أو مجمّع، وأحيانًا HTTP إلى مورّد، مع احترام معدّل الاتصال ونافذته.
- جمع إشعارات التسليم ومطابقتها مع الرسائل، كي تصل حالة «مُسلَّمة» أو «فاشلة» أو «منتهية» إلى العميل وإلى السجلّ المالي.
- الفوترة: تحصيل ثمن كل رسالة من العميل، وتسجيل تكلفة المسار، وإظهار الهامش.
- التقارير للعميل وللجهة التي تشغّل البوابة.
قد تكون البوابة محرّكًا واحدًا (Kannel هو أشهر المحرّكات مفتوحة المصدر، يتولّى روابط bind والطوابير وإشعارات التسليم ولا شيء فوقها) أو منصة كاملة يكون المحرّك فيها طبقة واحدة تحت بوابة للعملاء، وجدول توجيه، وثلاثة أوضاع للفوترة، وحزمة للتقارير. ترسم صفحة المنصة تلك الحزمة الكاملة لـ Smppcube في مخطط واحد: NGINX، ولوحة PHP وخط معالجة Node.js، وطوابير Redis، وMySQL بوصفه نظام السجلّات، وMongoDB للأرشيف، وElasticsearch للبحث، وKannel في الأسفل يتحدث مع مراكز SMSC. كل ذلك مجتمعًا هو «بوابة SMS». أما Kannel وحده فهو محرّك التسليم.
وتحمل البوابة أيضًا أجزاء النشاط التجاري التي لا علاقة لها بالبروتوكولات: حسابات العملاء، وقوائم الأسعار لكل وجهة، والأرصدة مسبقة الدفع ولاحقة الدفع، والفواتير، وبوابات الموزّعين، والهامش لكل مسار الذي يقرّر ما إذا كانت العملية تحقق ربحًا. هذه الأجزاء هي سبب كون شراء بوابة قرارًا مختلفًا عن تنزيل محرّك.
خادم SMPP: الباب الذي يرتبط عبره عملاؤك
بروتوكول SMPP، الذي اعتمده المشغّلون معيارًا، بروتوكول يقوم على نموذج العميل والخادم. حين ترتبط بوابتك بمشغّل، يكون طرف المشغّل هو خادم SMPP وطرفك هو العميل. وحين يريد عملاؤك أنت الارتباط بك عبر SMPP، عليك أن تكون أنت الخادم. ذلك المكوّن هو خادم SMPP: يستمع على منفذ (2775 وفق العرف المتّبع)، ويوثّق روابط bind بواسطة system_id وكلمة مرور، ويقبل حزم submit_sm، ويعيد معرّفات الرسائل، ويفرض حدّ الإنتاجية لكل حساب، ويدفع إشعارات التسليم عائدةً عبر الجلسة.
إنه، بعبارة أخرى، مدخل إضافي إلى البوابة. فالرسائل التي تصل عبر خادم SMPP تدخل الطابور نفسه، وجدول التوجيه نفسه، والسجلّ المالي نفسه، مثل الرسائل الواردة من واجهة HTTP API ومن لوحة الويب؛ ويشرح دليل SMPP مقابل HTTP لماذا تحتاج المنصة إلى كليهما وكيف يختلفان عمليًا. أما ما ليس عليه خادم SMPP فهو أن يكون مسارًا إلى أجهزة الهاتف: إنه باب للدخول، لا باب للخروج. والشركة التي لا تحتاج إلا إلى الإرسال لا تحتاج إليه أبدًا. أما الشركة التي تريد المصارف ومزوّدي OTP والمجمّعين الآخرين عملاءً لها فتحتاج إليه في اليوم الذي يطلبه فيه أولهم.
كيف تتصل الثلاثة في مسار رسالة حقيقي
ضع الثلاثة معًا، فتبدو رحلة رسالة من عميل لدى موزّع إلى هاتف على هذا النحو:
- يرسل العميل الرسالة إلى بوابة الموزّع، عبر لوحة الويب، أو واجهة HTTP API، أو ربط bind مع خادم SMPP لدى الموزّع.
- تتحقق البوابة من الرسالة، وتخصم من رصيد العميل، وتختار مسارًا للوجهة.
- يرسلها محرّك البوابة عبر ربط SMPP (أو استدعاء HTTP) إلى مجمّع أو مباشرةً إلى مشغّل الوجهة.
- يخزّن SMSC لدى المشغّل الرسالة، ويحدّد موقع الهاتف، ويسلّمها.
- يعيد SMSC إشعار التسليم صعودًا عبر السلسلة نفسها؛ فتطابقه البوابة مع الرسالة، وتسوّي السجلّ المالي، وتمرّره إلى العميل (بوصفه deliver_sm على ربط SMPP الخاص به، أو webhook على واجهته البرمجية).
ملاحظتان. أولًا: خادم SMPP لدى الموزّع وSMSC لدى المشغّل لا يتحدث أحدهما مع الآخر أبدًا؛ فالبوابة الواقعة بينهما تتحدث SMPP بوصفها عميلًا نحو المنبع وبوصفها خادمًا نحو المصب، ولهذا تختلط الكلمات. ثانيًا: يمكن للبوابة نفسها أن تكون عميلًا لعدة مراكز SMSC ومجمّعين في آن واحد، وهذا هو الأساس الذي يقوم عليه التوجيه كله: تسلك الرسالة الاتصال الأرخص أو الأفضل أو المتعاقد عليه لتلك الوجهة.
من يشغّل ماذا
| SMSC | بوابة SMS | خادم SMPP | |
|---|---|---|---|
| أين يوجد | داخل الشبكة الأساسية لمشغّل الهاتف المحمول | على خادم تتحكم فيه الشركة (أو مستأجرة بنموذج SaaS) | داخل البوابة، بوصفه أحد مداخلها |
| من يشغّله | مشغّلو الهاتف المحمول | المؤسسات، والموزّعون، والمجمّعون، ومنصات CPaaS | البوابات التي تخدم عملاء تقنيين |
| يتواصل مع | أجهزة الهاتف (عبر SS7/Diameter) والبوابات المتصلة به | مراكز SMSC والمجمّعين ومورّدي HTTP في المنبع، والعملاء في المصب | العملاء الذين يرتبطون عبر SMPP |
| يستطيع الوصول إلى الهاتف بمفرده | نعم | عبر SMSC فقط | لا |
| أمثلة | الأنظمة الخاصة بالمشغّلين | Kannel (محرّك)، ومنصات كاملة مثل Smppcube | مدمج في منصة، أو مُضاف فوق محرّك |
ملاحظة «مستأجرة بنموذج SaaS» في عمود البوابة هي مصدر الخلط الشائع الآخر: فلوحة SMS المستضافة بوابة أيضًا، يشغّلها طرف آخر وتصل إليها بوصفك مستأجرًا. ويقدّم دليل البوابة ذاتية الاستضافة مقارنة صادقة بين تشغيل بوابة بنفسك واستئجار مقعد في بوابة يشغّلها غيرك.
أيّها تحتاج إلى تشغيله
إذا كنت ترسل الرسائل من تطبيق واحد (رموز OTP، والتنبيهات، والإشعارات) ولا عملاء لديك، فلا تحتاج إلى أيٍّ منها. فواجهة HTTP API لدى مجمّع هي بوابة أنت عميل لها، وقرارك الوحيد هو اختيار المورّد.
إذا كنت تعيد بيع خدمات المراسلة، أو تدير حملات لحساب آخرين، أو تشغّل المراسلة لفرق داخلية كثيرة، فأنت تحتاج إلى بوابة. والسؤال التالي هو الاستئجار أم الاستضافة الذاتية، وهو يتوقف على البيانات والهامش والتقيّد بالمورّد لا على التقنية؛ وترخيص بدفعة واحدة مثل ترخيص Smppcube على خادمك الخاص يمثّل طرف الاستضافة الذاتية في هذا الخيار.
إذا كان بين عملائك أي جهة تملك مكتبة عميل SMPP، كالمصارف ومزوّدي OTP ومنصات التسويق والمجمّعين الآخرين، فإن بوابتك تحتاج إلى خادم SMPP. بعض المنصات تأتي به جاهزًا، ومع محرّك مجرّد تضيفه بنفسك.
لا تحتاج إلى SMSC. لا يمكنك تشغيل SMSC دون أن تكون مشغّلًا، ولا حاجة بك إلى ذلك: فمركز SMSC لدى أي مشغّل يمكن الوصول إليه عبر ربط bind أو عبر مجمّع. والصيغة العملية لعبارة «نحتاج إلى SMSC» هي في كل الحالات تقريبًا «نحتاج إلى بوابة مع خادم SMPP وعقدين أو ثلاثة مع مشغّلين»، وهذه مشكلة أصغر بكثير وأرخص بكثير.
لا أحد خارج المشغّلين يشغّل SMSC. ما تشغّله الشركات هو بوابة، وما يرتبط به العملاء التقنيون هو خادم SMPP في تلك البوابة. رتّب المصطلحات، تترتّب قائمة المشتريات من تلقاء نفسها.
ملاحظة حول الأسماء التي يستخدمها المورّدون
لأن المصطلحات تتداخل في التسويق، اقرأ قائمة الميزات لا التسمية. فالمنتج المسمّى «برمجية SMSC» الذي يذكر روابط SMPP والتوجيه والفوترة هو بوابة. و«خادم SMPP» الذي يذكر حسابات العملاء وقوائم الأسعار وبوابة للعملاء هو بوابة لها مدخل SMPP. و«بوابة SMS» التي ليست سوى نقطة نهاية REST بلا جدول توجيه هي واجهة API لمورّد واحد. لا خطأ في شراء أيٍّ منها؛ المهم أن تعرف ما يفعله المنتج قبل مقارنة الأسعار، وأن تتحقق، أيًّا كان اختيارك، من أنه يعمل على خادم تستطيع الوصول إليه ويحتفظ بسجلّات تستطيع تصديرها.
أسئلة
هل بوابة SMS هي نفسها SMSC؟
لا. مركز SMSC (مركز خدمة الرسائل القصيرة) هو نظام المشغّل الذي يخزّن الرسائل النصية ويعيد توجيهها داخل شبكة الهاتف المحمول ويتواصل مع أجهزة الهاتف. أما بوابة SMS فتقع خارج الشبكة: تستقبل الرسائل من التطبيقات أو العملاء، وتقرّر أي اتصال مع مشغّل تستخدم، وتسلّمها إلى SMSC لدى ذلك المشغّل (أو إلى مجمّع يصل إليه)، وتجمع إشعارات التسليم. المشغّلون يشغّلون مراكز SMSC، وكل من عداهم يشغّل بوابات.
ما هو خادم SMPP، وهل أحتاج إليه؟
خادم SMPP هو المكوّن الذي يتيح للأنظمة الأخرى الارتباط (bind) بك عبر بروتوكول SMPP، بالطريقة نفسها التي ترتبط بها أنت بالمشغّل. لا تحتاج إليه إلا إذا أراد عملاؤك الاتصال عبر SMPP بدلًا من واجهة HTTP API: المصارف، ومزوّدو OTP، والمجمّعون الآخرون. يبدأ معظم الموزّعين دونه ويضيفونه حين يطلبه عميل تقني. والمنصة التي تأتي بخادم SMPP توفّر عليك كتابة حزمة بروتوكول لاحقًا.
هل يمكنني تشغيل SMSC خاص بي؟
فقط إذا كنت مشغّل هاتف محمول، أو كان لديك اتصال مباشر عبر SS7 أو Diameter بشبكة هاتف محمول، وهذه علاقة اتصالات خاضعة للتنظيم لا عملية شراء برمجيات. ما تستطيع الشركة تشغيله هو بوابة تتصل بمراكز SMSC لدى المشغّلين عبر SMPP أو HTTP. والمنتجات التي تسوّق نفسها على أنها SMSC للمؤسسات هي، في الواقع العملي، بوابات أُلحقت بها خوادم SMPP.
ما موقع Kannel في هذه الصورة؟
Kannel محرّك بوابة SMS مفتوح المصدر يتحدث SMPP وغيره من بروتوكولات المشغّلين، ويتولّى أعمال التسليم منخفضة المستوى: روابط bind، والطوابير، وإعادة المحاولة، وإشعارات التسليم. إنه المحرّك، لا النشاط التجاري. فالمنصة الكاملة تغلّف محرّكًا مثل Kannel ببوابة العملاء، وقواعد التوجيه، والفوترة، والتقارير، وخادم SMPP الذي يرتبط به عملاؤك، وهذا هو الجزء الذي تستغرق كتابته بنفسك سنوات.