here is a revised version

Vincent.

Alexander Malysh a écrit :
Hi Vincent,

some comments to your patch:

+
+        if (dlr_mask > 0 && dlr_url) {
+            msg->sms.dlr_mask = dlr_mask;
+            msg->sms.dlr_url = octstr_duplicate(dlr_url);
+        }

don't check this for each message, check this once by start and please use dlr macros:
DLR_IS_ENABLED(dlr_mask)

             case 'f':
                 from = octstr_create(optarg);
                 break;
+
+            case 'D':
+                dlr_mask = atoi(optarg);

please kill extra line

+    if (dlr_mask && dlr_url == NULL)
+ panic(0,"dlr-url address not specified. Use option -D to specify dlr-url address.");
+

should be if ((DLR_IS_ENABLED(dlr_mask) && dlr_url == NULL) || (!DLR_IS_ENABLED(dlr_mask) && dlr_url != NULL)

Thanks,
Alex

Am 07.04.2009 um 12:53 schrieb Vincent CHAVANIS:


This patch add a DLR support for mtbatch.
Will try to provide the charset/udh patch soon

Vincent.


--
Telemaque - 06560 SOPHIA-ANTIPOLIS - (FR)
Service Technique/Reseau - NOC
Direction du Developpement xMS+
http://www.telemaque.fr/
[email protected]
Tel : +33 4 92 90 99 84 (fax 9142)
<mtbatchv4.txt>




--
Telemaque - 06560 SOPHIA-ANTIPOLIS - (FR)
Service Technique/Reseau - NOC
Direction du Developpement xMS+
http://www.telemaque.fr/
[email protected]
Tel : +33 4 92 90 99 84 (fax 9142)
--- /gateway-cvs/utils/mtbatch.c        2009-04-03 14:51:29.000000000 +0200
+++ /gateway/utils/mtbatch.c    2009-04-09 12:32:59.000000000 +0200
@@ -63,8 +63,10 @@
  * to bearerbox.
  *
  * Stipe Tolj <[email protected]>
+ * Vincent Chavanis <[email protected]>
  *
- * XXX add udh (etc.) capabilities. Currently we handle only 7-bit.
+ * XXX Add UDH capabilities.
+ * XXX Support more charsets than 7-bit.
  */
 
 #include <string.h>
@@ -90,6 +92,8 @@
 static Octstr *service = NULL;
 static Octstr *account = NULL;
 static Octstr *from = NULL;
+static int dlr_mask = 0;
+static Octstr *dlr_url = NULL;
 static Octstr *smsc_id = NULL;
 static long sms_max_length = MAX_SMS_OCTETS;
 static double delay = 0;
@@ -251,6 +255,10 @@
     info(0, "    defines the smsbox-id to be used for bearerbox connection 
(default: none)");
     info(0, "-f sender");
     info(0, "    which sender address should be used");
+    info(0, "-D dlr-mask");
+    info(0, "    defines the dlr-mask");
+    info(0, "-u dlr-url");
+    info(0, "    defines the dlr-url");
     info(0, "-n service");
     info(0, "    defines which service name should be logged (default: none)");
     info(0, "-a account");
@@ -293,9 +301,13 @@
 static unsigned long run_batch(void)
 {
     Octstr *no;
+    int use_dlr = 0;
     unsigned long linerr = 0;
     unsigned long lineno = 0;
 
+    if (DLR_IS_ENABLED(dlr_mask) && dlr_url)
+        use_dlr = 1;
+
     while ((no = gwlist_consume(lines)) != NULL) {
        if (octstr_check_range(no, 0, 256, gw_isdigit)) {
         Msg *msg;
@@ -311,6 +323,12 @@
         msg->sms.receiver = octstr_duplicate(no);
         msg->sms.account = account ? octstr_duplicate(account) : NULL;
         msg->sms.msgdata = content ? octstr_duplicate(content) : 
octstr_create("");
+
+        if (use_dlr == 1) {
+            msg->sms.dlr_mask = dlr_mask;
+            msg->sms.dlr_url = octstr_duplicate(dlr_url);        
+        }
+
         msg->sms.udhdata = octstr_create("");
         msg->sms.coding = DC_7BIT;
 
@@ -339,7 +357,7 @@
     bb_port = 13001;
     bb_ssl = 0;
         
-    while ((opt = getopt(argc, argv, "hv:b:p:si:n:a:f:d:r:")) != EOF) {
+    while ((opt = getopt(argc, argv, "hv:b:p:si:n:a:f:D:u:d:r:")) != EOF) {
         switch (opt) {
             case 'v':
                 log_set_output_level(atoi(optarg));
@@ -366,6 +384,13 @@
             case 'f':
                 from = octstr_create(optarg);
                 break;
+            case 'D':
+                dlr_mask = atoi(optarg);
+                break;
+            case 'u':
+                dlr_url = octstr_create(optarg);
+                break;
             case 'd':
                 delay = atof(optarg);
                 break;
@@ -389,6 +414,9 @@
     if (from == NULL)
         panic(0,"Sender address not specified. Use option -f to specify sender 
address.");
 
+    if ((DLR_IS_ENABLED(dlr_mask) && dlr_url == NULL) || 
(!DLR_IS_ENABLED(dlr_mask) && dlr_url != NULL)
+        panic(0,"dlr-url address not specified. Use option -D to specify 
dlr-url address.");
+
     rf = octstr_create(argv[argc-1]);
     cf = octstr_create(argv[argc-2]);
 
@@ -416,6 +444,7 @@
     octstr_destroy(content);
     octstr_destroy(service);
     octstr_destroy(account);
+    octstr_destroy(dlr_url);
     octstr_destroy(smsc_id);
     counter_destroy(counter);
     gwlist_destroy(lines, octstr_destroy_item); 

Reply via email to