Page 1 of 1

Slow problem (help)

Posted: Sun Jun 07, 2009 12:29 pm
by mich84
Dear ALT.

I'm facing a serious issue here, I'm using you library for submitting text throw my provider, the problem that from the time I submit the message until I receive it is approximately 20 seconds, which is a hilarious time.
I check with the service provider, and found once he received the message on his system the same time it's delivered.

Note : his frequency is 5 messages per second, and it's working with others.

Please help ASAP

thanks

Posted: Mon Jun 08, 2009 1:21 pm
by adrianaitken
I'd suggest running Wireshark on your system to see the packets leave your app towards the SMSC (and their acknowledgements).
This would show where the delay is.
If you app sends (and gets a confirmation) straight away then it is your service provider regardless of what they say. If your app doesn't actually send it as soon as it gets the message to send, well that'll be down to your programming skills :lol: :lol:
Using VB.Net and a MSSQL backend I can shift 20 messages and get them recieved on 20 mobiles within a few seconds (on an old Windows 2000 server running with 512 Meg RAM !!!).
My service provider used to limit me to 5 per second but changed their SMSC platform and now I have a 'as fast as you can send them, we can deliver them' service. This meant I could remove my traffic limiting code which made my life easier - always a good thing :D

Posted: Tue Jun 09, 2009 9:33 am
by mich84
Hello Adrian,

Thanks for your quick reply, but be sure it's not from the code, cause away from the system which we done, I prepared a test page to check sending, and it takes the same time , I used the library simply. please find the code :

client = new SmppClient();
client.Timeout = 60000;
client.NeedEnquireLink = true;

client.AddrNpi = 0;
client.AddrTon = 0;
client.SystemType = "EXT_SME";

client.Connect(
"xxxxxxxxxxx",
xxxx);

if (client.Status == ConnectionStatus.Open)
{
Bind();
}

DataCodings coding = GetDataCoding();
SubmitMode mode = GetSubmitMode();

if (client.Status != ConnectionStatus.Bound)
{
Response.Write("Before sending messages, please connect to SMSC.");
return;
}

SubmitSmResp[] resp = client.SubmitText(
mode,
0,
0,
txtFrom.Text,
0,
0,
txtTo.Text,
coding,
txtMessage.Text);

if (resp.Length > 0 && resp[0].Status == CommandStatus.ESME_ROK)
{
Response.Write("QuerySm for message " + resp[0].MessageId);
QuerySmResp qresp = client.Query(resp[0].MessageId,
0,
0,
txtTo.Text);
Response.Write("QuerySmResp for message " + resp[0].MessageId + " with status " + qresp.Status + ", message state " + qresp.MessageState);

}

Posted: Tue Jun 09, 2009 12:57 pm
by adrianaitken
Mich, do you get an instant reply from the last statements (querysm etc) ?
If you do then it's your SMSC / service provider. Nothing you can do about that except take your business elsewhere :D