SMS REJECTED due to throttling

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

SMS REJECTED due to throttling

Giulio Giovannini
Hi all,

I have recently moved some UCP connections from kannel 1.4 to kannel 1.5.

I am pretty sure that when kannel 1.4 received a NACK 04 (throttling) it considered it as temporary error and retried. Version 1.5 seems to consider it a permanent error and discards the SMS.

Have a look at this log sequence from bearer-access.log:

2016-10-21 09:31:25 REJECTED Send SMS [SMSC:FO_HQS] [SVC:C00127_001] [ACT:433f083f-209f-4f62-979f-ae82b5742c90] [BINF:] [FID:8609681] [META:] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:0:-1:-1:11] [msg:159:xxx] [udh:0:]
2016-10-21 09:31:25 Receive DLR [SMSC:FO_HQS] [SVC:C00127_001] [ACT:] [BINF:] [FID:8609681] [META:?orig_msg?dlr_mask=11&] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:-1:-1:-1:16] [msg:24:NACK/04-Throttling error] [udh:0:]

Should I set something in the conf to tell kannel that that error is temporary?

Thanks,
Giulio Giovannini
Reply | Threaded
Open this post in threaded view
|

Re: SMS REJECTED due to throttling

Fajar
you'll need to reduce, by setting throughput. document doesn't say about temporary condition, it will discard it, but if you put delivery report url, it will call back with spesific status, in my setting, it is set as 16. my application will hit the message again, to queue in kannel...



From: Giulio Giovannini <[hidden email]>
To: [hidden email]
Sent: Friday, 21 October 2016, 23:22
Subject: SMS REJECTED due to throttling

Hi all,

I have recently moved some UCP connections from kannel 1.4 to kannel 1.5.

I am pretty sure that when kannel 1.4 received a NACK 04 (throttling) it considered it as temporary error and retried. Version 1.5 seems to consider it a permanent error and discards the SMS.

Have a look at this log sequence from bearer-access.log:

2016-10-21 09:31:25 REJECTED Send SMS [SMSC:FO_HQS] [SVC:C00127_001] [ACT:433f083f-209f-4f62-979f-ae82b5742c90] [BINF:] [FID:8609681] [META:] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:0:-1:-1:11] [msg:159:xxx] [udh:0:]
2016-10-21 09:31:25 Receive DLR [SMSC:FO_HQS] [SVC:C00127_001] [ACT:] [BINF:] [FID:8609681] [META:?orig_msg?dlr_mask=11&] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:-1:-1:-1:16] [msg:24:NACK/04-Throttling error] [udh:0:]

Should I set something in the conf to tell kannel that that error is temporary?

Thanks,
Giulio Giovannini


Reply | Threaded
Open this post in threaded view
|

RE: SMS REJECTED due to throttling

Vangelis Typaldos

On gw/smsc/smsc_smpp.c is defined smpp_status_to_smscconn_failure_reason that defines the retry policy in base of submit_sm_resp response.

 

As far as i can see SMPP_ESME_RTHROTTLED (throttling error) is marked as SMSCCONN_FAILED_TEMPORARILY so it should generate retry attempts.

 

Enable debug log on bearerbox and check for "SMSC returned error code" lines.

 

Regards,

Vangelis

 

 

static long smpp_status_to_smscconn_failure_reason(long status)

{

    switch(status) {

        case SMPP_ESME_RMSGQFUL:

        case SMPP_ESME_RTHROTTLED:

        case SMPP_ESME_RX_T_APPN:

        case SMPP_ESME_RSYSERR:

            return SMSCCONN_FAILED_TEMPORARILY;

            break;

 

        default:

            return SMSCCONN_FAILED_REJECTED;

    }

}

 

 

 

From: [hidden email]
Sent: Saturday, October 22, 2016 4:58 AM
To: [hidden email]; [hidden email]
Subject: Re: SMS REJECTED due to throttling

 

you'll need to reduce, by setting throughput. document doesn't say about temporary condition, it will discard it, but if you put delivery report url, it will call back with spesific status, in my setting, it is set as 16. my application will hit the message again, to queue in kannel...



From: Giulio Giovannini <[hidden email]>
To: [hidden email]
Sent: Friday, 21 October 2016, 23:22
Subject: SMS REJECTED due to throttling

Hi all,

I have recently moved some UCP connections from kannel 1.4 to kannel 1.5.

I am pretty sure that when kannel 1.4 received a NACK 04 (throttling) it considered it as temporary error and retried. Version 1.5 seems to consider it a permanent error and discards the SMS.

Have a look at this log sequence from bearer-access.log:

2016-10-21 09:31:25 REJECTED Send SMS [SMSC:FO_HQS] [SVC:C00127_001] [ACT:433f083f-209f-4f62-979f-ae82b5742c90] [BINF:] [FID:8609681] [META:] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:0:-1:-1:11] [msg:159:xxx] [udh:0:]
2016-10-21 09:31:25 Receive DLR [SMSC:FO_HQS] [SVC:C00127_001] [ACT:] [BINF:] [FID:8609681] [META:?orig_msg?dlr_mask=11&] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:-1:-1:-1:16] [msg:24:NACK/04-Throttling error] [udh:0:]

Should I set something in the conf to tell kannel that that error is temporary?

Thanks,
Giulio Giovannini


Reply | Threaded
Open this post in threaded view
|

Re: SMS REJECTED due to throttling

Giulio Giovannini
Hello Vangelis,

thanks for the hint.

The problem is appearing for a UCP/EMI connection, not for a SMPP connection. Are you saying that the SMS will go through the piece of code you provided even for UCP connections? In that case it would be a kannel bug as it is treating it as a permanent error.

Best regards,
Giulio



Mobyt S.p.A.Giulio Giovannini 
Devops Mobyt 
[hidden email]
Mobyt S.p.A. 
Via Aldighieri 10 
44121 Ferrara - Italy
tel. + 39 0532 207296 
fax. + 39 0532 242952 
www.mobyt.it

2016-10-22 9:53 GMT+02:00 Vangelis Typaldos <[hidden email]>:

On gw/smsc/smsc_smpp.c is defined smpp_status_to_smscconn_failure_reason that defines the retry policy in base of submit_sm_resp response.

 

As far as i can see SMPP_ESME_RTHROTTLED (throttling error) is marked as SMSCCONN_FAILED_TEMPORARILY so it should generate retry attempts.

 

Enable debug log on bearerbox and check for "SMSC returned error code" lines.

 

Regards,

Vangelis

 

 

static long smpp_status_to_smscconn_failure_reason(long status)

{

    switch(status) {

        case SMPP_ESME_RMSGQFUL:

        case SMPP_ESME_RTHROTTLED:

        case SMPP_ESME_RX_T_APPN:

        case SMPP_ESME_RSYSERR:

            return SMSCCONN_FAILED_TEMPORARILY;

            break;

 

        default:

            return SMSCCONN_FAILED_REJECTED;

    }

}

 

 

 

From: [hidden email]
Sent: Saturday, October 22, 2016 4:58 AM
To: [hidden email]; [hidden email]
Subject: Re: SMS REJECTED due to throttling

 

you'll need to reduce, by setting throughput. document doesn't say about temporary condition, it will discard it, but if you put delivery report url, it will call back with spesific status, in my setting, it is set as 16. my application will hit the message again, to queue in kannel...



From: Giulio Giovannini <[hidden email]>
To: [hidden email]
Sent: Friday, 21 October 2016, 23:22
Subject: SMS REJECTED due to throttling

Hi all,

I have recently moved some UCP connections from kannel 1.4 to kannel 1.5.

I am pretty sure that when kannel 1.4 received a NACK 04 (throttling) it considered it as temporary error and retried. Version 1.5 seems to consider it a permanent error and discards the SMS.

Have a look at this log sequence from bearer-access.log:

2016-10-21 09:31:25 REJECTED Send SMS [SMSC:FO_HQS] [SVC:C00127_001] [ACT:433f083f-209f-4f62-979f-ae82b5742c90] [BINF:] [FID:8609681] [META:] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:0:-1:-1:11] [msg:159:xxx] [udh:0:]
2016-10-21 09:31:25 Receive DLR [SMSC:FO_HQS] [SVC:C00127_001] [ACT:] [BINF:] [FID:8609681] [META:?orig_msg?dlr_mask=11&] [from:J.UNIVERSE] [to:<a href="tel:%2B33682412951" value="+33682412951" target="_blank">+33682412951] [flags:-1:-1:-1:-1:16] [msg:24:NACK/04-Throttling error] [udh:0:]

Should I set something in the conf to tell kannel that that error is temporary?

Thanks,
Giulio Giovannini



Reply | Threaded
Open this post in threaded view
|

Re: SMS REJECTED due to throttling

Paulo Correia-5
Hi Giulio,

I've seen the same issue on some of my connections using UCP so I'm trying a patch on 1.4.4 based on the one in https://redmine.kannel.org/attachments/104/0000332-emi_patch_ack_v3.txt

I think there is no much difference on the gw/smsc/smsc_emi.c from versions 1.4.4 and 1.5, but please check.

Best regards,
Paulo Correia

On 10/24/2016 08:03 AM, Giulio Giovannini wrote:
Hello Vangelis,

thanks for the hint.

The problem is appearing for a UCP/EMI connection, not for a SMPP connection. Are you saying that the SMS will go through the piece of code you provided even for UCP connections? In that case it would be a kannel bug as it is treating it as a permanent error.

Best regards,
Giulio



Mobyt S.p.A. Giulio Giovannini 
Devops Mobyt 
[hidden email]
Mobyt S.p.A. 
Via Aldighieri 10 
44121 Ferrara - Italy
tel. + 39 0532 207296 
fax. + 39 0532 242952 
www.mobyt.it

2016-10-22 9:53 GMT+02:00 Vangelis Typaldos <[hidden email]>:

On gw/smsc/smsc_smpp.c is defined smpp_status_to_smscconn_failure_reason that defines the retry policy in base of submit_sm_resp response.

 

As far as i can see SMPP_ESME_RTHROTTLED (throttling error) is marked as SMSCCONN_FAILED_TEMPORARILY so it should generate retry attempts.

 

Enable debug log on bearerbox and check for "SMSC returned error code" lines.

 

Regards,

Vangelis

 

 

static long smpp_status_to_smscconn_failure_reason(long status)

{

    switch(status) {

        case SMPP_ESME_RMSGQFUL:

        case SMPP_ESME_RTHROTTLED:

        case SMPP_ESME_RX_T_APPN:

        case SMPP_ESME_RSYSERR:

            return SMSCCONN_FAILED_TEMPORARILY;

            break;

 

        default:

            return SMSCCONN_FAILED_REJECTED;

    }

}

 

 

 

From: [hidden email]
Sent: Saturday, October 22, 2016 4:58 AM
To: [hidden email]; [hidden email]
Subject: Re: SMS REJECTED due to throttling

 

you'll need to reduce, by setting throughput. document doesn't say about temporary condition, it will discard it, but if you put delivery report url, it will call back with spesific status, in my setting, it is set as 16. my application will hit the message again, to queue in kannel...



From: Giulio Giovannini <[hidden email]>
To: [hidden email]
Sent: Friday, 21 October 2016, 23:22
Subject: SMS REJECTED due to throttling

Hi all,

I have recently moved some UCP connections from kannel 1.4 to kannel 1.5.

I am pretty sure that when kannel 1.4 received a NACK 04 (throttling) it considered it as temporary error and retried. Version 1.5 seems to consider it a permanent error and discards the SMS.

Have a look at this log sequence from bearer-access.log:

2016-10-21 09:31:25 REJECTED Send SMS [SMSC:FO_HQS] [SVC:C00127_001] [ACT:433f083f-209f-4f62-979f-ae82b5742c90] [BINF:] [FID:8609681] [META:] [from:J.UNIVERSE] [to:+33682412951] [flags:-1:0:-1:-1:11] [msg:159:xxx] [udh:0:]
2016-10-21 09:31:25 Receive DLR [SMSC:FO_HQS] [SVC:C00127_001] [ACT:] [BINF:] [FID:8609681] [META:?orig_msg?dlr_mask=11&] [from:J.UNIVERSE] [to:<a moz-do-not-send="true" href="tel:%2B33682412951" value="+33682412951" target="_blank">+33682412951] [flags:-1:-1:-1:-1:16] [msg:24:NACK/04-Throttling error] [udh:0:]

Should I set something in the conf to tell kannel that that error is temporary?

Thanks,
Giulio Giovannini




--
PDMFC Paulo Correia
Systems Architect
PDMFC
telephone:+351210337700 fax:+351213572031
email: [hidden email] skype:
<a style="color: rgb(106, 159, 225);" href="skype://pcorreia.g4m?chat">pcorreia.g4m

Rua Fradesso da Silveira n 4, Piso 1 B
1300-609 Lisboa
Portugal

Reply | Threaded
Open this post in threaded view
|

Re: SMS REJECTED due to throttling

Stipe Tolj-2
Hi,

can we see the EMI/UCP PDU exchange from bearerbox.log in DEBUG level,
so we can have a look into the code to see if there was any change?

Stipe


--
Best Regards,
Stipe Tolj

-------------------------------------------------------------------
Düsseldorf, NRW, Germany

Kannel Foundation                 tolj.org system architecture
http://www.kannel.org/            http://www.tolj.org/

stolj at kannel.org               st at tolj.org
-------------------------------------------------------------------

Reply | Threaded
Open this post in threaded view
|

Re: SMS REJECTED due to throttling

Giulio Giovannini
Hi,

we threw in a quick fix. In the attachement.

I think the proper fix should allow the user to list in the connection configuration the NACK codes that he/she wants to consider as temporary.

Ciao,
Giulio



2016-11-11 12:21 GMT+01:00 Stipe Tolj <[hidden email]>:
Hi,

can we see the EMI/UCP PDU exchange from bearerbox.log in DEBUG level, so we can have a look into the code to see if there was any change?

Stipe


--
Best Regards,
Stipe Tolj

-------------------------------------------------------------------
Düsseldorf, NRW, Germany

Kannel Foundation                 tolj.org system architecture
http://www.kannel.org/            http://www.tolj.org/

stolj at kannel.org               st at tolj.org
-------------------------------------------------------------------



emi_NACK_retry.patch (1K) Download Attachment