# أكواد أخطاء SMPP.

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

مرجع SMPP v3.4 · command_status

كل قيمة `command_status` مُعرَّفة في مواصفة SMPP v3.4 — الكود السداسي عشري، والاسم الرمزي، والمعنى بلغة بسيطة، والسبب المحتمل والحل. ابحث بالكود أو الاسم لتصحيح خلل في الربط أو submit_sm بسرعة.

48 من أصل 48 كودًا

| سداسي عشري | الاسم الرمزي | المعنى والسبب المحتمل / الحل |
|---|---|---|
| 0x00000000 | ESME_ROK | لا يوجد خطأ. تم قبول الوحدة (PDU). بالنسبة لـ submit_sm، هذا يعني فقط أن SMSC استلم الرسالة، وليس أنها سُلّمت — تتبع التسليم عبر إيصال التسليم (DLR) في deliver_sm. |
| 0x00000001 | ESME_RINVMSGLEN | طول الرسالة غير صالح. الحقل short_message أو message_payload طويل جدًا أو فارغ بالنسبة للترميز المستخدم. قسّم المحتوى الطويل أو استخدم TLV الخاص بـ message_payload؛ تحقق من تطابق data_coding مع طول البايتات. |
| 0x00000002 | ESME_RINVCMDLEN | طول الأمر غير صالح. لا يتطابق الحقل command_length في ترويسة الوحدة مع عدد البايتات الفعلي المُرسَل. يكاد يكون دائمًا خطأً في مرمّز الوحدة لدى العميل أو خطأ في حدود التأطير/المخزن المؤقت. |
| 0x00000003 | ESME_RINVCMDID | معرّف الأمر غير صالح. الحقل command_id غير معروف أو غير مدعوم من قبل SMSC. تحقق من أنك ترسل عملية صالحة وإصدار SMPP الصحيح. |
| 0x00000004 | ESME_RINVBNDSTS | حالة BIND غير صحيحة بالنسبة للأمر المُعطى. العملية غير مسموح بها في وضع الربط الحالي — مثلاً submit_sm على ربط من نوع receiver، أو طلب قبل اكتمال الربط. اربط كـ transmitter أو transceiver أولاً. |
| 0x00000005 | ESME_RALYBND | الـ ESME موجود بالفعل في حالة ربط. تم إصدار طلب ربط ثانٍ على جلسة مربوطة بالفعل. أعد استخدام الجلسة الحالية أو ألغِ الربط قبل إعادة الربط. |
| 0x00000006 | ESME_RINVPRTFLG | علم الأولوية غير صالح. priority_flag خارج النطاق 0–3 الذي يقبله SMSC. حدّد قيمة مدعومة (عادةً 0). |
| 0x00000007 | ESME_RINVREGDLVFLG | علم التسليم المسجَّل غير صالح. يحمل الحقل registered_delivery قيمة غير مدعومة. استخدم قناع بت (bitmask) يدعمه SMSC (مثل 0x01 لطلب إيصال تسليم نهائي). |
| 0x00000008 | ESME_RSYSERR | خطأ في النظام. فشل عام من جانب SMSC يمنع المعالجة. مؤقت — أعد المحاولة مع تأخير تصاعدي؛ إذا استمر، تواصل مع مزوّد الخدمة. |
| 0x0000000A | ESME_RINVSRCADR | عنوان المصدر غير صالح. الحقل source_addr (معرّف المُرسِل) غير صحيح أو غير مسموح به — طول خاطئ، أحرف غير مسموحة، أو معرّف مُرسِل أبجدي رقمي غير مسجَّلة. سجّل الهوية أو أضفها إلى القائمة البيضاء. |
| 0x0000000B | ESME_RINVDSTADR | عنوان الوجهة غير صالح. الحقل destination_addr غير صحيح أو غير قابل للتوجيه — تنسيق MSISDN خاطئ، رمز دولة مفقود، أو نطاق محظور. طبّع الرقم إلى صيغة E.164. |
| 0x0000000C | ESME_RINVMSGID | معرّف الرسالة غير صالح. لا يطابق message_id في query_sm أو cancel_sm أو replace_sm أي رسالة معروفة. استخدم المعرّف الدقيق المُعاد في submit_sm_resp. |
| 0x0000000D | ESME_RBINDFAIL | فشل الربط. رُفض طلب الربط لسبب غير بيانات الاعتماد — مثل عدم إدراج عنوان IP في القائمة المسموحة، أو اشتراط TLS، أو نوع ربط غير مسموح به لهذا الحساب. |
| 0x0000000E | ESME_RINVPASWD | كلمة المرور غير صالحة. كلمة المرور في وحدة الربط خاطئة أو منتهية الصلاحية. تحقق من بيانات الاعتماد؛ لاحظ أن الحقل محدود بـ 8 ثمانيات (octets) في SMPP 3.4. |
| 0x0000000F | ESME_RINVSYSID | معرّف النظام غير صالح. الحقل system_id (اسم المستخدم) غير معروف لدى SMSC. تحقق من معرّف الحساب ومن كونه مُفعّلاً. |
| 0x00000011 | ESME_RCANCELFAIL | فشل إلغاء الرسالة (Cancel SM). لم يتمكن cancel_sm من إزالة الرسالة — ربما تم تسليمها بالفعل أو انتهت صلاحيتها. لا شيء لإعادة المحاولة. |
| 0x00000013 | ESME_RREPLACEFAIL | فشل استبدال الرسالة (Replace SM). لم يتمكن replace_sm من تحديث الرسالة، عادةً لأنها غادرت قائمة الانتظار بالفعل. أرسل رسالة جديدة بدلاً من ذلك. |
| 0x00000014 | ESME_RMSGQFUL | قائمة انتظار الرسائل ممتلئة. وصلت قائمة تخزين وإعادة توجيه SMSC إلى سعتها القصوى. خفّض معدل الإرسال وأعد المحاولة مع تأخير تصاعدي. |
| 0x00000015 | ESME_RINVSERTYP | نوع الخدمة غير صالح. قيمة service_type غير معروفة أو غير مسموح بها. اتركها فارغة أو استخدم قيمة متفقًا عليها مع مزوّد الخدمة. |
| 0x00000033 | ESME_RINVNUMDESTS | عدد الوجهات غير صالح. الحقل number_of_dests في وحدة submit_multi خارج النطاق. حافظ عليه ضمن حد الوجهات لكل وحدة الذي يفرضه SMSC. |
| 0x00000034 | ESME_RINVDLNAME | اسم قائمة التوزيع غير صالح. قائمة التوزيع المُشار إليها في submit_multi غير موجودة لدى SMSC. أنشئ القائمة أو أرسل إلى عناوين صريحة. |
| 0x00000040 | ESME_RINVDESTFLAG | علم الوجهة غير صالح. في submit_multi، الحقل dest_flag لأحد المدخلات ليس عنوان SME (1) ولا قائمة توزيع (2). صحّح علم الوجهة لكل مدخل. |
| 0x00000042 | ESME_RINVSUBREP | طلب 'الإرسال مع الاستبدال' غير صالح. تم تعيين replace_if_present_flag على عملية لا تدعمه، أو دُمج مع قوائم التوزيع. امسح العلم. |
| 0x00000043 | ESME_RINVESMCLASS | بيانات حقل esm_class غير صالحة. يحمل esm_class مجموعة غير مدعومة — مثل بت UDHI أو بت إيصال تسليم يرفضه SMSC. أعد فحص بتات وضع/نوع الرسالة. |
| 0x00000044 | ESME_RCNTSUBDL | لا يمكن الإرسال إلى قائمة التوزيع. الحساب غير مصرَّح له بالإرسال إلى قائمة التوزيع المحددة. استخدم العنونة المباشرة أو اطلب الإذن. |
| 0x00000045 | ESME_RSUBMITFAIL | فشل submit_sm أو submit_multi. فشل عام في الإرسال على مستوى SMSC. غالبًا مؤقت (توجيه/سعة) — أعد المحاولة مع تأخير تصاعدي؛ افحص أي TLV لسبب أكثر تحديدًا. |
| 0x00000048 | ESME_RINVSRCTON | نوع عنوان المصدر (TON) غير صالح. source_addr_ton غير صالح لتنسيق المرسل — مثلاً TON رقم 5 (أبجدي رقمي) مطلوب لمعرّف مُرسِل نصي لكن أُرسل TON رقمي. |
| 0x00000049 | ESME_RINVSRCNPI | خطة ترقيم عنوان المصدر (NPI) غير صالحة. source_addr_npi غير صالح أو غير متسق مع TON. استخدم NPI صفر مع المرسلين الأبجديين الرقميين وNPI رقم 1 (E.164) لأرقام MSISDN. |
| 0x00000050 | ESME_RINVDSTTON | نوع عنوان الوجهة (TON) غير صالح. dest_addr_ton غير صالح للوجهة. استخدم TON رقم 1 (دولي) مع رقم MSISDN بصيغة E.164. |
| 0x00000051 | ESME_RINVDSTNPI | خطة ترقيم عنوان الوجهة (NPI) غير صالحة. dest_addr_npi غير صالح أو غير متسق مع TON. القيمة NPI رقم 1 (ISDN/E.164) هي المعتادة للأرقام المحمولة. |
| 0x00000053 | ESME_RINVSYSTYP | حقل system_type غير صالح. قيمة system_type في وحدة الربط غير مقبولة. اتركها فارغة أو استخدم القيمة الدقيقة التي حددها المزوّد. |
| 0x00000054 | ESME_RINVREPFLAG | علم replace_if_present غير صالح. تم تعيين replace_if_present_flag على قيمة غير 0 أو 1. أرسل علمًا منطقيًا صالحًا. |
| 0x00000055 | ESME_RINVNUMMSGS | عدد الرسائل غير صالح. حقل sm_count/عدد الرسائل خارج النطاق. صحّح القيمة في الوحدة. |
| 0x00000058 | ESME_RTHROTTLED | خطأ تقييد المعدل — تجاوز حد الرسائل. أنت ترسل أسرع من المعدل المسموح به للحساب (رسائل في الثانية). قيّد حلقة الإرسال وأعد المحاولة مع تأخير تصاعدي. حالة مؤقتة قابلة لإعادة المحاولة. |
| 0x00000061 | ESME_RINVSCHED | وقت التسليم المجدوَل غير صالح. الحقل schedule_delivery_time غير صحيح التنسيق أو في الماضي. استخدم صيغة وقت SMPP المطلقة/النسبية (YYMMDDhhmmsstnnp) أو اتركه فارغًا. |
| 0x00000062 | ESME_RINVEXPIRY | فترة صلاحية الرسالة غير صالحة. validity_period غير صحيح التنسيق أو خارج النافذة المسموحة. استخدم صيغة وقت SMPP أو اتركه فارغًا لاستخدام إعداد SMSC الافتراضي. |
| 0x00000063 | ESME_RINVDFTMSGID | الرسالة المحددة مسبقًا غير صالحة أو غير موجودة. يشير sm_default_msg_id إلى رسالة جاهزة لا يملكها SMSC. أرسل النص الكامل أو معرّفًا صالحًا لرسالة محددة مسبقًا. |
| 0x00000064 | ESME_RX_T_APPN | رمز خطأ تطبيق مؤقت لدى مستقبل ESME. يُعاد من ESME الخاص بك (أو جهة وسيطة) للإشارة إلى فشل تطبيق مؤقت أثناء معالجة deliver_sm/data_sm. قد يعيد SMSC محاولة التسليم لاحقًا. |
| 0x00000065 | ESME_RX_P_APPN | رمز خطأ تطبيق دائم لدى مستقبل ESME. التطبيق المستقبِل يرفض الرسالة بشكل دائم. لن يعيد SMSC المحاولة — أصلح المعالج النهائي أو سبب الرفض. |
| 0x00000066 | ESME_RX_R_APPN | رمز خطأ رفض الرسالة لدى مستقبل ESME. يطلب التطبيق المستقبِل من SMSC رفض الرسالة. يُستخدم لرفض محتوى وارد معين. |
| 0x00000067 | ESME_RQUERYFAIL | فشل طلب query_sm. تعذر إتمام استعلام الحالة — قد يكون message_id غير معروف أو منتهيًا من مخزن SMSC. تحقق من المعرّف. |
| 0x000000C0 | ESME_RINVOPTPARSTREAM | خطأ في الجزء الاختياري من نص الوحدة. دفق TLV (المعامل الاختياري) غير صحيح البنية — طول خاطئ أو مبتور. أصلح مرمّز TLV في عميلك. |
| 0x000000C1 | ESME_ROPTPARNOTALLWD | المعامل الاختياري غير مسموح به. أُرسل TLV لا تسمح به هذه العملية أو SMSC. أزل المعامل الاختياري غير المدعوم. |
| 0x000000C2 | ESME_RINVPARLEN | طول المعامل غير صالح. الطول المُعلَن لـ TLV لا يطابق قيمته. صحّح حقل الطول في المعامل الاختياري. |
| 0x000000C3 | ESME_RMISSINGOPTPARAM | معامل اختياري متوقَّع مفقود. لم يُقدَّم TLV مطلوب لهذه العملية (مثل message_payload عندما يكون short_message فارغًا). أضف المعامل الاختياري الإلزامي. |
| 0x000000C4 | ESME_RINVOPTPARAMVAL | قيمة المعامل الاختياري غير صالحة. يحمل TLV قيمة خارج المجموعة المسموحة. راجع مواصفة SMPP للقيم المسموح بها لهذا المعامل. |
| 0x000000FE | ESME_RDELIVERYFAILURE | فشل التسليم (data_sm_resp). يُستخدم مع data_sm للإشارة إلى تعذّر تسليم الرسالة إلى الهاتف. عامله كإيصال تسليم فاشل وافحص الشبكة/المسار. |
| 0x000000FF | ESME_RUNKNOWNERR | خطأ غير معروف. حالة عامة عندما لا يملك SMSC رمزًا محددًا. أعد المحاولة مرة واحدة مع تأخير؛ إذا استمر، أبلغ مزوّد الخدمة مع نموذج من الوحدة (PDU). |

القيم غير المدرجة محجوزة. وفقًا لمواصفة SMPP v3.4: النطاق 0x00000100–0x000003FF محجوز لامتدادات بروتوكول SMPP، والنطاق 0x00000400–0x000004FF لأخطاء خاصة بمزوّد SMSC، والنطاق 0x00000500–0xFFFFFFFF محجوز. الفجوات الفردية أقل من 0xFF (مثل 0x09 و0x10) محجوزة وفقًا للمعيار.

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

## ما هو كود خطأ SMPP؟

كود خطأ SMPP هو القيمة الموجودة في حقل command_status لكل وحدة PDU استجابة في SMPP. يخبر العميل (ESME) ما إذا كان SMSC قد قبل العملية — القيمة 0x00000000 (ESME_ROK) تعني النجاح، وأي قيمة غير صفرية تحدد سبب فشل عملية ربط أو submit_sm أو query_sm أو غيرها. تُعرَّف الأكواد بواسطة مواصفة SMPP v3.4 وتكون متسقة عبر جميع أنظمة SMSC المتوافقة.

استجابة submit_sm_resp الناجحة بقيمة ESME_ROK تؤكد فقط أن SMSC قبل الرسالة للمعالجة — يُبلَّغ عن التسليم النهائي إلى الهاتف لاحقًا في إيصال التسليم (deliver_sm). عامل أخطاء وقت الإرسال وأخطاء وقت التسليم كطبقتين مختلفتين.

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

**ما هو command_status في SMPP؟**

command_status هو حقل من 4 بايت في ترويسة كل وحدة PDU استجابة في SMPP. في وحدة الطلب يكون مضبوطًا على صفر؛ وفي الاستجابة يحمل النتيجة — 0x00000000 (ESME_ROK) للنجاح، أو كود خطأ غير صفري يحدد الفشل. إنه الإشارة الأساسية التي يستخدمها عميلك لتحديد ما إذا كان سيعيد المحاولة، أو يصحح الوحدة، أو يفشل.

**ماذا تعني ESME_RTHROTTLED (0x00000058)؟**

تعني أنك ترسل الرسائل أسرع من المعدل المسموح به لحسابك (رسائل في الثانية). أبطئ حلقة الإرسال، وطبّق تأخيرًا تصاعديًا، وابقَ ضمن الإنتاجية المتفق عليها مع مزوّد الخدمة. إنها حالة مؤقتة قابلة لإعادة المحاولة.

**ما الفرق بين ESME_RINVSRCADR وESME_RINVDSTADR؟**

ESME_RINVSRCADR (0x0000000A) تعني أن عنوان المصدر — معرّف المُرسِل — غير صحيح أو غير مسموح به، وغالبًا ما يكون مرسلًا أبجديًا رقميًا غير مسجَّل. ESME_RINVDSTADR (0x0000000B) تعني أن رقم MSISDN الوجهة غير صحيح أو غير قابل للتوجيه. طبّع العناوين إلى صيغة E.164 وسجّل معرّفات المُرسِلين حيثما لزم.

**هل تعني ESME_ROK أن الرسالة سُلّمت؟**

لا. تؤكد ESME_ROK في submit_sm_resp فقط أن SMSC قبل الرسالة للمعالجة. يُبلَّغ عن التسليم النهائي إلى الهاتف لاحقًا في إيصال التسليم (deliver_sm)، الذي يحمل حالته الخاصة مثل DELIVRD أو UNDELIV أو EXPIRED. طابق دائمًا بين قبول الإرسال وإيصال التسليم.

**ما هي أخطاء SMPP الآمنة لإعادة المحاولة؟**

الأكواد المؤقتة على مستوى النظام قابلة لإعادة المحاولة مع تأخير تصاعدي: ESME_RSYSERR (0x08)، وESME_RMSGQFUL (0x14)، وESME_RTHROTTLED (0x58)، وESME_RSUBMITFAIL (0x45)، وESME_RUNKNOWNERR (0xFF). أخطاء التحقق مثل العناوين غير الصحيحة، أو TON/NPI، أو طول الرسالة، أو بيانات الاعتماد الخاطئة دائمة — أصلح الطلب أو الإعداد بدلاً من إعادة المحاولة.

**هل هذه الأكواد نفسها عبر جميع أنظمة SMSC؟**

الأكواد ضمن النطاق 0x00000000–0x000000FF مُعرَّفة بواسطة مواصفة SMPP v3.4 وتكون متسقة عبر جميع أنظمة SMSC المتوافقة. النطاقات 0x00000400–0x000004FF محجوزة لأخطاء خاصة بالمزوّد، لذا قد يُعيد نظام SMSC معين أكوادًا إضافية هناك بمعانٍ خاصة به — تحقق دائمًا من وثائق مزوّد الخدمة لهذه الحالات.

[المرجع التقني للبروتوكول اقرأ المواصفة التي يقوم عليها هذه الأداة في مكتبة المراجع.](https://www.broadnet.me/ar/reference/smpp-command-status-errors) [بوابة SMSC مركز رسائل بمستوى المشغّلين عبر SMPP وSS7.](https://www.broadnet.me/ar/operators/smsc-gateway) [واجهة برمجة الرسائل القصيرة REST وSMPP 3.4، مصادقة برمز Bearer، وwebhooks لإيصالات التسليم.](https://www.broadnet.me/ar/products/sms-api) [مركز المطورين دليل البدء السريع، وTypeScript SDK، والمراجع، والأدوات.](https://www.broadnet.me/ar/developers)

## هل تربط جلسة SMPP؟

توفّر BroadNet ارتباطات SMPP 3.4 مباشرة بإنتاجية يمكن التنبؤ بها ومعالجة واضحة لـ command_status. تحدّث إلى فريقنا بشأن الاتصال.

[مركز المطورين](https://www.broadnet.me/ar/developers) [بوابة SMSC](https://www.broadnet.me/ar/operators/smsc-gateway)
