? Debug ? Release Index: gw/dlr.c =================================================================== RCS file: /home/cvs/gateway/gw/dlr.c,v retrieving revision 1.56 diff -u -r1.56 dlr.c --- gw/dlr.c 19 Feb 2008 11:12:30 -0000 1.56 +++ gw/dlr.c 15 Sep 2008 14:25:56 -0000 @@ -359,7 +359,7 @@ { Msg *msg = NULL; struct dlr_entry *dlr = NULL; - + if(octstr_len(smsc) == 0) { warning(0, "DLR[%s]: Can't find a dlr without smsc-id", dlr_type()); return NULL; @@ -392,6 +392,10 @@ O_SET(msg->sms.sender, dlr->source); /* if dlr_url was present, recode it here again */ O_SET(msg->sms.dlr_url, dlr->url); + /* add the smsc_msg_id */ + Octstr *tmp = octstr_duplicate(ts); + O_SET(msg->sms.smsc_msg_id, tmp); + octstr_destroy(tmp); /* * insert original message to the data segment * later in the smsc module @@ -468,6 +472,7 @@ dlrmsg->sms.dlr_url = octstr_duplicate(msg->sms.dlr_url); dlrmsg->sms.msgdata = octstr_duplicate(reply); dlrmsg->sms.boxc_id = octstr_duplicate(msg->sms.boxc_id); + dlrmsg->sms.smsc_msg_id = octstr_duplicate(msg->sms.smsc_msg_id); time(&dlrmsg->sms.time); debug("dlr.dlr", 0,"SMSC[%s]: DLR = %s", Index: gw/msg-decl.h =================================================================== RCS file: /home/cvs/gateway/gw/msg-decl.h,v retrieving revision 1.34 diff -u -r1.34 msg-decl.h --- gw/msg-decl.h 9 Jan 2008 20:06:57 -0000 1.34 +++ gw/msg-decl.h 15 Sep 2008 14:25:57 -0000 @@ -86,6 +86,7 @@ INTEGER(time); OCTSTR(smsc_id); OCTSTR(smsc_number); + OCTSTR(smsc_msg_id); OCTSTR(service); OCTSTR(account); UUID(id); @@ -107,8 +108,8 @@ INTEGER(msg_left); VOID(split_parts); INTEGER(priority); - INTEGER(resend_try); - INTEGER(resend_time); + INTEGER(resend_try); + INTEGER(resend_time); }) MSG(ack, Index: gw/urltrans.c =================================================================== RCS file: /home/cvs/gateway/gw/urltrans.c,v retrieving revision 1.108 diff -u -r1.108 urltrans.c --- gw/urltrans.c 24 Jun 2008 11:28:41 -0000 1.108 +++ gw/urltrans.c 15 Sep 2008 14:26:00 -0000 @@ -617,6 +617,14 @@ * * validity, deferred, rpi - we don't receive these from smsc * * username, password, dlr-url, account - nonsense to send */ + case 'w': + if (request->sms.smsc_msg_id == NULL) + break; + enc = octstr_duplicate(request->sms.smsc_msg_id); + octstr_url_encode(enc); + octstr_append(result, enc); + octstr_destroy(enc); + break; case '%': octstr_format_append(result, "%%"); Index: gw/smsc/smsc_smpp.c =================================================================== RCS file: /home/cvs/gateway/gw/smsc/smsc_smpp.c,v retrieving revision 1.105 diff -u -r1.105 smsc_smpp.c --- gw/smsc/smsc_smpp.c 12 Sep 2008 10:15:31 -0000 1.105 +++ gw/smsc/smsc_smpp.c 15 Sep 2008 14:26:07 -0000 @@ -1499,10 +1499,10 @@ } } + msg->sms.smsc_msg_id = octstr_duplicate( tmp ); /* SMSC ACK.. now we have the message id. */ if (DLR_IS_ENABLED_DEVICE(msg->sms.dlr_mask)) dlr_add(smpp->conn->id, tmp, msg); - octstr_destroy(tmp); bb_smscconn_sent(smpp->conn, msg, NULL); --(*pending_submits);