Hi Oliver,

long time no see ;) ... let me assist.

Oliver Eales schrieb:
> Hello,
> 
> i have some problems understanding the routing of outgoing SMS within
> the bearerbox.
> I have the three sms-c links. One single SMPP link (link0) and two EMI
> links (link1 and link2).
> Now i want to use link1 and link2 in a a round-robin way with failover.
> 
> Basically the routing with only two different single routes (link0  and
> link1 for example) is working, but how can i distribute the outgoing
> traffic between link1 and link2.
> Here is a excerpt of my config.
> 
> 
> group = smsc
> smsc =  smpp
> host =  10.200.1.1
> port = 6112
> smsc-username = "none"
> smsc-password = fooby
> smsc-id = link0
> preferred-smsc-id = link0
> allowed-smsc-id = link0
> system-type = "VMA"
> connect-allow-ip = 127.0.0.1
> transceiver-mode = true
> 
> group = smsc
> smsc =  emi
> host =  10.128.2.29
> port = 8006
> smsc-username = "foo"
> smsc-password = bar
> smsc-id = link1
> keepalive = 55
> preferred-smsc-id = link1
> allowed-smsc-id = link1;link2
> system-type = "VMA"
> connect-allow-ip = 127.0.0.1
> idle-timeout = 30
> transceiver-mode = true
> 
> group = smsc
> smsc =  emi
> host =  10.128.2.30
> port = 8006
> smsc-username = "foo"
> smsc-password = bar
> smsc-id = link2
> keepalive = 55
> preferred-smsc-id = link2
> allowed-smsc-id = link2;link1
> system-type = "VMA"
> connect-allow-ip = 127.0.0.1
> idle-timeout = 30
> transceiver-mode = true

let me sum up the 3 stage process of how bearerbox does routing:

assumption: we get a msg to bearerbox from smsbox with a smsc-id flag 'X'. What
happens in bearerbox is this:

1) what is the set of SMSC connections that are online, so that are
"technically" capable to receive and transport the message? -> set S1

(note: if all are online this means: set S1 = {link0, link1, link2})

2) what routes are allowed according to allowed/denied rule sets for set S1 and
the msg flag X? -> set S2

(note: if link0 would have allowed-smsc-id = "link0;X", then we get: set S2 = {
link0})

3) do random select on set S2 to pick the route we take -> route.

So in your case you want to "load-balance" across link1 and link2, which would
be done like this:

  group = smsc
  smsc-id = link1
  ...
  allowed-smsc-id = "linkl;link3"
  ...

  group = smsc
  smsc-id = link2
  ...
  allowed-smsc-id = "link2;link3"
  ...

which means, we use a "virtual" smsc-id tag 'link3' that can be used by the
upper layer (smsbox) to load-balance across link1, link2.

When you inject the MTs to smsbox with ...&smsc=link3&... you will get have the
following steps in the routing (as described above):

step 1) set S1 = { link0, link1, link2 }  (since all are online)
step 2) set S2 = { link1, link2 }  (since link3 is allowed in both)
step 3) random pick out of set S2

:)

Best Regards,
Stipe

-- 
-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------

Reply via email to