Stipe,

I think it's nice if we could specify billing info using
X-Kannel-BInfo header from sms-service.

I'm not sure about smsc_http.c ... is that correct?

Diff output from latest cvs attached.

Regards,

P.Y. Adi Prasaja

Index: gw/smsbox.c
===================================================================
RCS file: /home/cvs/gateway/gw/smsbox.c,v
retrieving revision 1.236
diff -a -u -r1.236 smsbox.c
--- gw/smsbox.c 17 Oct 2003 14:18:41 -0000      1.236
+++ gw/smsbox.c 19 Oct 2003 01:59:15 -0000
@@ -424,6 +424,10 @@
            *account = octstr_duplicate(val);
            octstr_strip_blanks(*account);
        }
+       else if (octstr_case_compare(name, octstr_imm("X-Kannel-BInfo")) == 0) {
+            *binfo = octstr_duplicate(val);
+            octstr_strip_blanks(*binfo);
+       }
        else if (octstr_case_compare(name, octstr_imm("X-Kannel-Coding")) == 0) {
            sscanf(octstr_get_cstr(val),"%d", coding);
        }
Index: gw/smsc/smsc_http.c
===================================================================
RCS file: /home/cvs/gateway/gw/smsc/smsc_http.c,v
retrieving revision 1.28
diff -a -u -r1.28 smsc_http.c
--- gw/smsc/smsc_http.c 16 Oct 2003 16:00:44 -0000      1.28
+++ gw/smsc/smsc_http.c 19 Oct 2003 01:59:17 -0000
@@ -299,6 +299,8 @@
        octstr_format_append(url, "&mwi=%d", sms->sms.mwi);
     if (sms->sms.account) /* prepend account with local username */
        octstr_format_append(url, "&account=%E:%E", sms->sms.service, 
sms->sms.account);
+    if (sms->sms.binfo) /* prepend billing info */
+       octstr_format_append(url, "&binfo=%S", sms->sms.binfo);
     if (sms->sms.smsc_id) /* proxy the smsc-id to the next instance */
        octstr_format_append(url, "&smsc=%S", sms->sms.smsc_id);
     if (sms->sms.dlr_url) {
@@ -341,7 +343,7 @@
                               List *headers, Octstr *body, List *cgivars)
 {
     ConnData *conndata = conn->data;
-    Octstr *user, *pass, *from, *to, *text, *udh, *account, *tmp_string;
+    Octstr *user, *pass, *from, *to, *text, *udh, *account, *binfo, *tmp_string;
     Octstr *retmsg;
     int        mclass, mwi, coding, validity, deferred;
     List *reply_headers;
@@ -356,7 +358,7 @@
     text = http_cgi_variable(cgivars, "text");
     udh = http_cgi_variable(cgivars, "udh");
     account = http_cgi_variable(cgivars, "account");
-
+    binfo = http_cgi_variable(cgivars, "binfo");
     tmp_string = http_cgi_variable(cgivars, "flash");
     if(tmp_string) {
        sscanf(octstr_get_cstr(tmp_string),"%d", &mclass);
@@ -417,7 +419,8 @@
        msg->sms.coding = coding;
        msg->sms.validity = validity;
        msg->sms.deferred = deferred;
-    msg->sms.account = octstr_duplicate(account);
+       msg->sms.account = octstr_duplicate(account);
+       msg->sms.binfo = octstr_duplicate(binfo);
        ret = bb_smscconn_receive(conn, msg);
        if (ret == -1)
            retmsg = octstr_create("Not accepted");

Reply via email to