質問

I have kannel SMPP (kannel.org) and receive SMS statuses by param: %d

And here is table:

16 = not delivered to smsc 8 = you submitted to smsc. ie smsc tell kannel he has the msg 4 = msg is in smsc queue. ie smsc tell kannel he queued the msg in its queue. 2 = failed 1 = delivered to phone

But here is very low information. How I can receive more information about (wrong number or something like what)? Now is just failed and whats all, if we want to know why failed we must ask our partners support.

役に立ちましたか?

解決

More detailed information on delivery error you can fetch from the following sources:

  • network_error_code TLV (0x0423) - see p. 5.3.2.31 of SMPP v3.4 specification
  • text part of DLR message (%A in dlr-url)
  • command_status in case of rejection (represented as "NACK/$code"

Example of text part in DLR:

id:0832095221 sub:001 dlvrd:000 submit date:1203311115 done date:1204010436 stat:UNDELIV err:011 text:some text here

Here you can see 011 error code in undeliverable message.

However there are many vendor specific issues you need to discover with each new SMSC. And no strict requirements in SMPP specification to information to represented in DLR.

他のヒント

For your DLR URL add this: dlr_mask=31 dlr_url=....?answer=%A&status=%d

Where DLR bitmask means: 1: Received by phone 2: Failure to deliver to phone 4: Queued for delivery 8: Accepted by other SMSC 16: Rejected by other SMSC

If you get a 16, or your get a 2 it'll look like this: status=<2 or 16 here> answer=NACK//

The get a table mapping hex_code to its vendor-specific meaning from the carrier

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top