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