Hi list,

this is a simple patchset allowing to handle 'foreign_id' as we handle it in the msg struct in the DB schemas.

Please review and vote for commit.

Stipe

--
-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------

Index: gw/sqlbox_mysql.c
===================================================================
--- gw/sqlbox_mysql.c   (revision 48)
+++ gw/sqlbox_mysql.c   (working copy)
@@ -123,29 +123,31 @@
             msg->sms.msgdata    = octstr_null_create(row[5]);
             msg->sms.time       = atol_null(row[6]);
             msg->sms.smsc_id    = octstr_null_create(row[7]);
-            msg->sms.service    = octstr_null_create(row[8]);
-            msg->sms.account    = octstr_null_create(row[9]);
-            /* msg->sms.id      = atol_null(row[10]); */
-            msg->sms.sms_type   = atol_null(row[11]);
-            msg->sms.mclass     = atol_null(row[12]);
-            msg->sms.mwi        = atol_null(row[13]);
-            msg->sms.coding     = atol_null(row[14]);
-            msg->sms.compress   = atol_null(row[15]);
-            msg->sms.validity   = atol_null(row[16]);
-            msg->sms.deferred   = atol_null(row[17]);
-            msg->sms.dlr_mask   = atol_null(row[18]);
-            msg->sms.dlr_url    = octstr_null_create(row[19]);
-            msg->sms.pid        = atol_null(row[20]);
-            msg->sms.alt_dcs    = atol_null(row[21]);
-            msg->sms.rpi        = atol_null(row[22]);
-            msg->sms.charset    = octstr_null_create(row[23]);
-            msg->sms.binfo      = octstr_null_create(row[25]);
-            msg->sms.meta_data  = octstr_null_create(row[26]);
-            if (row[24] == NULL) {
-                msg->sms.boxc_id= octstr_duplicate(sqlbox_id);
+            msg->sms.foreign_id = octstr_null_create(row[8]);
+            msg->sms.service    = octstr_null_create(row[9]);
+            msg->sms.account    = octstr_null_create(row[10]);
+            /* msg->sms.id      = atol_null(row[11]); */
+            msg->sms.sms_type   = atol_null(row[12]);
+            msg->sms.mclass     = atol_null(row[13]);
+            msg->sms.mwi        = atol_null(row[14]);
+            msg->sms.coding     = atol_null(row[15]);
+            msg->sms.compress   = atol_null(row[16]);
+            msg->sms.validity   = atol_null(row[17]);
+            msg->sms.deferred   = atol_null(row[18]);
+            msg->sms.dlr_mask   = atol_null(row[19]);
+            msg->sms.dlr_url    = octstr_null_create(row[20]);
+            msg->sms.pid        = atol_null(row[21]);
+            msg->sms.alt_dcs    = atol_null(row[22]);
+            msg->sms.rpi        = atol_null(row[23]);
+            msg->sms.charset    = octstr_null_create(row[24]);
+            /* msg->sms.boxc_ud = octstr_null_create(row[25]); */
+            msg->sms.binfo      = octstr_null_create(row[26]);
+            msg->sms.meta_data  = octstr_null_create(row[27]);
+            if (row[25] == NULL) {
+                msg->sms.boxc_id = octstr_duplicate(sqlbox_id);
             }
             else {
-                msg->sms.boxc_id= octstr_null_create(row[24]);
+                msg->sms.boxc_id = octstr_null_create(row[25]);
             }
             /* delete current row */
             delet = octstr_format(SQLBOX_MYSQL_DELETE_QUERY, 
sqlbox_insert_table, id);
@@ -192,13 +194,33 @@
     Octstr *stuffer[30];
     int stuffcount = 0;
 
-    sql = octstr_format(SQLBOX_MYSQL_INSERT_QUERY, sqlbox_logtable, 
st_str(momt), st_str(msg->sms.sender),
-        st_str(msg->sms.receiver), st_str(msg->sms.udhdata), 
st_str(msg->sms.msgdata), st_num(msg->sms.time),
-        st_str(msg->sms.smsc_id), st_str(msg->sms.service), 
st_str(msg->sms.account), st_num(msg->sms.sms_type),
-        st_num(msg->sms.mclass), st_num(msg->sms.mwi), 
st_num(msg->sms.coding), st_num(msg->sms.compress),
-        st_num(msg->sms.validity), st_num(msg->sms.deferred), 
st_num(msg->sms.dlr_mask), st_str(msg->sms.dlr_url),
-        st_num(msg->sms.pid), st_num(msg->sms.alt_dcs), st_num(msg->sms.rpi), 
st_str(msg->sms.charset),
-        st_str(msg->sms.boxc_id), st_str(msg->sms.binfo), 
st_str(msg->sms.meta_data));
+    sql = octstr_format(SQLBOX_MYSQL_INSERT_QUERY, sqlbox_logtable,
+               st_str(momt),
+               st_str(msg->sms.sender),
+               st_str(msg->sms.receiver),
+               st_str(msg->sms.udhdata),
+               st_str(msg->sms.msgdata),
+               st_num(msg->sms.time),
+               st_str(msg->sms.smsc_id),
+               st_str(msg->sms.foreign_id),
+               st_str(msg->sms.service),
+               st_str(msg->sms.account),
+               st_num(msg->sms.sms_type),
+               st_num(msg->sms.mclass),
+               st_num(msg->sms.mwi),
+               st_num(msg->sms.coding),
+               st_num(msg->sms.compress),
+               st_num(msg->sms.validity),
+               st_num(msg->sms.deferred),
+               st_num(msg->sms.dlr_mask),
+               st_str(msg->sms.dlr_url),
+               st_num(msg->sms.pid),
+               st_num(msg->sms.alt_dcs),
+               st_num(msg->sms.rpi),
+               st_str(msg->sms.charset),
+               st_str(msg->sms.boxc_id),
+               st_str(msg->sms.binfo),
+               st_str(msg->sms.meta_data));
     sql_update(sql);
     while (stuffcount > 0) {
         octstr_destroy(stuffer[--stuffcount]);
Index: gw/sqlbox_mysql.h
===================================================================
--- gw/sqlbox_mysql.h   (revision 48)
+++ gw/sqlbox_mysql.h   (working copy)
@@ -6,7 +6,8 @@
 sql_id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, \
 momt ENUM('MO', 'MT', 'DLR') NULL, sender VARCHAR(20) NULL, \
 receiver VARCHAR(20) NULL, udhdata BLOB NULL, msgdata TEXT NULL, \
-time BIGINT(20) NULL, smsc_id VARCHAR(255) NULL, service VARCHAR(255) NULL, \
+time BIGINT(20) NULL, smsc_id VARCHAR(255) NULL, \
+foreign_id VARCHAR(255) NULL, service VARCHAR(255) NULL, \
 account VARCHAR(255) NULL, id BIGINT(20) NULL, sms_type BIGINT(20) NULL, \
 mclass BIGINT(20) NULL, mwi BIGINT(20) NULL, coding BIGINT(20) NULL, \
 compress BIGINT(20) NULL, validity BIGINT(20) NULL, deferred BIGINT(20) NULL, \
@@ -18,7 +19,8 @@
 sql_id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, \
 momt ENUM('MO', 'MT') NULL, sender VARCHAR(20) NULL, \
 receiver VARCHAR(20) NULL, udhdata BLOB NULL, msgdata TEXT NULL, \
-time BIGINT(20) NULL, smsc_id VARCHAR(255) NULL, service VARCHAR(255) NULL, \
+time BIGINT(20) NULL, smsc_id VARCHAR(255) NULL,  \
+foreign_id VARCHAR(255) NULL, service VARCHAR(255) NULL, \
 account VARCHAR(255) NULL, id BIGINT(20) NULL, sms_type BIGINT(20) NULL, \
 mclass BIGINT(20) NULL, mwi BIGINT(20) NULL, coding BIGINT(20) NULL, \
 compress BIGINT(20) NULL, validity BIGINT(20) NULL, deferred BIGINT(20) NULL, \
@@ -27,16 +29,16 @@
 boxc_id VARCHAR(255) NULL, binfo VARCHAR(255) NULL, meta_data TEXT)"
 
 #define SQLBOX_MYSQL_SELECT_QUERY "SELECT sql_id, momt, sender, receiver, 
udhdata, \
-msgdata, time, smsc_id, service, account, id, sms_type, mclass, mwi, coding, \
+msgdata, time, smsc_id, foreign_id, service, account, id, sms_type, mclass, 
mwi, coding, \
 compress, validity, deferred, dlr_mask, dlr_url, pid, alt_dcs, rpi, \
 charset, boxc_id, binfo, meta_data FROM %S LIMIT 0,1"
 
 #define SQLBOX_MYSQL_INSERT_QUERY "INSERT INTO %S ( sql_id, momt, sender, \
-receiver, udhdata, msgdata, time, smsc_id, service, account, sms_type, \
+receiver, udhdata, msgdata, time, smsc_id, foreign_id, service, account, 
sms_type, \
 mclass, mwi, coding, compress, validity, deferred, dlr_mask, dlr_url, \
 pid, alt_dcs, rpi, charset, boxc_id, binfo, meta_data ) VALUES ( \
-NULL, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, \
-%S, %S, %S, %S, %S, %S, %S, %S, %S)"
+NULL, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, \
+%S, %S, %S, %S, %S, %S, %S, %S, %S, %S)"
 
 #define SQLBOX_MYSQL_DELETE_QUERY "DELETE FROM %S WHERE sql_id = %S"
 
Index: gw/sqlbox_oracle.c
===================================================================
--- gw/sqlbox_oracle.c  (revision 49)
+++ gw/sqlbox_oracle.c  (working copy)
@@ -127,29 +127,30 @@
             msg->sms.msgdata    = get_oracle_octstr_col(5);
             msg->sms.time       = get_oracle_long_col(6);
             msg->sms.smsc_id    = get_oracle_octstr_col(7);
-            msg->sms.service    = get_oracle_octstr_col(8);
-            msg->sms.account    = get_oracle_octstr_col(9);
-            /* msg->sms.id      = get_oracle_long_col(10); */
-            msg->sms.sms_type   = get_oracle_long_col(11);
-            msg->sms.mclass     = get_oracle_long_col(12);
-            msg->sms.mwi        = get_oracle_long_col(13);
-            msg->sms.coding     = get_oracle_long_col(14);
-            msg->sms.compress   = get_oracle_long_col(15);
-            msg->sms.validity   = get_oracle_long_col(16);
-            msg->sms.deferred   = get_oracle_long_col(17);
-            msg->sms.dlr_mask   = get_oracle_long_col(18);
-            msg->sms.dlr_url    = get_oracle_octstr_col(19);
-            msg->sms.pid        = get_oracle_long_col(20);
-            msg->sms.alt_dcs    = get_oracle_long_col(21);
-            msg->sms.rpi        = get_oracle_long_col(22);
-            msg->sms.charset    = get_oracle_octstr_col(23);
-            msg->sms.binfo      = get_oracle_octstr_col(25);
+            msg->sms.foreign_id = get_oracle_octstr_col(8);
+            msg->sms.service    = get_oracle_octstr_col(9);
+            msg->sms.account    = get_oracle_octstr_col(10);
+            /* msg->sms.id      = get_oracle_long_col(11); */
+            msg->sms.sms_type   = get_oracle_long_col(12);
+            msg->sms.mclass     = get_oracle_long_col(13);
+            msg->sms.mwi        = get_oracle_long_col(14);
+            msg->sms.coding     = get_oracle_long_col(15);
+            msg->sms.compress   = get_oracle_long_col(16);
+            msg->sms.validity   = get_oracle_long_col(17);
+            msg->sms.deferred   = get_oracle_long_col(18);
+            msg->sms.dlr_mask   = get_oracle_long_col(19);
+            msg->sms.dlr_url    = get_oracle_octstr_col(20);
+            msg->sms.pid        = get_oracle_long_col(21);
+            msg->sms.alt_dcs    = get_oracle_long_col(22);
+            msg->sms.rpi        = get_oracle_long_col(23);
+            msg->sms.charset    = get_oracle_octstr_col(24);
             msg->sms.binfo      = get_oracle_octstr_col(26);
-            if (gwlist_get(row,24) == NULL) {
-                msg->sms.boxc_id= octstr_duplicate(sqlbox_id);
+            msg->sms.binfo      = get_oracle_octstr_col(27);
+            if (gwlist_get(row, 25) == NULL) {
+                msg->sms.boxc_id = octstr_duplicate(sqlbox_id);
             }
             else {
-                msg->sms.boxc_id= get_oracle_octstr_col(24);
+                msg->sms.boxc_id = get_oracle_octstr_col(25);
             }
             /* delete current row */
             delet = octstr_format(SQLBOX_ORACLE_DELETE_QUERY, 
sqlbox_insert_table);
@@ -206,24 +207,25 @@
     gwlist_append(binds, st_str(msg->sms.msgdata));    /*  :5 */
     gwlist_append(binds, st_num(msg->sms.time));       /*  :6 */
     gwlist_append(binds, st_str(msg->sms.smsc_id));    /*  :7 */
-    gwlist_append(binds, st_str(msg->sms.service));    /*  :8 */
-    gwlist_append(binds, st_str(msg->sms.account));    /*  :9 */
-    gwlist_append(binds, st_num(msg->sms.sms_type));   /* :10 */
-    gwlist_append(binds, st_num(msg->sms.mclass));     /* :11 */
-    gwlist_append(binds, st_num(msg->sms.mwi));                /* :12 */
-    gwlist_append(binds, st_num(msg->sms.coding));     /* :13 */
-    gwlist_append(binds, st_num(msg->sms.compress));   /* :14 */
-    gwlist_append(binds, st_num(msg->sms.validity));   /* :15 */
-    gwlist_append(binds, st_num(msg->sms.deferred));   /* :16 */
-    gwlist_append(binds, st_num(msg->sms.dlr_mask));   /* :17 */
-    gwlist_append(binds, st_str(msg->sms.dlr_url));    /* :18 */
-    gwlist_append(binds, st_num(msg->sms.pid));                /* :19 */
-    gwlist_append(binds, st_num(msg->sms.alt_dcs));    /* :20 */
-    gwlist_append(binds, st_num(msg->sms.rpi));                /* :21 */
-    gwlist_append(binds, st_str(msg->sms.charset));    /* :22 */
-    gwlist_append(binds, st_str(msg->sms.boxc_id));    /* :23 */
-    gwlist_append(binds, st_str(msg->sms.binfo));      /* :24 */
-    gwlist_append(binds, st_str(msg->sms.meta_data));  /* :25 */
+    gwlist_append(binds, st_str(msg->sms.foreign_id)); /*  :8 */
+    gwlist_append(binds, st_str(msg->sms.service));    /*  :9 */
+    gwlist_append(binds, st_str(msg->sms.account));    /*  :10 */
+    gwlist_append(binds, st_num(msg->sms.sms_type));   /* :11 */
+    gwlist_append(binds, st_num(msg->sms.mclass));     /* :12 */
+    gwlist_append(binds, st_num(msg->sms.mwi));                /* :13 */
+    gwlist_append(binds, st_num(msg->sms.coding));     /* :14 */
+    gwlist_append(binds, st_num(msg->sms.compress));   /* :15 */
+    gwlist_append(binds, st_num(msg->sms.validity));   /* :16 */
+    gwlist_append(binds, st_num(msg->sms.deferred));   /* :17 */
+    gwlist_append(binds, st_num(msg->sms.dlr_mask));   /* :18 */
+    gwlist_append(binds, st_str(msg->sms.dlr_url));    /* :19 */
+    gwlist_append(binds, st_num(msg->sms.pid));                /* :20 */
+    gwlist_append(binds, st_num(msg->sms.alt_dcs));    /* :21 */
+    gwlist_append(binds, st_num(msg->sms.rpi));                /* :22 */
+    gwlist_append(binds, st_str(msg->sms.charset));    /* :23 */
+    gwlist_append(binds, st_str(msg->sms.boxc_id));    /* :24 */
+    gwlist_append(binds, st_str(msg->sms.binfo));      /* :25 */
+    gwlist_append(binds, st_str(msg->sms.meta_data));  /* :26 */
 #if defined(SQLBOX_TRACE)
      debug("SQLBOX", 0, "sql: %s", octstr_get_cstr(sql));
 #endif
Index: gw/sqlbox_oracle.h
===================================================================
--- gw/sqlbox_oracle.h  (revision 49)
+++ gw/sqlbox_oracle.h  (working copy)
@@ -5,7 +5,8 @@
 #define SQLBOX_ORACLE_CREATE_LOG_TABLE "CREATE TABLE \"%S\" (\"sql_id\" 
INTEGER NOT NULL PRIMARY KEY, \
 \"momt\" VARCHAR2(3) NULL, \"sender\" VARCHAR2(20) NULL, \"receiver\" 
VARCHAR2(20) NULL, \
 \"udhdata\" VARCHAR2(4000) NULL, \"msgdata\" VARCHAR2(4000) NULL, \"time\" 
INTEGER NULL, \
-\"smsc_id\" VARCHAR2(255) NULL, \"service\" VARCHAR2(255) NULL, \"account\" 
VARCHAR2(255) NULL, \
+\"smsc_id\" VARCHAR2(255) NULL, \"foreign_id\" VARCHAR2(255) NULL, \
+\"service\" VARCHAR2(255) NULL, \"account\" VARCHAR2(255) NULL, \
 \"id\" INTEGER NULL, \"sms_type\" INTEGER NULL, \"mclass\" INTEGER NULL, 
\"mwi\" INTEGER NULL, \
 \"coding\" INTEGER NULL, \"compress\" INTEGER NULL, \"validity\" INTEGER NULL, 
\"deferred\" INTEGER NULL, \
 \"dlr_mask\" INTEGER NULL, \"dlr_url\" VARCHAR2(255) NULL, \"pid\" INTEGER 
NULL, \"alt_dcs\" INTEGER NULL, \
@@ -16,7 +17,8 @@
 #define SQLBOX_ORACLE_CREATE_INSERT_TABLE "CREATE TABLE \"%S\" (\"sql_id\" 
INTEGER NOT NULL PRIMARY KEY, \
 \"momt\" VARCHAR2(3) NULL, \"sender\" VARCHAR2(20) NULL, \"receiver\" 
VARCHAR2(20) NULL, \
 \"udhdata\" VARCHAR2(4000) NULL, \"msgdata\" VARCHAR2(4000) NULL, \"time\" 
INTEGER NULL, \
-\"smsc_id\" VARCHAR2(255) NULL, \"service\" VARCHAR2(255) NULL, \"account\" 
VARCHAR2(255) NULL, \
+\"smsc_id\" VARCHAR2(255) NULL, \"foreign_id\" VARCHAR2(255) NULL, \
+\"service\" VARCHAR2(255) NULL, \"account\" VARCHAR2(255) NULL, \
 \"id\" INTEGER NULL, \"sms_type\" INTEGER NULL, \"mclass\" INTEGER NULL, 
\"mwi\" INTEGER NULL, \
 \"coding\" INTEGER NULL, \"compress\" INTEGER NULL, \"validity\" INTEGER NULL, 
\"deferred\" INTEGER NULL, \
 \"dlr_mask\" INTEGER NULL, \"dlr_url\" VARCHAR2(255) NULL, \"pid\" INTEGER 
NULL, \"alt_dcs\" INTEGER NULL, \
@@ -35,14 +37,14 @@
 FOR EACH ROW BEGIN SELECT \"%S_seq\".nextval INTO :new.\"sql_id\" FROM DUAL; 
END;"
 
 #define SQLBOX_ORACLE_SELECT_QUERY "SELECT \"sql_id\", \"momt\", \"sender\", 
\"receiver\", \"udhdata\", \"msgdata\", \
-\"time\", \"smsc_id\", \"service\", \"account\", \"id\", \"sms_type\", 
\"mclass\", \"mwi\", \"coding\", \"compress\", \
+\"time\", \"smsc_id\", \"foreign_id\", \"service\", \"account\", \"id\", 
\"sms_type\", \"mclass\", \"mwi\", \"coding\", \"compress\", \
 \"validity\", \"deferred\", \"dlr_mask\", \"dlr_url\", \"pid\", \"alt_dcs\", 
\"rpi\", \"charset\", \"boxc_id\", \
 \"binfo\", \"meta_data\" FROM \"%S\" WHERE ROWNUM = 1"
 
 #define SQLBOX_ORACLE_INSERT_QUERY "INSERT INTO \"%S\" (\"momt\", \"sender\", 
\"receiver\", \"udhdata\", \"msgdata\", \
-\"time\", \"smsc_id\", \"service\", \"account\", \"sms_type\", \"mclass\", 
\"mwi\", \"coding\", \"compress\", \"validity\", \
+\"time\", \"smsc_id\", \"foreign_id\", \"service\", \"account\", \"sms_type\", 
\"mclass\", \"mwi\", \"coding\", \"compress\", \"validity\", \
 \"deferred\", \"dlr_mask\", \"dlr_url\", \"pid\", \"alt_dcs\", \"rpi\", 
\"charset\", \"boxc_id\", \"binfo\", \"meta_data\" \
-) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, 
:16, :17, :18, :19, :20, :21, :22, :23, :24, :25)"
+) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, 
:16, :17, :18, :19, :20, :21, :22, :23, :24, :25, :26)"
 
 #define SQLBOX_ORACLE_DELETE_QUERY "DELETE FROM \"%S\" WHERE \"sql_id\" = :1"
 
Index: gw/sqlbox_pgsql.c
===================================================================
--- gw/sqlbox_pgsql.c   (revision 48)
+++ gw/sqlbox_pgsql.c   (working copy)
@@ -146,7 +146,7 @@
 
     sql = octstr_format(SQLBOX_PGSQL_INSERT_QUERY, sqlbox_logtable, 
st_str(momt), st_str(msg->sms.sender),
         st_str(msg->sms.receiver), st_str(msg->sms.udhdata), 
st_str(msg->sms.msgdata), st_num(msg->sms.time),
-        st_str(msg->sms.smsc_id), st_str(msg->sms.service), 
st_str(msg->sms.account), st_num(msg->sms.sms_type),
+        st_str(msg->sms.smsc_id), st_str(msg->sms.foreign_id), 
st_str(msg->sms.service), st_str(msg->sms.account), st_num(msg->sms.sms_type),
         st_num(msg->sms.mclass), st_num(msg->sms.mwi), 
st_num(msg->sms.coding), st_num(msg->sms.compress),
         st_num(msg->sms.validity), st_num(msg->sms.deferred), 
st_num(msg->sms.dlr_mask), st_str(msg->sms.dlr_url),
         st_num(msg->sms.pid), st_num(msg->sms.alt_dcs), st_num(msg->sms.rpi), 
st_str(msg->sms.charset),
@@ -191,29 +191,30 @@
             msg->sms.msgdata    = octstr_null_create(5);
             msg->sms.time       = atol_null(6);
             msg->sms.smsc_id    = octstr_null_create(7);
-            msg->sms.service    = octstr_null_create(8);
-            msg->sms.account    = octstr_null_create(9);
-            /* msg->sms.id      = atol_null(row[10]); */
-            msg->sms.sms_type   = atol_null(11);
-            msg->sms.mclass     = atol_null(12);
-            msg->sms.mwi        = atol_null(13);
-            msg->sms.coding     = atol_null(14);
-            msg->sms.compress   = atol_null(15);
-            msg->sms.validity   = atol_null(16);
-            msg->sms.deferred   = atol_null(17);
-            msg->sms.dlr_mask   = atol_null(18);
-            msg->sms.dlr_url    = octstr_null_create(19);
-            msg->sms.pid        = atol_null(20);
-            msg->sms.alt_dcs    = atol_null(21);
-            msg->sms.rpi        = atol_null(22);
-            msg->sms.charset    = octstr_null_create(23);
-            msg->sms.binfo      = octstr_null_create(25);
-            msg->sms.meta_data  = octstr_null_create(26);
-            if ((PQgetvalue(res, 0, 24)) == NULL) {
-                msg->sms.boxc_id= octstr_duplicate(sqlbox_id);
+            msg->sms.foreign_id = octstr_null_create(8);
+            msg->sms.service    = octstr_null_create(9);
+            msg->sms.account    = octstr_null_create(10);
+            /* msg->sms.id      = atol_null(row[11]); */
+            msg->sms.sms_type   = atol_null(12);
+            msg->sms.mclass     = atol_null(13);
+            msg->sms.mwi        = atol_null(14);
+            msg->sms.coding     = atol_null(15);
+            msg->sms.compress   = atol_null(16);
+            msg->sms.validity   = atol_null(17);
+            msg->sms.deferred   = atol_null(18);
+            msg->sms.dlr_mask   = atol_null(19);
+            msg->sms.dlr_url    = octstr_null_create(20);
+            msg->sms.pid        = atol_null(21);
+            msg->sms.alt_dcs    = atol_null(22);
+            msg->sms.rpi        = atol_null(23);
+            msg->sms.charset    = octstr_null_create(24);
+            msg->sms.binfo      = octstr_null_create(26);
+            msg->sms.meta_data  = octstr_null_create(27);
+            if ((PQgetvalue(res, 0, 25)) == NULL) {
+                msg->sms.boxc_id = octstr_duplicate(sqlbox_id);
             }
             else {
-                msg->sms.boxc_id= octstr_null_create(24);
+                msg->sms.boxc_id = octstr_null_create(25);
             }
             /* delete current row */
             delet = octstr_format(SQLBOX_PGSQL_DELETE_QUERY, 
sqlbox_insert_table, id);
Index: gw/sqlbox_pgsql.h
===================================================================
--- gw/sqlbox_pgsql.h   (revision 48)
+++ gw/sqlbox_pgsql.h   (working copy)
@@ -5,7 +5,7 @@
 #define SQLBOX_PGSQL_CREATE_LOG_TABLE "CREATE TABLE %S (sql_id SERIAL PRIMARY 
KEY, \
 momt VARCHAR(3) CHECK(momt IN ('MO', 'MT', 'DLR', NULL)) DEFAULT NULL, \
 sender VARCHAR(20) NULL, receiver VARCHAR(20) NULL, udhdata VARCHAR(255) NULL, 
\
-msgdata TEXT NULL, time BIGINT NULL, smsc_id VARCHAR(255) NULL, \
+msgdata TEXT NULL, time BIGINT NULL, smsc_id VARCHAR(255) NULL, foreign_id 
VARCHAR(255) NULL, \
 service VARCHAR(255) NULL, account VARCHAR(255) NULL, id BIGINT NULL, \
 sms_type BIGINT NULL, mclass BIGINT NULL, mwi BIGINT NULL, coding BIGINT NULL, 
\
 compress BIGINT NULL, validity BIGINT NULL, deferred BIGINT NULL, \
@@ -16,7 +16,7 @@
 #define SQLBOX_PGSQL_CREATE_INSERT_TABLE "CREATE TABLE %S (sql_id SERIAL 
PRIMARY KEY, \
 momt VARCHAR(3) CHECK(momt IN ('MO', 'MT', NULL)) DEFAULT NULL, \
 sender VARCHAR(20) NULL, receiver VARCHAR(20) NULL, udhdata VARCHAR(255) NULL, 
\
-msgdata TEXT NULL, time BIGINT NULL, smsc_id VARCHAR(255) NULL, \
+msgdata TEXT NULL, time BIGINT NULL, smsc_id VARCHAR(255) NULL, foreign_id 
VARCHAR(255) NULL \
 service VARCHAR(255) NULL, account VARCHAR(255) NULL, id BIGINT NULL, \
 sms_type BIGINT NULL, mclass BIGINT NULL, mwi BIGINT NULL, coding BIGINT NULL, 
\
 compress BIGINT NULL, validity BIGINT NULL, deferred BIGINT NULL, \
@@ -25,13 +25,13 @@
 boxc_id VARCHAR(255) NULL, binfo VARCHAR(255) NULL, meta_data TEXT NULL)"
 
 #define SQLBOX_PGSQL_SELECT_QUERY "SELECT sql_id, momt, sender, receiver, 
udhdata, msgdata, \
-time, smsc_id, service, account, id, sms_type, mclass, mwi, coding, compress, 
validity, deferred, \
+time, smsc_id, foreign_id, service, account, id, sms_type, mclass, mwi, 
coding, compress, validity, deferred, \
 dlr_mask, dlr_url, pid, alt_dcs, rpi, charset, boxc_id, binfo, meta_data FROM 
%S LIMIT 1 OFFSET 0"
 
 #define SQLBOX_PGSQL_INSERT_QUERY "INSERT INTO %S (momt, sender, receiver, 
udhdata, msgdata, \
-time, smsc_id, service, account, sms_type, mclass, mwi, coding, compress, 
validity, deferred, \
+time, smsc_id, foreign_id, service, account, sms_type, mclass, mwi, coding, 
compress, validity, deferred, \
 dlr_mask, dlr_url, pid, alt_dcs, rpi, charset, boxc_id, binfo, meta_data) 
VALUES (%S, %S, %S, \
-%S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, 
%S, %S, %S)"
+%S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, 
%S, %S, %S, %S)"
 
 #define SQLBOX_PGSQL_DELETE_QUERY "DELETE FROM %S WHERE sql_id = %S"
 
Index: gw/sqlbox_sdb.c
===================================================================
--- gw/sqlbox_sdb.c     (revision 48)
+++ gw/sqlbox_sdb.c     (working copy)
@@ -156,29 +156,30 @@
             msg->sms.msgdata    = get_sdb_octstr_col(5);
             msg->sms.time       = get_sdb_long_col(6);
             msg->sms.smsc_id    = get_sdb_octstr_col(7);
-            msg->sms.service    = get_sdb_octstr_col(8);
-            msg->sms.account    = get_sdb_octstr_col(9);
-            /* msg->sms.id      = get_sdb_long_col(10); */
-            msg->sms.sms_type   = get_sdb_long_col(11);
-            msg->sms.mclass     = get_sdb_long_col(12);
-            msg->sms.mwi        = get_sdb_long_col(13);
-            msg->sms.coding     = get_sdb_long_col(14);
-            msg->sms.compress   = get_sdb_long_col(15);
-            msg->sms.validity   = get_sdb_long_col(16);
-            msg->sms.deferred   = get_sdb_long_col(17);
-            msg->sms.dlr_mask   = get_sdb_long_col(18);
-            msg->sms.dlr_url    = get_sdb_octstr_col(19);
-            msg->sms.pid        = get_sdb_long_col(20);
-            msg->sms.alt_dcs    = get_sdb_long_col(21);
-            msg->sms.rpi        = get_sdb_long_col(22);
-            msg->sms.charset    = get_sdb_octstr_col(23);
-            msg->sms.binfo      = get_sdb_octstr_col(25);
-            msg->sms.meta_data  = get_sdb_octstr_col(26);
-            if (gwlist_get(row,24) == NULL) {
-                msg->sms.boxc_id= octstr_duplicate(sqlbox_id);
+            msg->sms.foreign_id = get_sdb_octstr_col(8);
+            msg->sms.service    = get_sdb_octstr_col(9);
+            msg->sms.account    = get_sdb_octstr_col(10);
+            /* msg->sms.id      = get_sdb_long_col(11); */
+            msg->sms.sms_type   = get_sdb_long_col(12);
+            msg->sms.mclass     = get_sdb_long_col(13);
+            msg->sms.mwi        = get_sdb_long_col(14);
+            msg->sms.coding     = get_sdb_long_col(15);
+            msg->sms.compress   = get_sdb_long_col(16);
+            msg->sms.validity   = get_sdb_long_col(17);
+            msg->sms.deferred   = get_sdb_long_col(18);
+            msg->sms.dlr_mask   = get_sdb_long_col(19);
+            msg->sms.dlr_url    = get_sdb_octstr_col(20);
+            msg->sms.pid        = get_sdb_long_col(21);
+            msg->sms.alt_dcs    = get_sdb_long_col(22);
+            msg->sms.rpi        = get_sdb_long_col(23);
+            msg->sms.charset    = get_sdb_octstr_col(24);
+            msg->sms.binfo      = get_sdb_octstr_col(26);
+            msg->sms.meta_data  = get_sdb_octstr_col(27);
+            if (gwlist_get(row, 25) == NULL) {
+                msg->sms.boxc_id = octstr_duplicate(sqlbox_id);
             }
             else {
-                msg->sms.boxc_id= get_sdb_octstr_col(24);
+                msg->sms.boxc_id = get_sdb_octstr_col(25);
             }
             /* delete current row */
             delet = octstr_format(queries->delete_query, sqlbox_insert_table, 
id);
@@ -236,7 +237,7 @@
 
     sql = octstr_format(queries->insert_query, sqlbox_logtable, st_str(momt), 
st_str(msg->sms.sender),
         st_str(msg->sms.receiver), st_str(msg->sms.udhdata), 
st_str(msg->sms.msgdata), st_num(msg->sms.time),
-        st_str(msg->sms.smsc_id), st_str(msg->sms.service), 
st_str(msg->sms.account), st_num(msg->sms.sms_type),
+        st_str(msg->sms.smsc_id), st_str(msg->sms.foreign_id), 
st_str(msg->sms.service), st_str(msg->sms.account), st_num(msg->sms.sms_type),
         st_num(msg->sms.mclass), st_num(msg->sms.mwi), 
st_num(msg->sms.coding), st_num(msg->sms.compress),
         st_num(msg->sms.validity), st_num(msg->sms.deferred), 
st_num(msg->sms.dlr_mask), st_str(msg->sms.dlr_url),
         st_num(msg->sms.pid), st_num(msg->sms.alt_dcs), st_num(msg->sms.rpi), 
st_str(msg->sms.charset),
Index: gw/sqlbox_sdb.h
===================================================================
--- gw/sqlbox_sdb.h     (revision 48)
+++ gw/sqlbox_sdb.h     (working copy)
@@ -3,16 +3,16 @@
 #ifdef HAVE_SDB
 
 #define SQLBOX_OTHER_SELECT_QUERY "SELECT sql_id, momt, sender, receiver, 
udhdata, \
-msgdata, time, smsc_id, service, account, id, sms_type, mclass, mwi, coding, \
+msgdata, time, smsc_id, foreign_id, service, account, id, sms_type, mclass, 
mwi, coding, \
 compress, validity, deferred, dlr_mask, dlr_url, pid, alt_dcs, rpi, \
 charset, boxc_id, binfo, meta_data FROM %S"
 
 #define SQLBOX_OTHER_INSERT_QUERY "INSERT INTO %S (sql_id, momt, sender, \
-receiver, udhdata, msgdata, time, smsc_id, service, account, sms_type, \
+receiver, udhdata, msgdata, time, smsc_id, foreign_id, service, account, 
sms_type, \
 mclass, mwi, coding, compress, validity, deferred, dlr_mask, dlr_url, \
 pid, alt_dcs, rpi, charset, boxc_id, binfo ) VALUES ( \
 NULL, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, \
-%S, %S, %S, %S, %S, %S, %S, %S, %S)"
+%S, %S, %S, %S, %S, %S, %S, %S, %S, %S)"
 
 #define SQLBOX_OTHER_DELETE_QUERY "DELETE FROM %S WHERE sql_id = %S"
 
Index: gw/sqlbox_sqlite.c
===================================================================
--- gw/sqlbox_sqlite.c  (revision 48)
+++ gw/sqlbox_sqlite.c  (working copy)
@@ -137,28 +137,29 @@
             msg->sms.msgdata    = octstr_null_create(row[5]);
             msg->sms.time       = atol_null(row[6]);
             msg->sms.smsc_id    = octstr_null_create(row[7]);
-            msg->sms.service    = octstr_null_create(row[8]);
-            msg->sms.account    = octstr_null_create(row[9]);
-            /* msg->sms.id      = atol_null(row[10]); */
-            msg->sms.sms_type   = atol_null(row[11]);
-            msg->sms.mclass     = atol_null(row[12]);
-            msg->sms.mwi        = atol_null(row[13]);
-            msg->sms.coding     = atol_null(row[14]);
-            msg->sms.compress   = atol_null(row[15]);
-            msg->sms.validity   = atol_null(row[16]);
-            msg->sms.deferred   = atol_null(row[17]);
-            msg->sms.dlr_mask   = atol_null(row[18]);
-            msg->sms.dlr_url    = octstr_null_create(row[19]);
-            msg->sms.pid        = atol_null(row[20]);
-            msg->sms.alt_dcs    = atol_null(row[21]);
-            msg->sms.rpi        = atol_null(row[22]);
-            msg->sms.charset    = octstr_null_create(row[23]);
-            msg->sms.binfo      = octstr_null_create(row[25]);
-            msg->sms.meta_data  = octstr_null_create(row[26]);
-            if (row[24] == NULL) {
-                msg->sms.boxc_id= octstr_duplicate(sqlbox_id);
+            msg->sms.foreign_id = octstr_null_create(row[8]);
+            msg->sms.service    = octstr_null_create(row[9]);
+            msg->sms.account    = octstr_null_create(row[10]);
+            /* msg->sms.id      = atol_null(row[11]); */
+            msg->sms.sms_type   = atol_null(row[12]);
+            msg->sms.mclass     = atol_null(row[13]);
+            msg->sms.mwi        = atol_null(row[14]);
+            msg->sms.coding     = atol_null(row[15]);
+            msg->sms.compress   = atol_null(row[16]);
+            msg->sms.validity   = atol_null(row[17]);
+            msg->sms.deferred   = atol_null(row[18]);
+            msg->sms.dlr_mask   = atol_null(row[19]);
+            msg->sms.dlr_url    = octstr_null_create(row[20]);
+            msg->sms.pid        = atol_null(row[21]);
+            msg->sms.alt_dcs    = atol_null(row[22]);
+            msg->sms.rpi        = atol_null(row[23]);
+            msg->sms.charset    = octstr_null_create(row[24]);
+            msg->sms.binfo      = octstr_null_create(row[26]);
+            msg->sms.meta_data  = octstr_null_create(row[27]);
+            if (row[25] == NULL) {
+                msg->sms.boxc_id = octstr_duplicate(sqlbox_id);
             } else {
-                msg->sms.boxc_id= octstr_null_create(row[24]);
+                msg->sms.boxc_id = octstr_null_create(row[25]);
             }
         }
     } while (state==SQLITE_ROW);
@@ -218,7 +219,7 @@
 
     sql = octstr_format(SQLBOX_SQLITE_INSERT_QUERY, sqlbox_logtable, 
st_str(momt), st_str(msg->sms.sender),
         st_str(msg->sms.receiver), st_str(msg->sms.udhdata), 
st_str(msg->sms.msgdata), st_num(msg->sms.time),
-        st_str(msg->sms.smsc_id), st_str(msg->sms.service), 
st_str(msg->sms.account), st_num(msg->sms.sms_type),
+        st_str(msg->sms.smsc_id), st_str(msg->sms.foreign_id), 
st_str(msg->sms.service), st_str(msg->sms.account), st_num(msg->sms.sms_type),
         st_num(msg->sms.mclass), st_num(msg->sms.mwi), 
st_num(msg->sms.coding), st_num(msg->sms.compress),
         st_num(msg->sms.validity), st_num(msg->sms.deferred), 
st_num(msg->sms.dlr_mask), st_str(msg->sms.dlr_url),
         st_num(msg->sms.pid), st_num(msg->sms.alt_dcs), st_num(msg->sms.rpi), 
st_str(msg->sms.charset),
Index: gw/sqlbox_sqlite.h
===================================================================
--- gw/sqlbox_sqlite.h  (revision 48)
+++ gw/sqlbox_sqlite.h  (working copy)
@@ -5,7 +5,8 @@
 #define SQLBOX_SQLITE_CREATE_LOG_TABLE "CREATE TABLE %S ( \
 sql_id INTEGER AUTOINCREMENT PRIMARY KEY, momt CHAR(3) NULL, sender 
VARCHAR(20) NULL, \
 receiver VARCHAR(20) NULL, udhdata BLOB NULL, msgdata TEXT NULL, time 
BIGINT(20) NULL, \
-smsc_id VARCHAR(255) NULL, service VARCHAR(255) NULL, account VARCHAR(255) 
NULL, \
+smsc_id VARCHAR(255) NULL, foreign_id VARCHAR(255) NULL, \
+service VARCHAR(255) NULL, account VARCHAR(255) NULL, \
 id BIGINT(20) NULL, sms_type BIGINT(20) NULL, mclass BIGINT(20) NULL, mwi 
BIGINT(20) NULL, \
 coding BIGINT(20) NULL, compress BIGINT(20) NULL, validity BIGINT(20) NULL, \
 deferred BIGINT(20) NULL, dlr_mask BIGINT(20) NULL, dlr_url VARCHAR(255) NULL, 
\
@@ -15,7 +16,8 @@
 #define SQLBOX_SQLITE_CREATE_INSERT_TABLE "CREATE TABLE %S ( \
 sql_id INTEGER AUTOINCREMENT PRIMARY KEY, momt CHAR(3) NULL, sender 
VARCHAR(20) NULL, \
 receiver VARCHAR(20) NULL, udhdata BLOB NULL, msgdata TEXT NULL, time 
BIGINT(20) NULL, \
-smsc_id VARCHAR(255) NULL, service VARCHAR(255) NULL, account VARCHAR(255) 
NULL, \
+smsc_id VARCHAR(255) NULL, foreign_id VARCHAR(255) NULL, \
+service VARCHAR(255) NULL, account VARCHAR(255) NULL, \
 id BIGINT(20) NULL, sms_type BIGINT(20) NULL, mclass BIGINT(20) NULL, mwi 
BIGINT(20) NULL, \
 coding BIGINT(20) NULL, compress BIGINT(20) NULL, validity BIGINT(20) NULL, \
 deferred BIGINT(20) NULL, dlr_mask BIGINT(20) NULL, dlr_url VARCHAR(255) NULL, 
\
@@ -23,13 +25,13 @@
 boxc_id VARCHAR(255) NULL, binfo VARCHAR(255) NULL, meta_data TEXT NULL)"
 
 #define SQLBOX_SQLITE_SELECT_QUERY "SELECT sql_id, momt, sender, receiver, 
udhdata, msgdata, \
-time, smsc_id, service, account, id, sms_type, mclass, mwi, coding, compress, 
validity, \
+time, smsc_id, foreign_id, service, account, id, sms_type, mclass, mwi, 
coding, compress, validity, \
 deferred, dlr_mask, dlr_url, pid, alt_dcs, rpi, charset, boxc_id, binfo, 
meta_data FROM %S LIMIT 0,1"
 
 #define SQLBOX_SQLITE_INSERT_QUERY "INSERT INTO %S (sql_id, momt, sender, 
receiver, udhdata, msgdata, \
-time, smsc_id, service, account, sms_type, mclass, mwi, coding, compress, 
validity, deferred, dlr_mask, \
+time, smsc_id, foreign_id, service, account, sms_type, mclass, mwi, coding, 
compress, validity, deferred, dlr_mask, \
 dlr_url, pid, alt_dcs, rpi, charset, boxc_id, binfo, meta_data) VALUES (NULL, 
%S, %S, %S, %S, %S, %S, \
-%S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S)"
+%S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, 
%S)"
 
 #define SQLBOX_SQLITE_DELETE_QUERY "DELETE FROM %S WHERE sql_id = %S"
 
Index: gw/sqlbox_sqlite3.c
===================================================================
--- gw/sqlbox_sqlite3.c (revision 48)
+++ gw/sqlbox_sqlite3.c (working copy)
@@ -128,25 +128,26 @@
             msg->sms.msgdata    = octstr_null_create((char 
*)sqlite3_column_text(res, 5));
             msg->sms.time       = atol_null((char 
*)sqlite3_column_text(res,6));
             msg->sms.smsc_id    = octstr_null_create((char 
*)sqlite3_column_text(res, 7));
-            msg->sms.service    = octstr_null_create((char 
*)sqlite3_column_text(res, 8));
-            msg->sms.account    = octstr_null_create((char 
*)sqlite3_column_text(res, 9));
-            /* msg->sms.id      = atol_null((char *)sqlite3_column_text(res, 
10)); */
-            msg->sms.sms_type   = atol_null((char *)sqlite3_column_text(res, 
11));
-            msg->sms.mclass     = atol_null((char *)sqlite3_column_text(res, 
12));
-            msg->sms.mwi        = atol_null((char *)sqlite3_column_text(res, 
13));
-            msg->sms.coding     = atol_null((char *)sqlite3_column_text(res, 
14));
-            msg->sms.compress   = atol_null((char *)sqlite3_column_text(res, 
15));
-            msg->sms.validity   = atol_null((char *)sqlite3_column_text(res, 
16));
-            msg->sms.deferred   = atol_null((char *)sqlite3_column_text(res, 
17));
-            msg->sms.dlr_mask   = atol_null((char *)sqlite3_column_text(res, 
18));
-            msg->sms.dlr_url    = octstr_null_create((char 
*)sqlite3_column_text(res, 19));
-            msg->sms.pid        = atol_null((char *)sqlite3_column_text(res, 
20));
-            msg->sms.alt_dcs    = atol_null((char *)sqlite3_column_text(res, 
21));
-            msg->sms.rpi        = atol_null((char *)sqlite3_column_text(res, 
22));
-            msg->sms.charset    = octstr_null_create((char 
*)sqlite3_column_text(res, 23));
-            msg->sms.binfo      = octstr_null_create((char 
*)sqlite3_column_text(res, 25));
-            msg->sms.meta_data  = octstr_null_create((char 
*)sqlite3_column_text(res, 26));
-            msg->sms.boxc_id    = (sqlite3_column_text(res, 24) == NULL) ? 
octstr_duplicate(sqlbox_id):octstr_null_create((char *)sqlite3_column_text(res, 
24));
+            msg->sms.foreign_id = octstr_null_create((char 
*)sqlite3_column_text(res, 8));
+            msg->sms.service    = octstr_null_create((char 
*)sqlite3_column_text(res, 9));
+            msg->sms.account    = octstr_null_create((char 
*)sqlite3_column_text(res, 10));
+            /* msg->sms.id      = atol_null((char *)sqlite3_column_text(res, 
11)); */
+            msg->sms.sms_type   = atol_null((char *)sqlite3_column_text(res, 
12));
+            msg->sms.mclass     = atol_null((char *)sqlite3_column_text(res, 
13));
+            msg->sms.mwi        = atol_null((char *)sqlite3_column_text(res, 
14));
+            msg->sms.coding     = atol_null((char *)sqlite3_column_text(res, 
15));
+            msg->sms.compress   = atol_null((char *)sqlite3_column_text(res, 
16));
+            msg->sms.validity   = atol_null((char *)sqlite3_column_text(res, 
17));
+            msg->sms.deferred   = atol_null((char *)sqlite3_column_text(res, 
18));
+            msg->sms.dlr_mask   = atol_null((char *)sqlite3_column_text(res, 
19));
+            msg->sms.dlr_url    = octstr_null_create((char 
*)sqlite3_column_text(res, 20));
+            msg->sms.pid        = atol_null((char *)sqlite3_column_text(res, 
21));
+            msg->sms.alt_dcs    = atol_null((char *)sqlite3_column_text(res, 
22));
+            msg->sms.rpi        = atol_null((char *)sqlite3_column_text(res, 
23));
+            msg->sms.charset    = octstr_null_create((char 
*)sqlite3_column_text(res, 24));
+            msg->sms.binfo      = octstr_null_create((char 
*)sqlite3_column_text(res, 26));
+            msg->sms.meta_data  = octstr_null_create((char 
*)sqlite3_column_text(res, 27));
+            msg->sms.boxc_id    = (sqlite3_column_text(res, 25) == NULL) ? 
octstr_duplicate(sqlbox_id):octstr_null_create((char *)sqlite3_column_text(res, 
25));
         }
     } while (state==SQLITE_ROW);
     sqlite3_finalize(res);
@@ -206,7 +207,7 @@
 
     sql = octstr_format(SQLBOX_SQLITE3_INSERT_QUERY, sqlbox_logtable, 
st_str(momt), st_str(msg->sms.sender),
         st_str(msg->sms.receiver), st_str(msg->sms.udhdata), 
st_str(msg->sms.msgdata), st_num(msg->sms.time),
-        st_str(msg->sms.smsc_id), st_str(msg->sms.service), 
st_str(msg->sms.account), st_num(msg->sms.sms_type),
+        st_str(msg->sms.smsc_id), st_str(msg->sms.foreign_id), 
st_str(msg->sms.service), st_str(msg->sms.account), st_num(msg->sms.sms_type),
         st_num(msg->sms.mclass), st_num(msg->sms.mwi), 
st_num(msg->sms.coding), st_num(msg->sms.compress),
         st_num(msg->sms.validity), st_num(msg->sms.deferred), 
st_num(msg->sms.dlr_mask), st_str(msg->sms.dlr_url),
         st_num(msg->sms.pid), st_num(msg->sms.alt_dcs), st_num(msg->sms.rpi), 
st_str(msg->sms.charset),
Index: gw/sqlbox_sqlite3.h
===================================================================
--- gw/sqlbox_sqlite3.h (revision 48)
+++ gw/sqlbox_sqlite3.h (working copy)
@@ -5,7 +5,8 @@
 #define SQLBOX_SQLITE3_CREATE_LOG_TABLE "CREATE TABLE IF NOT EXISTS %S ( \
 sql_id INTEGER PRIMARY KEY AUTOINCREMENT, momt CHAR(3) NULL, sender 
VARCHAR(20) NULL, \
 receiver VARCHAR(20) NULL, udhdata BLOB NULL, msgdata TEXT NULL, time 
BIGINT(20) NULL, \
-smsc_id VARCHAR(255) NULL, service VARCHAR(255) NULL, account VARCHAR(255) 
NULL, \
+smsc_id VARCHAR(255) NULL, foreign_id VARCHAR(255) NULL, \
+service VARCHAR(255) NULL, account VARCHAR(255) NULL, \
 id BIGINT(20) NULL, sms_type BIGINT(20) NULL, mclass BIGINT(20) NULL, mwi 
BIGINT(20) NULL, \
 coding BIGINT(20) NULL, compress BIGINT(20) NULL, validity BIGINT(20) NULL, \
 deferred BIGINT(20) NULL, dlr_mask BIGINT(20) NULL, dlr_url VARCHAR(255) NULL, 
\
@@ -15,7 +16,8 @@
 #define SQLBOX_SQLITE3_CREATE_INSERT_TABLE "CREATE TABLE IF NOT EXISTS %S ( \
 sql_id INTEGER PRIMARY KEY AUTOINCREMENT, momt CHAR(3) NULL, sender 
VARCHAR(20) NULL, \
 receiver VARCHAR(20) NULL, udhdata BLOB NULL, msgdata TEXT NULL, time 
BIGINT(20) NULL, \
-smsc_id VARCHAR(255) NULL, service VARCHAR(255) NULL, account VARCHAR(255) 
NULL, \
+smsc_id VARCHAR(255) NULL, foreign_id VARCHAR(255) NULL, \
+service VARCHAR(255) NULL, account VARCHAR(255) NULL, \
 id BIGINT(20) NULL, sms_type BIGINT(20) NULL, mclass BIGINT(20) NULL, mwi 
BIGINT(20) NULL, \
 coding BIGINT(20) NULL, compress BIGINT(20) NULL, validity BIGINT(20) NULL, \
 deferred BIGINT(20) NULL, dlr_mask BIGINT(20) NULL, dlr_url VARCHAR(255) NULL, 
\
@@ -23,11 +25,11 @@
 boxc_id VARCHAR(255) NULL, binfo VARCHAR(255) NULL, meta_data TEXT NULL)"
 
 #define SQLBOX_SQLITE3_SELECT_QUERY "SELECT sql_id, momt, sender, receiver, 
udhdata, msgdata, \
-time, smsc_id, service, account, id, sms_type, mclass, mwi, coding, compress, 
validity, deferred, \
+time, smsc_id, foreign_id, service, account, id, sms_type, mclass, mwi, 
coding, compress, validity, deferred, \
 dlr_mask, dlr_url, pid, alt_dcs, rpi, charset, boxc_id, binfo, meta_data FROM 
%S LIMIT 0,1"
 
 #define SQLBOX_SQLITE3_INSERT_QUERY "INSERT INTO %S (sql_id, momt, sender, 
receiver, udhdata, \
-msgdata, time, smsc_id, service, account, sms_type, mclass, mwi, coding, 
compress, validity, \
+msgdata, time, smsc_id, foreign_id, service, account, sms_type, mclass, mwi, 
coding, compress, validity, \
 deferred, dlr_mask, dlr_url, pid, alt_dcs, rpi, charset, boxc_id, binfo, 
meta_data) VALUES (NULL, \
 %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, %S, 
%S, %S, %S, %S, %S, %S)"
 

Reply via email to