Hi,
rejected will be generated in the upper layer so no need to patch anything.
As to the status codes: you don't really need status code what you need is the
error code, check meta data errorcode field.
Alex
Am 10.04.2012 um 23:22 schrieb spameden:
> Hello, list.
>
> Sometimes it's good to know the exact reason why sms was failed.
>
> Is there any way I can get extended information about message delivery status?
>
> i.e. if it was REJECTED / UNDELIVERABLE / DELETED / EXPIRED
>
> According to SMPP v3.4 message states are:
>
> Message State Value Description
> ENROUTE 1 The message is in enroute
> state.
> DELIVERED 2 Message is delivered to
> destination
> EXPIRED 3 Message validity period has
> expired.
> DELETED 4 Message has been deleted.
> UNDELIVERABLE 5 Message is undeliverable
> ACCEPTED 6 Message is in accepted state
> (i.e. has been manually read
> on behalf of the subscriber by
> customer service)
> UNKNOWN 7 Message is in invalid state
> REJECTED 8 Message is in a rejected state
>
> Kannel seems to give status = 1 for delivered messages and status = 2 for all
> other failed messages (i.e. EXPIRED / REJECTED / UNDELIVERABLE, etc).
>
> Kannel's documentation says there is a 16 status for REJECTED messages, but
> kannel still gives status 2 instead. SMSC sends correct message state 8.
>
> I checked the source also it seems there is no handling of additional
> statuses in code (from gw/smsc/smsc_smpp.c):
>
> /* first check for SMPP v3.4 and above */
> 1291 if (smpp->version > 0x33 && receipted_message_id) {
> 1292 msgid = octstr_duplicate(receipted_message_id);
> 1293 switch(message_state) {
> 1294 case 1: /* ENROUTE */
> 1295 case 6: /* ACCEPTED */
> 1296 dlrstat = DLR_BUFFERED;
> 1297 break;
> 1298 case 2: /* DELIVERED */
> 1299 dlrstat = DLR_SUCCESS;
> 1300 break;
> 1301 case 3: /* EXPIRED */
> 1302 case 4: /* DELETED */
> 1303 case 5: /* UNDELIVERABLE */
> 1304 case 7: /* UNKNOWN */
> 1305 case 8: /* REJECTED */
> 1306 dlrstat = DLR_FAIL;
> 1307 break;
> 1308 case -1: /* message state is not present, partial SMPP v3.4 */
> 1309 debug("bb.sms.smpp", 0, "SMPP[%s]: Partial SMPP v3.4,
> receipted_message_id present but not message_state.",
> 1310 octstr_get_cstr(smpp->conn->id));
> 1311 dlrstat = -1;
> 1312 break;
> 1313 default:
> 1314 warning(0, "SMPP[%s]: Got DLR with unknown 'message_state'
> (%ld).",
> 1315 octstr_get_cstr(smpp->conn->id), message_state);
> 1316 dlrstat = DLR_FAIL;
> 1317 break;
> 1318 }
> 1319 }
>
>
> What's the right way to get additional information about message state from
> kannel?
>
> Should I modify source or I can use somehow msgdata field from DLR somehow
> with stat code (REJECTD/DELIVRD/etc) ?
>
> Thanks in advance.
>
>
>