Hi,

Yes, I agree that the behavior is the ideal one. But I think it is confusing to the user that the log says "Re-connecting" and bearerbox reports the state of the gateway as "reconnecting" (When requesting status/status.xml/status.html), while it should actually be dead.

Alexander Malysh wrote:
Hi,

yes it really intentional. if SMSC returns such error and your system_id/password are correct then it's SMSC bug! Imagine SMSC could not retrieve your login data for some reason it should never claim your system_id or password is wrong (for this purpose exists Bind Failed)!

Why kannel has such behavior: because some SMSCs suspend (security issue) your account when you unintentionally supplied wrong system_id or password. And then you have to contact support and explain something etc. etc. It's just good behavior to not to abuse SMSC...


Thanks,
Alex


Peter Christensen schrieb:
Hi,

I've been experiencing problems where kannel at some time no longer attempts to reconnect a gateway, which is down. Here's what basically happens (gateway name and address is replaced with fake name/address):

ERROR: System error 111: Connection refused
ERROR: error connecting to server `1.2.3.4' at port `2775'
ERROR: SMPP[gateway]: Couldn't connect to server.
ERROR: SMPP[gateway]: Couldn't connect to SMS center (retrying in 10 seconds).
ERROR: connect failed
ERROR: System error 111: Connection refused
ERROR: error connecting to server `1.2.3.4' at port `2775'
ERROR: SMPP[gateway]: Couldn't connect to server.
ERROR: SMPP[gateway]: Couldn't connect to SMS center (retrying in 10 seconds).
WARNING: SMPP: PDU NULL terminated string has no NULL.
ERROR: SMPP[gateway]: SMSC rejected login to transmit, code 0x0000000f (Invalid System ID).
ERROR: SMPP[gateway]: I/O error or other error. Re-connecting.

Although kannel claim to be reconnect when the login was invalid, this never occurs. The thread terminates, but bearerbox still report the state of the gateway as "reconnecting".

When examining the code, it is very obvious that the SMPP gateway code is meant to terminate when login is rejected:


gateway/gw/smsc/smsc_smpp.c:1468
if (pdu->u.bind_transmitter_resp.command_status == SMPP_ESME_RINVSYSID || pdu->u.bind_transmitter_resp.command_status == SMPP_ESME_RINVPASWD)
                    smpp->quitting = 1;


gateway/gw/smsc/smsc_smpp.c:1488
if (pdu->u.bind_transceiver_resp.command_status == SMPP_ESME_RINVSYSID || pdu->u.bind_transceiver_resp.command_status == SMPP_ESME_RINVPASWD)
                    smpp->quitting = 1;


Is this really intentional? And if so, isn't it then wrong to say claim that kannel will reconnect?


Med venlig hilsen / Best regards

Peter Christensen

Developer
------------------
Cool Systems ApS

Tel: +45 2888 1600
 @ : [EMAIL PROTECTED]
www: www.coolsystems.dk





Reply via email to