التعريف
submit_sm هي عملية SMPP v3.4 (command_id 0x00000004) التي يستخدمها التطبيق لتقديم رسالة SMS واحدة إلى SMSC. ويرد SMSC بوحدة submit_sm_resp التي تتضمن message_id يُستخدم لاحقاً لمطابقة تقارير التسليم.
أهم الحقول: source_addr (اسم المرسل) مع قيمتي TON/NPI الخاصتين به، وdestination_addr، وesm_class، وregistered_delivery (لطلب إشعار تسليم)، وdata_coding (مثل 0x00 للأبجدية الافتراضية أو 0x08 لـ UCS-2)، وsm_length، وshort_message.
يتسع الحقل short_message لما يصل إلى 254 بايت. وللبيانات الأطول، تنص المواصفة على ضبط sm_length على صفر ووضع المحتوى في TLV المسمّى message_payload بدلاً من ذلك.
إذا أنشأ المرسل ترويسة الربط الخاصة به، فإنه يضبط بت UDHI (0x40) في esm_class ويضيف UDH في بداية short_message.
تعني القيمة غير الصفرية لـ command_status في submit_sm_resp أن SMSC رفض الرسالة، مثل ESME_RINVDSTADR (وجهة غير صالحة) أو ESME_RTHROTTLED (تجاوز معدل الإرسال). والقبول يعني فقط أن SMSC استلم الرسالة؛ أما النتيجة النهائية فيُبلغ عنها تقرير التسليم (DLR).
مثال
submit_sm: source_addr_ton=5 source_addr="AcmeBank" dest_addr_ton=1 destination_addr="971501234567" registered_delivery=1 data_coding=0x00 short_message="Your code is 482913"