# أداة فك ترميز PDU الخاصة بـ SMPP.

- الرابط الأساسي: https://www.broadnet.me/ar/tools/smpp-pdu-decoder
- اللغة: ar
- آخر تحديث: 2026-10-21
- الناشر: BroadNet (https://www.broadnet.me)
- نسخة Markdown من الصفحة، مولّدة من الصفحة المعروضة.

SMPP v3.4 · يعمل داخل متصفحك

الصق الترميز السداسي عشري لـ PDU من SMPP v3.4 لفك ترميز ترويسته المكوّنة من 16 بايت — command_length وcommand_id (مع اسمه) وcommand_status وsequence_number — واطّلع على تخطيط حقول الجسم الإلزامية لـsubmit_sm وdeliver_sm. لا تغادر البيانات جهازك.

16 بايت

جرّب مثالًا

command_length

16 0x00000010

command_id

enquire_link 0x00000015

command_status

0x00000000

ESME_ROK — No error

sequence_number

1 0x00000001

الجسم (0 بايت بعد الترويسة المكوّنة من 16 بايت)

PDU يقتصر على الترويسة فقط — بلا جسم (نموذجي في enquire_link وunbind ومعظم إقرارات _resp).

الإجابة المختصرة

## ما هو PDU الخاص بـ SMPP؟

PDU (وحدة بيانات البروتوكول) هي رسالة SMPP واحدة على السلك. تبدأ كل PDU — سواء bind أو submit_sm أو إيصال تسليم أو enquire_link — بالترويسة نفسها المكوّنة من 16 بايت وأربعة أعداد صحيحة من 32 بت بترتيب big-endian: command_length (إجمالي الطول بالبايت شاملًا الترويسة)، وcommand_id (نوع العملية)، وcommand_status (النتيجة، وتكون 0 / ESME_ROK في استجابة ناجحة)، وsequence_number (تُستخدم لمطابقة الاستجابة بطلبها). تتبع أي حقول جسم الترويسة.

### تخطيط الترويسة المكوّنة من 16 بايت

| البايتات | الحقل | المعنى |
|---|---|---|
| 0–3 | command_length | الطول الإجمالي لـPDU بالأوكتيت، شاملًا الترويسة. |
| 4–7 | command_id | يحدّد العملية (مثلًا 0x00000004 = submit_sm). |
| 8–11 | command_status | رمز النتيجة؛ 0 = ESME_ROK. ذو معنى فقط في الاستجابات. |
| 12–15 | sequence_number | يربط الطلب باستجابته. |

### حقول جسم submit_sm / deliver_sm

بعد الترويسة، يحمل submit_sm أو deliver_sm حقوله الإلزامية بترتيب ثابت، تليها اختياريًا معاملات TLV. تسرد هذه الأداة الترتيب؛ ولا تحلّل بالكامل سلاسل C-Octet المتغيرة الطول، لأن حدودها تعتمد على المُنهيات الفارغة وحقل sm_length.

| الحقل | النوع | المعنى |
|---|---|---|
| service_type | C-Octet String | يشير إلى خدمة تطبيق الرسائل القصيرة (فارغ = افتراضي). |
| source_addr_ton | Integer (1) | نوع رقم المرسل. |
| source_addr_npi | Integer (1) | مؤشر خطة الترقيم الخاص بالمرسل. |
| source_addr | C-Octet String | عنوان مُصدر الرسالة. |
| dest_addr_ton | Integer (1) | نوع رقم المستلم. |
| dest_addr_npi | Integer (1) | مؤشر خطة الترقيم الخاص بالمستلم. |
| destination_addr | C-Octet String | رقم MSISDN أو الرمز القصير للوجهة. |
| esm_class | Integer (1) | وضع الرسالة ونوعها (مثلًا 0x04 = إيصال تسليم). |
| protocol_id | Integer (1) | معرّف البروتوكول (خاص بالشبكة). |
| priority_flag | Integer (1) | مستوى أولوية الرسالة. |
| schedule_delivery_time | C-Octet String | وقت التسليم المُجدوَل (فارغ = فوري). |
| validity_period | C-Octet String | فترة صلاحية الرسالة (فارغ = افتراضي). |
| registered_delivery | Integer (1) | ما إذا كان قد طُلب إيصال تسليم (DLR). |
| replace_if_present_flag | Integer (1) | استبدال رسالة موجودة إن وُجدت. |
| data_coding | Integer (1) | مخطط الترميز (0 = GSM-7، 8 = UCS-2). |
| sm_default_msg_id | Integer (1) | معرّف رسالة محدّد مسبقًا. |
| sm_length | Integer (1) | طول حقل short_message بالأوكتيت. |
| short_message | Octet String | حمولة الرسالة (حتى 254 أوكتيت). |

## الأسئلة الشائعة

**ما هي الحقول الأربعة في ترويسة SMPP؟**

تبدأ كل PDU من SMPP بترويسة مكوّنة من 16 بايت وأربعة أعداد صحيحة من 32 بت بترتيب big-endian: command_length (إجمالي طول PDU بالأوكتيت شاملًا الترويسة)، وcommand_id (العملية، مثل 0x00000004 لـsubmit_sm)، وcommand_status (رمز النتيجة، 0 = ESME_ROK)، وsequence_number (الذي يربط استجابة بطلبها الأصلي).

**لماذا تكون command_status عادةً 0 في طلباتي؟**

لا يكون command_status ذا معنى إلا في PDU من نوع الاستجابة وgeneric_nack. في PDU الطلب (submit_sm وbind وenquire_link) تكون محجوزة ويجب ضبطها على 0. أي قيمة غير صفرية في _resp تشير إلى خطأ — فمثلًا 0x00000058 هي ESME_RTHROTTLED.

**هل الأعداد الصحيحة في SMPP بترتيب big-endian؟**

نعم. يرمّز SMPP الأعداد الصحيحة متعددة الأوكتيت بترتيب بايت الشبكة (big-endian، الأكثر أهمية أولًا). تقرأ هذه الأداة كل حقل ترويسة من 4 بايت كعدد صحيح غير موقّع من 32 بت بترتيب big-endian.

**هل تفكّ هذه الأداة ترميز نص الرسالة؟**

تفكّ ترميز الترويسة الثابتة المكوّنة من 16 بايت وتسرد ترتيب حقول الجسم لـsubmit_sm وdeliver_sm، لكنها لا تحلّل الجسم متغيّر الطول إلى قيم فردية. سلاسل C-Octet منتهية بصفر، ويُحمل طول short_message في sm_length، لذا يعتمد التحليل الكامل للجسم على تلك الحدود — وتلتزم هذه الأداة بتخطيط الترويسة القياسي فقط.

**أين يمكنني البحث عن command_status لا أتعرّف عليها؟**

استخدم مرجع رموز أخطاء SMPP، الذي يسرد كل قيمة command_status في SMPP v3.4 بالاسم السداسي عشري والرمزي مع معنى واضح والسبب والحل المحتملين.

[رموز أخطاء SMPP ابحث في كل قيمة command_status مع السبب والحل.](https://www.broadnet.me/ar/tools/smpp-error-codes) [أداة فك ترميز DLR فكّ ترميز إيصال تسليم من PDU من نوع deliver_sm.](https://www.broadnet.me/ar/tools/dlr-decoder) [بروتوكول SMPP كيف تتلاءم الارتباطات والنوافذ وPDU معًا.](https://www.broadnet.me/ar/answers/smpp-protocol)

## هل تحتاج إلى ارتباط SMPP حقيقي؟

تقدّم BroadNet ارتباطات SMPP 3.4 مباشرة إلى جانب واجهة REST وwebhooks لإيصالات التسليم عبر أكثر من 200 دولة. تحدّث إلى فريقنا حول الإنتاجية والتوجيه.

[مركز المطوّرين](https://www.broadnet.me/ar/developers) [تواصل مع المبيعات](https://www.broadnet.me/ar/contact)
