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);