SMS problems

SMS problems SearchSearch
Author Message
Suvinay
New member
Username: Suvinay

Post Number: 2
Registered: 07-2004
Posted on Saturday, August 14, 2004 - 09:06 am:   

Like I had mentioned we are working on implementing a Group SMS application which enables users to create groups / contacts through the web and even send SMS through web to the groups
(20members max and 100 members max)

NowSMS will be running on a seperate server than where the website is hosted, so we need to post
the SMS through url feature. To send only one HTTP request and make things faster we will
include the target phone numbers in the same http request separating numbers by commas.

1) How many numbers can we send in one request? We require a max of 100 numbers since thats our
max group size. Number format will be 9198xxxxxxxx (12chars).

2) Secondly how can we ascertain whether all the messages are delivered and how many messages
are sent by which mobile user? The users will be charged on the basis of number of messages to
total number of users so we need to keep a record of how many messages have been sent by which
request number.
eg user with mobile no.9829112345 sends a message to his group of 50 contacts. He will be
charged at a rate of Rs.X/- per contact sent, here X into 50 contacts.

I can keep a log on the server where the database is being looked up and keep a log there but
how do I get a confirmation that the message was actually sent? The IP link between the
webserver and the gateway may be working but the link between the gateway with SMSC may be down
in which case my webserver logs will show message sent but actually they are not delivered.

I see that NowSMS generates txt files for messages sent, can we configure the gateway to write
into SQL server 2000 db for a particular SMS user? Is there a better alternate to this?

3) Similarly I require all inbound messages and outbound messages to be logged for billing
purposes plus I wish to develop a Java/C++ application which can look up the db in real time to give me an overview of inbound, outbound, server status etc. Can the gateway be configured to log this information into a seperate SQL Server db? My app will read the info and give me real
time info.

4) How can I disable an SMSC link without deleting it from the SMSC connection tab? I have 2
accounts with separate SMSC operators.

5) How can I send messages back from the same SMSC SMPP link that they came through? Eg.
SMSC LINK A (all users mobile begin with 9829xxxxxx)
SMSC LINK B (all users mobile begin with 9828xxxxxx)
When a user with 9829xxxxxx sends msg Link A should be used to send back response to the user.

6) Similarly I want certain keyword commands to be trigged only for LINK A and NOT LINK B. How
do I do this?

7) In a few cases, an incoming keyword triggers an http request to an asp page which looks up the info and returns back text. With only a single response its fine, but what if I require to
send back TWO SMS with the single request?
Eg. Sending CRI sends back the current cricket score (through asp web page looking up SQL DB)
plus sends another message should go out with some information which is only sent if the first
message goes through or two messages with seperate text contents need to be sent. Should I
configure the asp page to submit url, with SMS params for the second message, to the gateway for
this, or make two commands or is an easier option available?

8)My SMSC operator prefers that the local ports through which the connections are being made to
be static. Plus they have two ports, 111 for receiving and 222 for sending.
I need to configure the gateway:
Local port 1234 tranmitter link with SMSC port 111
Local port 1235 receiver link with SMSC port 222

Can we configure this? Will this affect 2 way sms???? If yes, please tell me what to do?

Once again I am amazed at the quick response and depth of support that you are providing.
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 3276
Registered: 10-2002
Posted on Monday, August 16, 2004 - 09:13 pm:   

Hi Suvinay,

Wow, a lot of questions. That will make it more difficult to respond quickly. But I shall try.

1.) In current versions (v5.50+), we do not have a fixed upper limit on the number of recipients. In older versions, we had a limit of approximately 8000 characters for a comma delimited recipient list.

Some HTTP libraries might impose a limit on the length of URL that you can submit, so that is one consideration. But I would not expect this to be a problem for one hundred 12 digit phone numbers. (If your HTTP library does have a URL length limitation, we can accept the parameters via a standard HTTP POST "application/x-www-form-urlencoded" method as well as GET.)

2.) Since you are controlling the submissions from your application, it would probably make the most sense to account for them there, especially as users would never be connecting directly to NowSMS.

NowSMS does have accounting callbacks (http://www.nowsms.com/support/bulletins/tb-nowsms-001.htm) that can be used in addition to the logs. But I don't think they will offer you any more information.

Delivery confirmations are a complex issue. But if you just want to know if messages are leaving NowSMS properly, you could monitor the number of files in the "Q" subdirectory of NowSMS, as that is where queued messages are stored while they are awaiting transmission.

3.) We don't have any options for logging the information into an SQL database. The accounting callbacks that I referenced above are triggered every time a message is submitted, and you could supply a script that updated the database with every accounting callback. But since you are doing all of the message submissions from your application, I would be inclined to do this directly from your application.

4.) Uncheck "Support any outbound message traffic" and remove any "preferred connection for" entries. That effectively disables it for sending, although NowSMS will still connect.

5.) For each of the SMSC definitions, define the appropriate prefixes in the "preferred SMSC connection for" list. For example, SMSC Link A would have 9829* and +9829* in that list.

6.) If the recipient address that they are sending the message to is different on each SMSC connection, then you can specify the different receiving phone numbers in the "Receive Phone Number(s)" field when defining a "2-way" command.

Basically, this allows you to associate 2-way commands that are only valid for messages received that are addressed to a particular receiving number.

If that doesn't provide enough control, then you would have to do the logic in your 2-way scripts, having the script itself decide what to do based upon the sender phone number.

7.) I'd have the ASP submit the message. Let the ASP make its own connections to send the messages. The example that I provided at http://support.nowsms.com/discus/messages/1/5516.html should be a good start.

That is the only way that you could send 2 completely separate messages in reaction to a 2-way command. (A redirect response would allow you some flexibility for sending a single message to multiple recipients, but it wouldn't offer enough flexibility to send 2 completely separate messages.)

8.) Hmm. I haven't seen a requirement like this before. We can do:

Local port 1234 tranmitter link with SMSC port 111
Local port 1235 receiver link with SMSC port 111

Or

Local port 1234 tranmitter link with SMSC port 111
Local port 1235 transceiver link with SMSC port 222

In this latter case, 2 separate SMSC connections would be defined.

On the first connection to port 111, don't check "Receive SMS".

On the second connection, to port 222, check "Receive SMS", and then check "Send and Receive Messages over the same connection (SMPP Transceiver)" under "Advanced Options". Then just make sure that "Support any outbound message traffic" is NOT checked, so that we would not attempt to send any messages through this link.

Basically, the issue here is that we would be binding as a tranceiver instead of a receiver (but we would not try to transmit any messages), and the question is whether or not the provider would allow this.

I'm trying to think of some syntax where we might be able to alter the configuration to provide an override on the receiver port. If the above doesn't work for you, then there might be a simple modification we could make.

-bn
Suvinay
New member
Username: Suvinay

Post Number: 3
Registered: 07-2004
Posted on Tuesday, August 17, 2004 - 05:00 am:   

8.)Local port 1234 tranmitter link with SMSC port 111
Local port 1235 receiver link with SMSC port 111

Or Local port 1234 tranmitter link with SMSC port 111
Local port 1235 transceiver link with SMSC port 222

The problem with the second option is that as soon as the transceiver link tries to make a connection, it conflicts with the first link and both connections are terminated.
We want 1234 transmitter with 111 and 1235 receiver with 222.

Furthermore how do we fix the local ports(1234 and 1235) in NowSMS, like we can do in Kannal for the SMPP SMSC links?

Thanks for the solutions!
Suvinay
New member
Username: Suvinay

Post Number: 4
Registered: 07-2004
Posted on Tuesday, August 17, 2004 - 06:04 am:   

Hi again Bryce,
I forgot to include this in the post:

9) I plan to start a subscription based service via SMS. All users who subscribe to the service eg. News service will be added to an SQL Server 2000 db in the following format: 9198xxxxxxxxx
& date registered.

How do we send an SMS to this list? I will have to send 2-3 SMS's daily to the list(with added/deleted users). Distribution lists in NowSMS support only txt files right? Will I have to export the list to a txt file each time I want to send the list a message?

Supposing we have 2000 users in the list. Does the gateway send the sms's to them one by one or at once in bulk? How
does sending an SMS to 10,000 users affect the gateway performance?

Thanks again
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 3282
Registered: 10-2002
Posted on Tuesday, August 17, 2004 - 09:13 pm:   

Hi Suvinay,

8.) If they support transceiver, why not just use a transceiver connection instead of separate submitter and transmitter connections?

The local port numbers are set on the "Advanced Options" page when you configure "Properties" for an SMPP SMSC connection.

Although, now that I think of it, the ability to set the local port values may have been added after the v5.50 release.

A patch for v5.50e is available at http://www.nowsms.com/download/nowsms550e.zip, and it does have these advanced settings.

If you do still need:

Local port 1234 tranmitter link with SMSC port 111
Local port 1235 receiver link with SMSC port 222

There will be a trick in the upcoming v5.51 release that will allow this. In the receiver port setting, you could enter 1235:222. In this case, 1235 would be used as the local port for the receiver, and 222 as the remote port (overriding the default remote port).

v5.51 is expected to be made available for download before the end of this week (or possibly the start of next week).

-bn

Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 3283
Registered: 10-2002
Posted on Tuesday, August 17, 2004 - 09:17 pm:   

9.) You could export them to text files, or you could just use a comma-delimited list of recipients when you submit the message.

SMS messages are sent one at a time. (The SMPP protocol does have an API for sending messages to multiple recipients, however, our experience has been that this option is not very widely supported as service providers like to account for messages individually. As such, we do not use the submit multi API.)

-bn