Re: [PATCH] utils/mtbatch.c DLR support patch [revised]
Vincent CHAVANIS <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
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)
mtbatch_r1.txt
(text/plain, 3.3 KB)
--- /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);