Hi,
This is supported, but you have to edit the source code to enable support for the special parameters you need. I have attached an older patch that shows which files, and what needs to be added for each parameter. You can use this as a guide, but this patch does not work directly with the current source, it just shows where you need to put what. I am currently working on verifying an extended version of that patch, in case those are the optional parameters you need, for the current codebase, but for now I can't post it as it still not tested enough.

Kyriacos


Remon Magdy wrote:

Dear All,

I have been searching for a way to send an “optional parameters” which is a newly introduced feature in SMPP v3.4 via Kannel.

I am wondering if it is even supported by Kannel?

Any help will be appreciated.

Regards,

Remon



--
Kyriacos Sakkas
Development Team
Netsmart
Tel: + 357 22 452565
Fax: + 357 22 452566
Email: [EMAIL PROTECTED]
http://www.netsmart.com.cy

Taking Business to a New Level!

** Confidentiality Notice: The information contained in this email
message may be privileged, confidential and protected from disclosure.
If you are not the intended recipient, any dissemination, distribution,
or copying of this  email message is strictly prohibited.
If you think that you have received this email message in error, please
email the sender at [EMAIL PROTECTED] **

diff -Naupr gateway-1.4.0/ChangeLog gateway-1.4.0-egwn/ChangeLog
--- gateway-1.4.0/ChangeLog     2004-11-23 17:20:55.000000000 +0100
+++ gateway-1.4.0-egwn/ChangeLog        2004-12-10 13:18:45.000000000 +0100
@@ -1,2 +1,7 @@
 2004-11-23  Stipe Tolj  <[EMAIL PROTECTED]> 
     * Making stable release 1.4.0.
+2004-07-09 Ian Cass <[EMAIL PROTECTED]
+    * Add mBlox optional parameters for PSMS
+2004-07-09  Stipe Tolj  <[EMAIL PROTECTED]> 
+    * test/test_headers.c: fixing command line options and argument handling
+      which breaks "make check" target.
diff -Naupr gateway-1.4.0/gw/bb_alog.c gateway-1.4.0-egwn/gw/bb_alog.c
--- gateway-1.4.0/gw/bb_alog.c  2004-08-11 18:41:29.000000000 +0200
+++ gateway-1.4.0-egwn/gw/bb_alog.c     2004-12-10 13:23:27.000000000 +0100
@@ -80,6 +80,8 @@ static Octstr *custom_log_format = NULL;
  *   %i - smsc-id
  *   %n - service-name (for MO) or sendsms-user (for MT)
  *   %A - account
+ *   %O - mBlox billing tag
+ *   %o - mBlox operator tag
  *   %B - billing identifier/information
  *   %p - sender (from) 
  *   %P - receiver (to)
@@ -285,6 +287,19 @@ static Octstr *get_pattern(SMSCConn *con
            octstr_append_decimal(result, octstr_len(msg->sms.udhdata));
            break;
 
+       case 'O':  /* mBlox billing identifier */
+           if (octstr_len(msg->sms.mblox_billing)) {
+                octstr_append(result, msg->sms.mblox_billing);
+            }
+            break;
+
+       case 'o':  /* mBlox operator identifier */
+           if (octstr_len(msg->sms.mblox_operator)) {
+                octstr_append(result, msg->sms.mblox_operator);
+            }
+            break;
+
+
        case 'B':  /* billing identifier/information */
            if (octstr_len(msg->sms.binfo)) {
                 octstr_append(result, msg->sms.binfo);
@@ -388,5 +403,3 @@ void bb_alog_sms(SMSCConn *conn, Msg *ms
 
     octstr_destroy(text);
 }
-
-
diff -Naupr gateway-1.4.0/gw/msg-decl.h gateway-1.4.0-egwn/gw/msg-decl.h
--- gateway-1.4.0/gw/msg-decl.h 2004-09-03 14:42:32.000000000 +0200
+++ gateway-1.4.0-egwn/gw/msg-decl.h    2004-12-10 13:24:25.000000000 +0100
@@ -103,6 +103,8 @@ MSG(sms,
                OCTSTR(charset);
                OCTSTR(boxc_id);
                OCTSTR(binfo);
+               OCTSTR(mblox_billing);
+               OCTSTR(mblox_operator);
                INTEGER(msg_left);
                VOID(split_parts);
                INTEGER(priority);
diff -Naupr gateway-1.4.0/gw/smsbox.c gateway-1.4.0-egwn/gw/smsbox.c
--- gateway-1.4.0/gw/smsbox.c   2004-09-03 14:42:33.000000000 +0200
+++ gateway-1.4.0-egwn/gw/smsbox.c      2004-12-10 13:46:19.000000000 +0100
@@ -440,7 +440,9 @@ static void get_x_kannel_from_headers(Li
                                      int *validity, int *deferred,
                                      int *dlr_mask, Octstr **dlr_url, 
                                      Octstr **account, int *pid, int *alt_dcs, 
-                                     int *rpi, Octstr **binfo, int *priority)
+                                     int *rpi, Octstr **binfo, int *priority,
+                                     Octstr **mblox_billing,
+                                     Octstr **mblox_operator)
 {
     Octstr *name, *val;
     long l;
@@ -493,9 +495,17 @@ static void get_x_kannel_from_headers(Li
            *account = octstr_duplicate(val);
            octstr_strip_blanks(*account);
        }
+       else if (octstr_case_compare(name, 
octstr_imm("X-Kannel-mBlox-Billing")) == 0) {
+           *mblox_billing = octstr_duplicate(val);
+           octstr_strip_blanks(*mblox_billing);
+       }
+       else if (octstr_case_compare(name, 
octstr_imm("X-Kannel-mBlox-Operator")) == 0) {
+           *mblox_operator = octstr_duplicate(val);
+           octstr_strip_blanks(*mblox_operator);
+       }
        else if (octstr_case_compare(name, octstr_imm("X-Kannel-BInfo")) == 0) {
-            *binfo = octstr_duplicate(val);
-            octstr_strip_blanks(*binfo);
+           *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);
@@ -586,7 +596,9 @@ static void get_x_kannel_from_xml(int re
                                   int *dlr_mask, Octstr **dlr_url,
                                   Octstr **account, int *pid, int *alt_dcs,
                                   int *rpi, List **tolist, Octstr **charset,
-                                  Octstr **binfo, int *priority)
+                                  Octstr **binfo, int *priority,
+                                  Octstr **mblox_billing,
+                                  Octstr **mblox_operator)
 {                                    
 
     Octstr *text, *tmp, *tmp2;
@@ -612,6 +624,12 @@ static void get_x_kannel_from_xml(int re
        /* account */
        get_tag(tmp, octstr_imm("account"), account, 0, 0);
 
+       /* mblox_billing */
+       get_tag(tmp, octstr_imm("mblox_billing"), mblox_billing, 0, 0);
+
+       /* mblox_operator */
+       get_tag(tmp, octstr_imm("mblox_operator"), mblox_operator, 0, 0);
+
        /* binfo */
        get_tag(tmp, octstr_imm("binfo"), binfo, 0, 0);
 
@@ -800,7 +818,8 @@ static void fill_message(Msg *msg, URLTr
                         int validity, int deferred,
                         Octstr *dlr_url, int dlr_mask, int pid, int alt_dcs,
                         int rpi, Octstr *smsc, Octstr *account,
-                        Octstr *charset, Octstr *binfo, int priority)
+                        Octstr *charset, Octstr *binfo, int priority,
+                        Octstr *mblox_billing, Octstr *mblox_operator)
 {
     msg->sms.msgdata = replytext;
     msg->sms.time = time(NULL);
@@ -941,6 +960,26 @@ static void fill_message(Msg *msg, URLTr
             octstr_destroy(account);
         }
     }
+    
+    if (mblox_billing) {
+        if (urltrans_accept_x_kannel_headers(trans)) {
+            msg->sms.mblox_billing = mblox_billing;
+        } else {
+            warning(0, "Tried to change mBlox billing info to '%s', denied.",
+                    octstr_get_cstr(mblox_billing));
+            octstr_destroy(mblox_billing);
+        }
+    }
+
+    if (mblox_operator) {
+        if (urltrans_accept_x_kannel_headers(trans)) {
+            msg->sms.mblox_operator = mblox_operator;
+        } else {
+            warning(0, "Tried to change mBlox operator info to '%s', denied.",
+                    octstr_get_cstr(mblox_operator));
+            octstr_destroy(mblox_operator);
+        }
+    }
 
     if (binfo) {
         if (urltrans_accept_x_kannel_headers(trans)) {
@@ -1034,6 +1073,7 @@ static void url_result_thread(void *arg)
 
     Octstr *reply_body, *charset;
     Octstr *udh, *from, *to, *dlr_url, *account, *smsc, *binfo;
+    Octstr *mblox_billing, *mblox_operator;
     int dlr_mask, mclass, mwi, coding, compress, pid, alt_dcs, rpi;
     int validity, deferred, priority;
 
@@ -1052,6 +1092,7 @@ static void url_result_thread(void *arg)
 
        octets = 0;
         from = to = udh = smsc = dlr_url = account = binfo = charset = NULL;
+        mblox_billing = mblox_operator = NULL;
         mclass = mwi = coding = compress = pid = alt_dcs = rpi = dlr_mask 
             = validity = deferred = priority = SMS_PARAM_UNDEFINED;
 
@@ -1071,7 +1112,8 @@ static void url_result_thread(void *arg)
                                          &coding, &compress, &validity,
                                          &deferred, &dlr_mask, &dlr_url,
                                          &account, &pid, &alt_dcs, &rpi,
-                                         &binfo, &priority);
+                                         &binfo, &priority,
+                                         &mblox_billing, &mblox_operator);
             } else if (octstr_case_compare(type, text_plain) == 0) {
                 replytext = octstr_duplicate(reply_body);
                 octstr_destroy(reply_body);
@@ -1081,7 +1123,8 @@ static void url_result_thread(void *arg)
                                          &coding, &compress, &validity,
                                          &deferred, &dlr_mask, &dlr_url,
                                          &account, &pid, &alt_dcs, &rpi,
-                                         &binfo, &priority);
+                                         &binfo, &priority,
+                                         &mblox_billing, &mblox_operator);
             } else if (octstr_case_compare(type, text_xml) == 0) {
                 replytext = octstr_duplicate(reply_body);
                 octstr_destroy(reply_body);
@@ -1090,7 +1133,8 @@ static void url_result_thread(void *arg)
                         &from, &to, &udh, NULL, NULL, &smsc, &mclass, &mwi,
                         &coding, &compress, &validity, &deferred, &dlr_mask,
                         &dlr_url, &account, &pid, &alt_dcs, &rpi, NULL, 
&charset,
-                        &binfo, &priority);
+                        &binfo, &priority,
+                        &mblox_billing, &mblox_operator);
             } else if (octstr_case_compare(type, octet_stream) == 0) {
                 replytext = octstr_duplicate(reply_body);
                 octstr_destroy(reply_body);
@@ -1101,7 +1145,8 @@ static void url_result_thread(void *arg)
                                          &coding, &compress, &validity,
                                          &deferred, &dlr_mask, &dlr_url,
                                          &account, &pid, &alt_dcs, &rpi,
-                                         &binfo, &priority);
+                                         &binfo, &priority,
+                                         &mblox_billing, &mblox_operator);
             } else {
                 replytext = octstr_duplicate(reply_couldnotrepresent);
             }
@@ -1121,7 +1166,7 @@ static void url_result_thread(void *arg)
         fill_message(msg, trans, replytext, octets, from, to, udh, mclass,
             mwi, coding, compress, validity, deferred, dlr_url,
             dlr_mask, pid, alt_dcs, rpi, smsc, account, charset,
-            binfo, priority);
+            binfo, priority, mblox_billing, mblox_operator);
 
         if (final_url == NULL)
             final_url = octstr_imm("");
@@ -1374,6 +1419,20 @@ static int obey_request(Octstr **result,
                octstr_get_cstr(os));
            octstr_destroy(os);
        }
+       if (octstr_len(msg->sms.mblox_billing)) {
+           Octstr *os;
+           os = octstr_duplicate(msg->sms.mblox_billing);
+           http_header_add(request_headers, "X-Kannel-mBlox-Billing",
+               octstr_get_cstr(os));
+           octstr_destroy(os);
+       }
+       if (octstr_len(msg->sms.mblox_operator)) {
+           Octstr *os;
+           os = octstr_duplicate(msg->sms.mblox_operator);
+           http_header_add(request_headers, "X-Kannel-mBlox-Operator",
+               octstr_get_cstr(os));
+           octstr_destroy(os);
+       }
        if (octstr_len(msg->sms.binfo)) {
            Octstr *os;
            os = octstr_duplicate(msg->sms.binfo);
@@ -1883,7 +1942,8 @@ static Octstr *smsbox_req_handle(URLTran
                                 int validity, int deferred,
                                 int *status, int dlr_mask, Octstr *dlr_url, 
                                 Octstr *account, int pid, int alt_dcs, int rpi,
-                                List *receiver, Octstr *binfo, int priority)
+                                List *receiver, Octstr *binfo, int priority,
+                                Octstr *mblox_billing, Octstr *mblox_operator)
 {                                   
     Msg *msg = NULL;
     Octstr *newfrom, *returnerror, *receiv;
@@ -2068,6 +2128,12 @@ static Octstr *smsbox_req_handle(URLTran
     msg->sms.msgdata = text ? octstr_duplicate(text) : octstr_create("");
     msg->sms.udhdata = udh ? octstr_duplicate(udh) : octstr_create("");
     
+    if (octstr_len(mblox_billing))
+        msg->sms.mblox_billing = octstr_duplicate(mblox_billing);
+
+    if (octstr_len(mblox_operator))
+        msg->sms.mblox_operator = octstr_duplicate(mblox_operator);
+
     if (octstr_len(binfo))
         msg->sms.binfo = octstr_duplicate(binfo);
 
@@ -2385,10 +2451,12 @@ static Octstr *smsbox_req_sendsms(List *
     Octstr *tmp_string;
     Octstr *from, *to, *charset, *text, *udh, *smsc, *dlr_url, *account;
     Octstr *binfo;
+    Octstr *mblox_billing, *mblox_operator;
     int        dlr_mask, mclass, mwi, coding, compress, validity, deferred, 
pid;
     int alt_dcs, rpi, priority;
 
     from = to = udh = text = smsc = account = dlr_url = charset = binfo = NULL;
+    mblox_billing = mblox_operator = NULL;
     mclass = mwi = coding = compress = validity = deferred = dlr_mask = 
         pid = alt_dcs = rpi = priority = SMS_PARAM_UNDEFINED;
  
@@ -2406,6 +2474,8 @@ static Octstr *smsbox_req_sendsms(List *
     from = http_cgi_variable(args, "from");
     to = http_cgi_variable(args, "to");
     account = http_cgi_variable(args, "account");
+    mblox_billing = http_cgi_variable(args, "mblox_billing");
+    mblox_operator = http_cgi_variable(args, "mblox_operator");
     binfo = http_cgi_variable(args, "binfo");
     dlr_url = http_cgi_variable(args, "dlr-url");
     if(dlr_url == NULL) { /* deprecated dlrurl without "-" */
@@ -2480,7 +2550,8 @@ static Octstr *smsbox_req_sendsms(List *
     return smsbox_req_handle(t, client_ip, from, to, text, charset, udh,
                             smsc, mclass, mwi, coding, compress, validity, 
                             deferred, status, dlr_mask, dlr_url, account,
-                            pid, alt_dcs, rpi, NULL, binfo, priority);
+                            pid, alt_dcs, rpi, NULL, binfo, priority,
+                            mblox_billing, mblox_operator);
     
 }
 
@@ -2498,6 +2569,7 @@ static Octstr *smsbox_sendsms_post(List 
     Octstr *text_html, *text_plain, *text_wml, *text_xml, *octet_stream;
     Octstr *text;
     Octstr *from, *to, *udh, *smsc, *charset, *dlr_url, *account, *binfo;
+    Octstr *mblox_billing, *mblox_operator;
     int dlr_mask, mclass, mwi, coding, compress, validity, deferred;
     int pid, alt_dcs, rpi, priority;
  
@@ -2510,6 +2582,7 @@ static Octstr *smsbox_sendsms_post(List 
     user = pass = ret = type = NULL;
     tolist = NULL;
     from = to = udh = smsc = account = dlr_url = charset = binfo = NULL;
+    mblox_billing, mblox_operator = NULL;
     mclass = mwi = coding = compress = validity = deferred = dlr_mask = 
         pid = alt_dcs = rpi = priority = SMS_PARAM_UNDEFINED;
  
@@ -2525,7 +2598,8 @@ static Octstr *smsbox_sendsms_post(List 
                                  &coding, &compress, &validity, 
                                  &deferred, &dlr_mask, &dlr_url, 
                                  &account, &pid, &alt_dcs, &rpi,
-                                 &binfo, &priority);
+                                 &binfo, &priority,
+                                 &mblox_billing, &mblox_operator);
     } else if (octstr_case_compare(type, text_plain) == 0 ||
                octstr_case_compare(type, octet_stream) == 0) {
        get_x_kannel_from_headers(headers, &from, &to, &udh,
@@ -2533,13 +2607,15 @@ static Octstr *smsbox_sendsms_post(List 
                                  &coding, &compress, &validity, 
                                  &deferred, &dlr_mask, &dlr_url, 
                                  &account, &pid, &alt_dcs, &rpi,
-                                 &binfo, &priority);
+                                 &binfo, &priority,
+                                 &mblox_billing, &mblox_operator);
     } else if (octstr_case_compare(type, text_xml) == 0) {
        get_x_kannel_from_xml(mt_push, &type, &body, headers, 
                               &from, &to, &udh, &user, &pass, &smsc, &mclass, 
                              &mwi, &coding, &compress, &validity, &deferred,
                              &dlr_mask, &dlr_url, &account, &pid, &alt_dcs,
-                             &rpi, &tolist, &charset, &binfo, &priority);
+                             &rpi, &tolist, &charset, &binfo, &priority,
+                             &mblox_billing, &mblox_operator);
     } else {
        *status = HTTP_BAD_REQUEST;
        ret = octstr_create("Invalid content-type");
@@ -2590,7 +2666,7 @@ static Octstr *smsbox_sendsms_post(List 
                                    udh, smsc, mclass, mwi, coding, compress, 
                                    validity, deferred, status, dlr_mask, 
                                    dlr_url, account, pid, alt_dcs, rpi, tolist,
-                                   binfo, priority);
+                                   binfo, priority, mblox_billing, 
mblox_operator);
 
     }
 error2:
@@ -2602,6 +2678,8 @@ error2:
     octstr_destroy(smsc);
     octstr_destroy(dlr_url);
     octstr_destroy(account);
+    octstr_destroy(mblox_billing);
+    octstr_destroy(mblox_operator);
     octstr_destroy(binfo);
 error:
     octstr_destroy(type);
@@ -2626,6 +2704,7 @@ static Octstr *smsbox_xmlrpc_post(List *
 {
     Octstr *ret, *type, *user, *pass;
     Octstr *from, *to, *udh, *smsc, *charset, *dlr_url, *account, *binfo;
+    Octstr *mblox_billing, *mblox_operator;
     Octstr *output;
     Octstr *method_name;
     XMLRPCDocument *msg;
@@ -2634,6 +2713,7 @@ static Octstr *smsbox_xmlrpc_post(List *
        deferred, pid, alt_dcs, rpi;
 
     from = to = udh = smsc = account = dlr_url = charset = binfo = NULL;
+    mblox_billing = mblox_operator = NULL;
     mclass = mwi = coding = compress = validity = deferred = dlr_mask = 
         pid = alt_dcs = rpi = -1;
  
@@ -3521,4 +3601,3 @@ int charset_processing (Octstr *charset,
     
     return resultcode;
 }
-
diff -Naupr gateway-1.4.0/gw/smsc/smpp_pdu.def 
gateway-1.4.0-egwn/gw/smsc/smpp_pdu.def
--- gateway-1.4.0/gw/smsc/smpp_pdu.def  2004-03-27 18:55:43.000000000 +0100
+++ gateway-1.4.0-egwn/gw/smsc/smpp_pdu.def     2004-12-10 13:47:53.000000000 
+0100
@@ -253,6 +253,8 @@ PDU(submit_sm,
     TLV_INTEGER(its_reply_type, 1)
     TLV_OCTETS(its_session_info, 2, 2)
     TLV_OCTETS(ussd_service_op, 1, 1)
+    TLV_OCTETS(mblox_billing, 0, 5)
+    TLV_OCTETS(mblox_operator, 0, 5)
     OPTIONAL_END
 )
 
@@ -355,6 +357,8 @@ PDU(deliver_sm,
     TLV_OCTETS(network_error_code, 3, 3)
     TLV_INTEGER(message_state, 1)
     TLV_NULTERMINATED(receipted_message_id, 65)
+    TLV_OCTETS(mblox_billing, 0, 5)
+    TLV_OCTETS(mblox_operator, 0, 5)
     OPTIONAL_END
 )
 
@@ -522,4 +526,3 @@ PDU(alert_notification,
 #undef TLV_NULTERMINATED
 #undef TLV_OCTETS
 #undef OPTIONAL_END
-
diff -Naupr gateway-1.4.0/gw/smsc/smpp_pdu_opt.def 
gateway-1.4.0-egwn/gw/smsc/smpp_pdu_opt.def
--- gateway-1.4.0/gw/smsc/smpp_pdu_opt.def      2004-03-27 18:55:43.000000000 
+0100
+++ gateway-1.4.0-egwn/gw/smsc/smpp_pdu_opt.def 2004-12-10 13:48:33.000000000 
+0100
@@ -105,6 +105,7 @@
 #define        SMPP_alert_on_message_delivery          0x130C 
 #define        SMPP_its_reply_type                     0x1380 
 #define        SMPP_its_session_info                   0x1383 
+#define        SMPP_mblox_operator                     0x1402 
+#define        SMPP_mblox_billing                      0x1403 
 
 #endif
-
diff -Naupr gateway-1.4.0/gw/smsc/smsc_smpp.c 
gateway-1.4.0-egwn/gw/smsc/smsc_smpp.c
--- gateway-1.4.0/gw/smsc/smsc_smpp.c   2004-10-21 14:33:40.000000000 +0200
+++ gateway-1.4.0-egwn/gw/smsc/smsc_smpp.c      2004-12-10 13:50:34.000000000 
+0100
@@ -406,6 +406,18 @@ static Msg *pdu_to_msg(SMPP *smpp, SMPP_
     }
     msg->sms.receiver = pdu->u.deliver_sm.destination_addr;
     pdu->u.deliver_sm.destination_addr = NULL;
+    
+    /* Check for mBlox billing identifier */
+    if (smpp->version > 0x33 && octstr_len(pdu->u.deliver_sm.mblox_billing)) {
+        msg->sms.mblox_billing = pdu->u.deliver_sm.mblox_billing;
+        pdu->u.deliver_sm.mblox_billing = NULL;
+    }
+
+    /* Check for mBlox operator identifier */
+    if (smpp->version > 0x33 && octstr_len(pdu->u.deliver_sm.mblox_operator)) {
+        msg->sms.mblox_operator = pdu->u.deliver_sm.mblox_operator;
+        pdu->u.deliver_sm.mblox_operator = NULL;
+    }
 
     /* SMSCs use service_type for billing information */
     msg->sms.binfo = pdu->u.deliver_sm.service_type;
@@ -738,6 +750,16 @@ static SMPP_PDU *msg_to_pdu(SMPP *smpp, 
     /* set more messages to send */
     if (smpp->version > 0x33 && msg->sms.msg_left > 0)
         pdu->u.submit_sm.more_messages_to_send = 1;
+    
+    /* set mBlox billing identifier */
+    if (smpp->version > 0x33 && octstr_len(msg->sms.mblox_billing)) {
+        pdu->u.submit_sm.mblox_billing = 
octstr_duplicate(msg->sms.mblox_billing);
+    }
+
+    /* set mBlox operator identifier */
+    if (smpp->version > 0x33 && octstr_len(msg->sms.mblox_operator)) {
+        pdu->u.submit_sm.mblox_operator = 
octstr_duplicate(msg->sms.mblox_operator);
+    }
 
     return pdu;
 }
@@ -1939,4 +1961,3 @@ int smsc_smpp_create(SMSCConn *conn, Cfg
  
     return 0; 
 }
- 
diff -Naupr gateway-1.4.0/gw/urltrans.c gateway-1.4.0-egwn/gw/urltrans.c
--- gateway-1.4.0/gw/urltrans.c 2004-09-28 16:47:01.000000000 +0200
+++ gateway-1.4.0-egwn/gw/urltrans.c    2004-12-10 19:18:59.835686120 +0100
@@ -623,6 +623,24 @@ Octstr *urltrans_get_pattern(URLTranslat
                octstr_destroy(enc);
            }
            break;
+            
+       case 'M':  /* mBlox billing identifier */
+           if (octstr_len(request->sms.mblox_billing)) {
+            enc = octstr_duplicate(request->sms.mblox_billing);
+            octstr_url_encode(enc);
+            octstr_append(result, enc);
+            octstr_destroy(enc);
+        }
+        break;
+
+       case 'm':  /* mBlox operator identifier */
+           if (octstr_len(request->sms.mblox_operator)) {
+            enc = octstr_duplicate(request->sms.mblox_operator);
+            octstr_url_encode(enc);
+            octstr_append(result, enc);
+            octstr_destroy(enc);
+        }
+        break;
 
        case 'B':  /* billing identifier/information */
            if (octstr_len(request->sms.binfo)) {
@@ -633,7 +651,7 @@ Octstr *urltrans_get_pattern(URLTranslat
         }
         break;
        
-    case 'o':  /* account information (may be operator id for aggregators */
+       case 'o':  /* account information (may be operator id for aggregators */
            if (octstr_len(request->sms.account)) {
             enc = octstr_duplicate(request->sms.account);
             octstr_url_encode(enc);
@@ -1463,4 +1481,3 @@ static long count_occurences(Octstr *str
     }
     return count;
 }
-
diff -Naupr gateway-1.4.0/VERSION gateway-1.4.0-egwn/VERSION
--- gateway-1.4.0/VERSION       2004-11-23 17:20:55.000000000 +0100
+++ gateway-1.4.0-egwn/VERSION  2004-12-10 13:19:04.000000000 +0100
@@ -1,4 +1,4 @@
-1.4.0
+1.4.0-egwn
 This file contains the version number of the gateway.
 It is stored on the first line. Nothing else should
 be there. 

Reply via email to