General SMPP Server questions

General SMPP Server questions SearchSearch
Author Message
Chris
New member
Username: Chrisc

Post Number: 41
Registered: 12-2008
Posted on Wednesday, May 19, 2010 - 05:06 pm:   

Hi Des

We've got a few general questions regarding the SMPP Server vs SMPP binds to Networks.

We are currently submitting messages to NowSMS via HTTP with no SMPP Server setup, where we have NowSMS process the messages to the networks.

If we were to turn on the SMPP Server and have clients connect to us, is it possible to keep all traffic that is sent/received through the SMPP clients seperate from what we send?

Further to this, is it possible to have specific SMPP bind(s) to SMPP clients, while we still send to our own SMPP binds?

Our messages receipting is done through the 2-way HTTP command, which means if we offer SMPP we'll be picking up receipts from our SMPP clients. Is it therefore possible to deactivate the 2-Way HTTP command for specific binds?

The reason we're asking this is because we've had a few requests for SMPP connectivity, but are very hesitant to change our configuration due to the possibility of mixing up traffic, especially with receipts.
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 2143
Registered: 08-2008
Posted on Wednesday, May 19, 2010 - 08:21 pm:   

Hi Chris,

The SMPP binds from your clients are logically separated from your outbound network binds.

I don't think this is formally defined terminology, but I like to refer to them as "inbinds" and "outbinds".

Inbinds are client connections that you accept. Outbinds are outbound connections to your provider(s).

When an inbind connection submits an SMS message via SMPP, logically it is treated the same as if the client submitted the message via HTTP. It goes into the same outbound message queue, except that each user account has its own queue directories (and the queue size threshold value is used to stop one large queue from monopolising a connection).

The only messages that are routed to these inbinds are messages that are specifically addressed to them, such as delivery receipts. If an SMPP client requests a delivery receipt, that delivery receipt gets routed back to the client via SMPP, and does not go to the 2-way command facility.

I hope that helps explain the basics ... at least enough to lead to follow-up questions ...

--
Des
NowSMS Support
Chris
New member
Username: Chrisc

Post Number: 42
Registered: 12-2008
Posted on Friday, May 28, 2010 - 03:45 pm:   

Hi Des

Thank you for relaying this back to us.

As you have guessed though, it leads to more questions.

Is it possible to have inbinds route to specific outbinds? The reason we're asking this is because we would prefer having SMPP clients connecting to us to send their messages through specific Outbinds of our choice.

The second question is related, but more specific. If routing between Inbinds and Outbinds are possible, is there any way the target Outbind can be specified through the form of regular expressions? This will allow logical routing between binds where different TON/NPI settings are used (we are currently using the RouteName parameter for our SMPP binds to differentiate between Originators)

Last question, we know that you have a form of authentication against SMPP users, but is it possible to have a form of external authentication to our own software, perhaps through a plug-in or a form of an HTTP request?

We're also looking at tracking message usage per SMPP client as well as tracking message submissions vs message delivery. Is it possible to use the SMS accounting callbacks for this purpose?

We're looking forward to hearing your answers

Regards
Chris
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 2177
Registered: 08-2008
Posted on Monday, May 31, 2010 - 03:18 pm:   

Hi Chris,


quote:

Is it possible to have inbinds route to specific outbinds? The reason we're asking this is because we would prefer having SMPP clients connecting to us to send their messages through specific Outbinds of our choice.




We have customers who do this, but as I'm thinking through how to explain the settings to you, there seem to be significant limitations to how it works.

If you search here on a keyword of AllowedUser, you'll find details about settings that can specify that a particular outbind can only be used by certain user accounts.

The problem is, that if you do this, you need to define these restrictions on all of your outbinds, as it doesn't specify that an inbind can only use a particular outbind. Instead, it specifies that a particular outbind can only be used by one or more inbinds, but those inbinds could also use other unrestricted outbinds.

I'm not sure that explanation makes sense, but if you look at the explanation of those settings here: http://support.nowsms.com/discus/messages/1/24404.html. then maybe the limitation I've explained above will be more clear.

A better solution is for you to implement accounting callbacks. Each time a message is submitted, NowSMS will issue an HTTP accounting callback to a script of your choosing. Your script can choose whether or not to accept the message, and it can also specify which outbound route to use for sending the message out.

So, based upon the submitting user, you can use the accounting callback to tell NowSMS which route to use. This link explains it in more detail: http://blog.nowsms.com/2009/01/dynamic-sms-message-routing-with-http.html


quote:

The second question is related, but more specific. If routing between Inbinds and Outbinds are possible, is there any way the target Outbind can be specified through the form of regular expressions? This will allow logical routing between binds where different TON/NPI settings are used (we are currently using the RouteName parameter for our SMPP binds to differentiate between Originators)




The AllowedUser settings allow you to mix the "preferred connection for" routing masks with the allowed user settings. So you could have multiple connections with the same AllowedUser settings, and based upon the destination prefix, it would decide which of the routes to use.

However, as the logic gets more complicated, I think the use of the accounting callbacks is a better solution.


quote:

Last question, we know that you have a form of authentication against SMPP users, but is it possible to have a form of external authentication to our own software, perhaps through a plug-in or a form of an HTTP request?




Unfortunately there is not. I don't think this would be difficult for us to implement.

However, to date, what we have suggested is using the HTTP APIs to provision the SMPP user accounts. This API is described here: http://www.nowsms.com/support/bulletins/tb-nowsms-013.htm


quote:

We're also looking at tracking message usage per SMPP client as well as tracking message submissions vs message delivery. Is it possible to use the SMS accounting callbacks for this purpose?




Yes. It's a little confusing. I'd suggest setting up a test system to experiment with the accounting callbacks.

When a message comes in from an SMSC connection, there is an "SMSIn" accounting callback. If the message gets routed to a local user, there is an "SMSOut" accounting callback, but the SMSCName= parameter is "LocalUser -- accountname" instead of an outbind SMSC name.

--
Des
NowSMS Support