Definición
submit_sm es la operación de SMPP v3.4 (command_id 0x00000004) que una aplicación usa para enviar un único SMS al SMSC. El SMSC responde con submit_sm_resp, que contiene un message_id que sirve para asociar después los informes de entrega (DLR).
Los campos clave son source_addr (el ID de remitente o sender ID) con su TON/NPI, destination_addr, esm_class, registered_delivery (solicitar el informe de entrega), data_coding (por ejemplo, 0x00 para el alfabeto por defecto o 0x08 para UCS-2), sm_length y short_message.
short_message admite hasta 254 octetos. Para datos de usuario más largos, la especificación indica poner sm_length a cero e incluir el contenido en el TLV message_payload.
Si el remitente construye su propia cabecera de concatenación, activa el bit UDHI (0x40) en esm_class y antepone la UDH a short_message.
Un command_status distinto de cero en submit_sm_resp significa que el SMSC rechazó el mensaje, por ejemplo ESME_RINVDSTADR (destino no válido) o ESME_RTHROTTLED (throughput superado). La aceptación solo significa que el SMSC recibió el mensaje; el informe de entrega comunica el resultado final.
Ejemplo
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"