بوابة OmniMessage SMPP
نظرة عامة على المنتج
بوابة OmniMessage SMPP هي واحدة من عدة بروتوكولات واجهة أمامية لمنصة OmniMessage.
تتيح إرسال رسائل SMS من خلال ربط بنيتك التحتية بشبكات الهاتف المحمول باستخدام بروتوكول SMPP (بروتوكول الرسائل القصيرة من نظير إلى نظير) القياسي في الصناعة.
مهم: هذه البوابة هي واجهة بروتوكول بدون حالة. مثل واجهات OmniMessage الأخرى (Diameter، MAP، IMS)، فهي ببساطة تترجم رسائل البروتوكول إلى/from واجهة برمجة التطبيقات الخاصة بـ OmniMessage للتوجيه والمعالجة.
القدرات الرئيسية
- إرسال واستقبال رسائل SMPP ثنائية الاتجاه: إرسال واستقبال رسائل SMS عبر SMPP كـ SMSc أو ESME (عميل أو خادم)
- اتصالات متعددة: الاتصال بعدة مشغلين في نفس الوقت
- أداء عالي: معالجة آلاف الرسائل في الثانية
- تخزين محلي للرسائل: الاستمرار في قبول الرسائل أثناء انقطاع واجهة برمجة التطبيقات مع إعادة المحاولة التلقائية
- المراقبة: مقاييس Prometheus المدمجة ولوحة التحكم على الويب
- موثوقية: إعادة الاتصال التلقائي وإعادة المحاولة للرسائل
- تشغيل بدون حالة: جميع المعالجة مفوضة إلى خلفية OmniMessage
من يجب أن يستخدم هذا الدليل؟
هذا الدليل مخصص لفرق العمليات المسؤولة عن:
- تثبيت وتكوين البوابة
- مراقبة حركة الرسائل
- إدارة اتصالات SMPP
- استكشاف المشكلات وإصلاحها
البدء السريع
الإعداد الأولي
- الوصول إلى لوحة التحكم على الويب:
https://your-server:8087 - التحقق من حالة النظام: الانتقال إلى SMPP → الحالة الحية
- مراجعة التكوين: انظر CONFIGURATION.md
- إعداد المراقبة: انظر MONITORING.md
العمليات اليومية
المهام التشغيلية الشائعة:
| المهمة | الإجراء |
|---|---|
| التحقق من حالة الاتصال | واجهة الويب → SMPP → الحالة الحية |
| عرض حركة الرسائل | واجهة الويب → قائمة الانتظار |
| مراقبة صحة النظام | واجهة الويب → السجلات أو مقاييس Prometheus |
| إضافة/تعديل الاتصالات | واجهة الويب → SMPP → أقران العميل/الخادم |
انظر USAGE.md لإجراءات مفصلة.
بنية النظام
بوابة SMPP هي مترجم بروتوكول بدون حالة يعمل كجزء من منصة OmniMessage:
المفاهيم الرئيسية:
- بوابة SMPP: مترجم بروتوكول فقط - لا معالجة للرسائل، أو تخزين، أو منطق تجاري
- OmniMessage: المنصة الأساسية التي تتعامل مع جميع منطق الرسائل، والتوجيه، والتخزين
- التواصل عبر API: تسترجع البوابة الرسائل لإرسالها من OmniMessage وتبلغ عن حالة التسليم
تكامل OmniMessage
بوابة OmniMessage SMPP هي واجهة بروتوكول لمنصة الرسائل OmniMessage. إنها واحدة من عدة أنواع واجهات متطابقة تتفاعل مع شبكات الهاتف المحمول باستخدام بروتوكولات مختلفة:
| الواجهة الأمامية | البروتوكول | الغرض |
|---|---|---|
| بوابة SMPP | SMPP (SMS) | إرسال الرسائل ��بر بروتوكول SMPP |
| بوابة Diameter | Diameter | الرسائل المعتمدة على IMS |
| بوابة MAP | MAP | إشارة الشبكة المحمولة |
| بوابة IMS | IMS | نظام الوسائط المتعددة عبر IP |
تشارك جميع الواجهات نفس البنية: إنها مترجم بروتوكول بدون حالة تفوض كل الذكاء إلى جوهر OmniMessage.
كيف يعمل
تدفق الرسائل الواردة (نظام خارجي → مشغل):
تدفق الرسائل الصادرة (مشغل → بوابة SMPP):
ما تفعله البوابة
- تستقبل PDUs SMPP من المشغلين والعملاء الخارجيين
- تقوم بتحليل والتحقق من رسائل بروتوكول SMPP
- تترجم تنسيق SMPP إلى تنسيق OmniMessage الداخلي
- تستدعي واجهة برمجة التطبيقات REST الخاصة بـ OmniMessage مع بيانات الرسالة
- تستقبل الرسائل من OmniMessage عبر استعلام API
- تحول تنسيق OmniMessage مرة أخرى إلى PDUs SMPP
- تبلغ عن إيصالات التسليم مرة أخرى إلى OmniMessage
ما لا تفعله البوابة
- ❌ لا تخزين أو استمرارية للرسائل
- ❌ لا قرارات توجيه (يتخذ OmniMessage القرار)
- ❌ لا تحديد للحدود (يفرض OmniMessage)
- ❌ لا تحقق من الأرقام (يتحقق OmniMessage)
- ❌ لا تتبع الحالة (يحافظ OmniMessage على الحالة)
- ❌ لا منطق تجاري (يتعامل OmniMessage مع كل المنطق)
واجهة برمجة التطبيقات REST الخاصة بـ OmniMessage
تتواصل البوابة مع جوهر OmniMessage عبر واجهة برمجة التطبيقات REST:
التكوين:
config :omnimessage_smpp,
api_base_url: "https://omnimessage-core.example.com:8443"
العمليات الرئيسية لواجهة برمجة التطبيقات:
GET /api/message_queue?destination_smsc=<bind_name>- استرجاع الرسائل المعلقةPUT /api/messages/<id>/delivery_status- الإبلاغ عن إيصال التسليمGET /api/system/health- فحص الصحة
تنسيق الر��الة: تحتوي الرسائل في قائمة الانتظار على جميع معلومات التسليم اللازمة:
- الرقم الوجهة
- نص الرسالة
- الرقم المصدر
- الأولوية
- فترة الصلاحية
- SMSC المستهدف (اسم ربط المشغل)
تقوم البوابة ببساطة باسترجاع هذه، وتنسيقها كـ SMPP، وإرسالها إلى المشغل، والإبلاغ عن الحالة.
هيكل الوثائق
تم تنظيم هذه الوثائق في الأدلة التالية:
- CONFIGURATION.md - مرجع تكوين كامل مع شرح لجميع المعلمات
- MESSAGE_CACHE.md - تخزين محلي للرسائل من أجل مرونة واجهة برمجة التطبيقات
- MONITORING.md - دليل مقاييس Prometheus والتنبيهات
- USAGE.md - إجراءات التشغيل اليومية
- TROUBLESHOOTING.md - المشكلات الشائعة والحلول
- GLOSSARY.md - المصطلحات والتعريفات
نقاط الوصول
لوحة التحكم على الويب
- الرابط:
https://your-server:8087 - الم��زات:
- عرض حالة اتصال SMPP
- مراقبة قائمة الرسائل
- عرض سجلات النظام
- تكوين أقران SMPP
- الوصول إلى الوثائق
مقاييس Prometheus
- الرابط:
http://your-server:4000/metrics - التنسيق: تنسيق نص Prometheus
- الاستخدام: التكامل مع Grafana/Prometheus
نقطة نهاية واجهة برمجة التطبيقات
- الرابط: تم تكوينه في
API_BASE_URL - الغرض: تكامل خلفية قائمة الرسائل
مرجع سريع
المهام الشائعة
| المهمة | الأمر/الموقع |
|---|---|
| بدء البوابة | systemctl start omnimessage-smpp |
| إيقاف البوابة | systemctl stop omnimessage-smpp |
| إعادة تشغيل البوابة | systemctl restart omnimessage-smpp |
| عرض السجلات | journalctl -u omnimessage-smpp -f |
| التحقق من الحالة | واجهة الويب → SMPP → الحالة الحية |
| عرض المقاييس | curl http://localhost:4000/metrics |
| تحرير التكوين | /opt/omnimessage-smpp/config/runtime.exs |
الملفات المهمة
| الملف | الغرض |
|---|---|
/opt/omnimessage-smpp/config/runtime.exs | التك��ين الرئيسي |
/opt/omnimessage-smpp/priv/cert/ | شهادات SSL |
/var/log/omnimessage-smpp/ | سجلات التطبيق |
/etc/systemd/system/omnimessage-smpp.service | تعريف الخدمة |
ملاحظات الأمان
- واجهة الويب: تستخدم HTTPS مع شهادات SSL الخاصة بك
- التواصل عبر واجهة برمجة التطبيقات: يمكن التحقق من SSL أو استخدام شهادات موقعة ذاتيًا
- SMPP: بروتوكول نصي عادي - استخدم أمان الشبكة
- البيانات الاعتمادية: مخزنة في ملف التكوين - احمِ الوصول
الخطوات التالية
- مراجعة CONFIGURATION.md لجميع خيارات التكوين
- إعداد MONITORING.md مع Prometheus
- التعرف على USAGE.md للمهام اليومية
- إضافة TROUBLESHOOTING.md إلى المفضلة للرجوع السريع
- مراجعة GLOSSARY.md للمصطلحات