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)
--- /gateway-cvs/utils/mtbatch.c 2009-04-03 14:51:29.000000000 +0200 +++ /gateway/utils/mtbatch.c 2009-04-07 12:49:08.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"); @@ -311,6 +319,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 (dlr_mask > 0 && dlr_url) { + 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 +353,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 +380,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 +410,9 @@ if (from == NULL) panic(0,"Sender address not specified. Use option -f to specify sender address."); + if (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 +440,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);
