As far as we can tell, Kannel supports this already - we're using it, with no obvious problems so far!

We have a number of redundant binds with different carriers, including one with four binds - here's a complete version of the config we're using:

# Bind 1
group = smsc
smsc = smpp
smsc-id = carriername
host = x.x.x.x
port = xxx
receive-port = xxx
transceiver-mode = false
smsc-username = ***
smsc-password = ***
system-type = smpp
address-range = 0
source-addr-ton = 0
source-addr-npi = 4
dest-addr-ton = 1
dest-addr-npi = 1
alt-charset="ASCII"
enquire-link-interval = 30
allowed-smsc-id = "carriername"
msg-id-type = 0x00

# Bind 2
group = smsc
smsc = smpp
smsc-id = carriername
host = x.x.x.x
port = xxx
receive-port = xxx
transceiver-mode = false
smsc-username = ***
smsc-password = ***
system-type = smpp
address-range = 0
source-addr-ton = 0
source-addr-npi = 4
dest-addr-ton = 1
dest-addr-npi = 1
alt-charset="ASCII"
enquire-link-interval = 30
allowed-smsc-id = "carriername"
msg-id-type = 0x00

etc. (Binds 3 and 4 are identical again)

So the four binds have identical configs, and are logically identical based on their smsc-id being the same (on a side note, I think the allowed-smsc-id is redundant, and only there from a legacy configuration). So any message destined for 'carriername' will go out through any of the 4 binds - and if any binds go down, the remaining binds will happily process all traffic, with no change in behaviour. Any message coming in to kannel over any of those 4 binds will have the same smsc-id, so to any external applications, etc. the different binds aren't visible.

I assume you can throttle on the individual binds, and with all binds up, get aggregate throughput equal to the sum of the max rate of each individual bind.

We are using DLRs on our redundant binds, and again given that the smsc-id is the same across the binds, DLRs work fine.

(BTW, if anyone sees anything wrong with this config that I've missed, please let me know :) but it's been working fine for us for the past 6+ months)

Cheers,


On 09/05/2007, at 2:52 AM, Hillel wrote:

Hi,

We have a SMSC provider that wants us to load balance so the diagram will
look like:

Sending SMSs:
Kannel ---Bind to Gateway1-----> Gateway1 ----connect to SMSC----- > SMSC
        ---Bind to Gateway2-----> Gateway2 ----connect to SMSC----->

For Incoming SMSs and delivery receipts:

Kannel <---Bind to Kannel----- Gateway1 <----connect to Gateway1----- SMSC <---Bind to Kannel----- Gateway2 <----connect to Gateway2 -----

From Gateway 1 and Gateway 2 we can send SMSs at 10 SMSs/sec per Gateway.
For SMSs going out, we must send via both Gateway1 and Gateway2 to get 20
SMSs/sec.
If either of the gateways go down the other must get the full amount of the
SMSs and throttle at 10 SMS/sec.

For delivery receipts they can come back via either Gateway.
For Incoming SMSs they can come back via either Gateway.


1. For Sending SMSs is there any way to get Kannel to do the load balancing
or must one add a patch to CVS?

For incoming SMSs we would like to use the setup:
group = smsbox-route
smsbox-id = smsc_provider
smsc-id = "Gateway1;Gateway2"

2. Will this work for delivery receipts so that they can come back with either Gateway1 or Gateway2.? (I assume this will work for incoming SMSs as
this is described
via the Kannel CVS website.)

Thanks, any ideas on how to setup load-balancing (or if it can be done)
appreciated




--
Giulio Harding
Systems Administrator

m.Net Corporation
Level 2, 8 Leigh Street
Adelaide SA 5000, Australia

Tel: +61 8 8210 2041
Fax: +61 8 8211 9620
Mobile: 0432 876 733
MSN: [EMAIL PROTECTED]

http://www.mnetcorporation.com





Reply via email to