Error code "075" in SMPP Delivery Receipt

SMPP provides for return of an SMSC delivery receipt via the deliver_sm or data_sm PDU,

which indicates the delivery status of the message.

 

The informational content of an SMSC Delivery Receipt may be inserted into the

short_message parameter of the deliver_sm operation. The format for this Delivery Receipt

message is SMSC vendor specific but following is a typical example of Delivery Receipt report:

 

“id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done
date:YYMMDDhhmm stat:DDDDDDD err:E Text: . . . . . . . . .”
 

 

Here is the example Delivery receipt message states:
Error code "075" in SMPP Delivery Receipt
In my test, I got following Delivery receipt from SMSC:

id:0911897980 sub:001 dlvrd:000 submit date:1201121551 done date:1201121551 stat:UNDELIV err:075 text:-PROFILE

"075" means ESME_RINVDSTNPI:

75 ESME_RINVDSTNPI Invalid numbering plan indicator for destination

 

So I decode Submit_SM message as following:

 

command_length = 0000009A
command_id = 00000004
command_status = 00000000
sequence_number = 00000073
service_type = 
service_type_decode = 
source_addr_ton = 00
source_addr_npi = 00
source_addr = 
source_addr_decode = 
dest_addr_ton = 01
dest_addr_npi = 01
dest_addr = 38353832333830
dest_addr_decode = 8582380
esm_class = 40
protocol_id = 00
priority_flag = 00
schedule_delivery_time = 
schedule_delivery_time_decode = 
validity_period = 
validity_period_decode = 
registered_delivery = 00
replace_if_present_flag = 00
data_coding = 04
sm_default_msg_id = 00
sm_length = 72
short_message = ...
short_message_decode = 

We can see dest_addr_ton=0x01 (International) and dest_addr_npi=0x01 (ISDN), but the dest_addr is not well format international type, so the dest_addr_ton should be updated to "0x02" which is (National) or the dest_addr should be ISDN format with country code.