[PATCH] new DLR scheme - fixes for AT2, SMPP and dlr.c
"Oded Arbel" <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Stipe.
Attached is a patch to fully adapt AT2 to the new DLR scheme (in addition to the other patch I sent today - not instead of), along with a patch to do the same for SMPP, and a small fix for dlr.c to get the dlr_url member of the message structure created properly also in the dlr_find_{mysql|sdb} functions.
--
Oded Arbel
m-Wise mobile solutions
[email protected]
+972-9-9581711 (116)
+972-67-340014
::..
The ultimate goal of mathematics is to eliminate all need for intelligent thought.
-- Graham, Knuth and Patashnik, ``Concrete Mathematics'', (p. 56)
dlr.patch
(application/octet-stream, 3.9 KB)
--- gateway/gw/dlr.c 2002-09-06 00:10:02.000000000 +0300
+++ gateway/gw/dlr.c 2002-09-06 00:09:08.000000000 +0300
@@ -621,7 +623,7 @@
msg->sms.smsc_id = octstr_create(smsc);
msg->sms.sender = octstr_create(dst);
msg->sms.receiver = octstr_create("000");
- msg->sms.msgdata = octstr_duplicate(dlr_url);
+ msg->sms.dlr_url = octstr_duplicate(dlr_url);
time(&msg->sms.time);
debug("dlr.dlr", 0, "created DLR message: %s", octstr_get_cstr(msg->sms.msgdata));
} else {
@@ -741,7 +745,7 @@
msg->sms.smsc_id = octstr_create(smsc);
msg->sms.sender = octstr_create(dst);
msg->sms.receiver = octstr_create("000");
- msg->sms.msgdata = octstr_duplicate(dlr_url);
+ msg->sms.dlr_url = octstr_duplicate(dlr_url);
time(&msg->sms.time);
debug("dlr.dlr", 0, "created DLR message: %s", octstr_get_cstr(msg->sms.msgdata));
} else {
--- gateway/gw/smsc/smsc_smpp.c 2002-09-04 20:42:57.000000000 +0300
+++ gateway/gw/smsc/smsc_smpp.c 2002-09-06 00:16:24.000000000 +0300
@@ -778,13 +800,10 @@
dlrmsg->sms.smsc_id = octstr_duplicate(smpp->conn->id);
dlrmsg->sms.sender = octstr_duplicate(msg->sms.receiver);
dlrmsg->sms.receiver = octstr_create("000");
- dlrmsg->sms.msgdata = octstr_duplicate(msg->sms.dlr_url);
+ dlrmsg->sms.dlr_url = octstr_duplicate(msg->sms.dlr_url);
+ dlrmsg->sms.msgdata = reply;
time(&msg->sms.time);
- octstr_append_char(reply, '/');
- octstr_insert(dlrmsg->sms.msgdata, reply, 0);
- octstr_destroy(reply);
-
info(0,"SMPP[%s]: DLR = %s", octstr_get_cstr(smpp->conn->id),
octstr_get_cstr(dlrmsg->sms.msgdata));
bb_smscconn_receive(smpp->conn, dlrmsg);
@@ -826,9 +845,7 @@
(DLR_SMSC_SUCCESS|((msg->sms.dlr_mask & (DLR_SUCCESS|DLR_FAIL)) ? DLR_BUFFERED : 0)));
if (dlrmsg != NULL) {
- octstr_append_char(reply, '/');
- dlrmsg->sms.msgdata = octstr_duplicate(reply);
- octstr_destroy(reply);
+ dlrmsg->sms.msgdata = reply;
bb_smscconn_receive(smpp->conn, dlrmsg);
} else
error(0,"SMPP[%s]: Got SMSC_ACK but could not find message",
--- gateway/gw/smsc/smsc_at2.c 2002-09-04 20:42:56.000000000 +0300
+++ gateway/gw/smsc/smsc_at2.c 2002-09-05 23:37:06.000000000 +0300
@@ -1659,8 +1664,8 @@
dlrmsg->sms.smsc_id = octstr_duplicate(privdata->conn->id);
dlrmsg->sms.sender = octstr_duplicate(msg->sms.receiver);
dlrmsg->sms.receiver = octstr_duplicate(msg->sms.sender);
- dlrmsg->sms.msgdata = octstr_create("ACK/");
- octstr_append(dlrmsg->sms.msgdata,msg->sms.dlr_url);
+ dlrmsg->sms.msgdata = octstr_create("ACK");
+ dlrmsg->sms.dlr_url = octstr_duplicate(msg->sms.dlr_url);
time(&dlrmsg->sms.time);
debug("bb.smsc.at2",0,"AT2[%s]: sending DLR type ACK", octstr_get_cstr(privdata->name));
@@ -1704,8 +1709,8 @@
dlrmsg->sms.smsc_id = octstr_duplicate(privdata->conn->id);
dlrmsg->sms.sender = octstr_duplicate(msg->sms.receiver);
dlrmsg->sms.receiver = octstr_duplicate(msg->sms.sender);
- dlrmsg->sms.msgdata = octstr_create("NACK/");
- octstr_append(dlrmsg->sms.msgdata,msg->sms.dlr_url);
+ dlrmsg->sms.msgdata = octstr_create("NACK");
+ dlrmsg->sms.dlr_url = octstr_duplicate(msg->sms.dlr_url);
time(&dlrmsg->sms.time);
debug("bb.smsc.at2",0,"AT2[%s]: sending DLR type NACK", octstr_get_cstr(privdata->name));