الحمولات التي تتجاوز رسالة واحدة تُقسَّم إلى أجزاء وتُخاط معًا على الهاتف باستخدام ترويسة بيانات مستخدم (UDH). وتحمل ترويسة الدمج المعيارية بطول 6 بايت رقمًا مرجعيًا وعدد الأجزاء الكلي وتسلسل هذا الجزء. وتستهلك حمولةً، فتقلّص السعة إلى 153 محرف GSM-7 أو 67 محرف UCS-2 لكل جزء.
لماذا يوجد الدمج
رسالة SMS واحدة محدودة بـ 140 بايت من بيانات المستخدم. والنص الأطول يُرسَل كعدة رسائل SMS يعيد الهاتف المستقبِل تجميعها في رسالة واحدة. ويتمّ ذلك بترويسة بيانات مستخدم (UDH) توضَع في بداية بيانات مستخدم كل جزء، مع علم (بتّ UDHI) يخبر الهاتف بوجود ترويسة. وتحمل الشبكة كل جزء كرسالة SMS مستقلة؛ والهاتف وحده يعيد دمجها.
ترويسة الدمج بطول 6 بايت
ترويسة الدمج الأشيع 6 بايتات: طول ترويسة، ومعرّف عنصر معلومات للدمج 8-بت، وطوله، ثم القيم الثلاث التي تقود إعادة التجميع — رقم مرجعي تتشاركه كل أجزاء رسالة واحدة، والعدد الكلي للأجزاء، وموضع هذا الجزء. وثمة صيغة بمرجع 16-بت (المعرّف IEI 0x08) بطول 7 بايتات.
| أوكتيت | الحقل | القيمة / المعنى |
|---|---|---|
| 1 | UDHL | 0x05 — طول الترويسة التي تلي |
| 2 | IEI | 0x00 — رسالة قصيرة متسلسلة، مرجع 8 بت |
| 3 | IEDL | 0x03 — طول عنصر المعلومات هذا |
| 4 | المرجع | مشترك بين جميع مقاطع الرسالة |
| 5 | إجمالي المقاطع | كم عدد الأجزاء إجمالاً |
| 6 | رقم التسلسل | موضع هذا المقطع (1..الإجمالي) |
السعة لكل جزء
تعيش UDH داخل الحمولة البالغة 140 بايت، فتقلّل النص الذي يمكن أن يحمله كل جزء. فبالنسبة لـ GSM-7، يجب أن تحاذي ترويسة UDH البالغة 6 بايتات حدود السبتِت، ما يكلّف فعليًا 7 سبتِتات ويترك 153 محرفًا لكل جزء. ولـ UCS-2، تترك الـ 6 بايتات 134 بايت — 67 محرفًا. ولبيانات 8-بت، تبقى 134 بايت. ولهذا تصبح رسالة GSM-7 بطول 161 محرفًا جزأين بحد 153 لكل منهما، لا 160 + 1.
| الترميز | SMS مفرد | لكل جزء (مع UDH) |
|---|---|---|
| GSM-7 | 160 | 153 |
| UCS-2 | 70 | 67 |
| 8-bit | 140 بايت | 134 بايت |
التسلسل وإعادة التجميع
تتشارك أجزاء رسالة منطقية واحدة رقمًا مرجعيًا؛ ويجمّع الهاتف حسب المرجع ويرتّب حسب رقم التسلسل لإعادة بناء النص. وقد تصل الأجزاء بغير ترتيب أو متأخرة، فيبقى جزء مفقود يترك الرسالة ناقصة حتى يظهر (أو تنتهي المهلة). وفي SMPP يمكنك الدمج إما ببايتات UDH في short_message (بضبط بتّ UDHI في esm_class) أو بمعاملات sar_* — اختر طريقة واحدة لكل مسار والتزم بالثبات.
الأسئلة المتكررة
كم محرفًا لكل جزء في SMS مدموجة؟
153 لـ GSM-7 و67 لـ UCS-2، لأن ترويسة بيانات المستخدم بطول 6 بايت تستهلك جزءًا من الحمولة البالغة 140 بايت. وتحمل أجزاء بيانات 8-بت العادية 134 بايت لكل منها.
ما هي UDH في SMS؟
ترويسة بيانات المستخدم بنية صغيرة في بداية بيانات مستخدم الجزء تحمل معلومات تحكم — للدمج: رقمًا مرجعيًا وعدد الأجزاء الكلي وتسلسل هذا الجزء. ويشير بتّ UDHI إلى وجودها.
لماذا تكلّف رسالة 161 محرفًا جزأين بطول 153؟
لأنه بمجرد أن تحتاج الرسالة الدمج، يحمل كل جزء ترويسة UDH تقلّص السعة إلى 153 محرف GSM-7. لذا تنقسم 161 محرفًا إلى جزأين (حتى 306 محرفًا إجمالًا)، يُحاسَب كل منهما كرسالة SMS منفصلة.
ما الفرق بين دمج UDH ودمج SAR؟
كلاهما يقسّم الرسائل الطويلة بالطريقة نفسها. يضمّن UDH بايتات الترويسة في جسم الرسالة ويضبط بتّ UDHI في esm_class؛ ويحمل SAR المرجع والعدد الكلي والتسلسل في معاملات SMPP sar_* بدلًا من ذلك، مبقيًا الجسم نظيفًا. استخدم ما يدعمه مسارك.
هل يمكن أن تصل الأجزاء المدموجة بغير ترتيب؟
نعم. يسافر كل جزء كرسالة SMS مستقلة، فقد يصل بغير ترتيب أو متأخرًا. ويعيد الهاتف التجميع حسب الرقم المرجعي والتسلسل؛ ويترك جزء مفقود الرسالة ناقصة حتى يصل.
مواصفات المصدر
تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.