Dear all,

This is the first time I am contributing to the Open
Source project and I hope my code can make it to the
CVS :)

The proposed changes are as follow:-
1. Internal SMSC Connections Load Balancer
        i) basic round robin (implemented)
                For example
                (FAKE1,FAKE2,FAKE3,FAKE4) <--- SMSC connection
                                        where smsc-id is specify
                 using group name : test

                Sample configuration file
                .
                .
                # SMSC CONNECTIONS

                group = smsc
                smsc = fake
                smsc-id = FAKE1
                preferred-smsc-id = FAKE1
                port = 10001
                connect-allow-ip = 127.0.0.1

                group = smsc
                smsc = fake
                smsc-id = FAKE2
                preferred-smsc-id = FAKE2
                port = 10002
                connect-allow-ip = 127.0.0.1

                group = smsc
                smsc = fake
                smsc-id = FAKE3
                preferred-smsc-id = FAKE3
                port = 10003
                connect-allow-ip = 127.0.0.1

                group = smsc
                smsc = fake
                smsc-id = FAKE4
                preferred-smsc-id = FAKE4
                port = 10004
                connect-allow-ip = 127.0.0.1

                .
                .

                # FOR LOAD BALANCING
                group = load-balancer
                group-name = test
                group-list = FAKE1,FAKE2,FAKE3,FAKE4

                The load balancer call "test" with the arrangement
of FAKE1,FAKE2,FAKE3 and FAKE4.
                When the following URL is call:-
                
http://localhost:13013/cgi-bin/sendsms?username=tester&password=foobar&to=0163655207&text=test&group=test
        
                The load balancer will first select SMSC connection
(FAKE1) to send out SMS.
                When the above URL is call again, the load balancer
will use SMSC connection (FAKE2) to send out SMS.
                The SMSC connection will use (FAKE3) and (FAKE4)
when the URL is called twice.
                It will use back SMSC connection (FAKE1) when the
URL is called the fifth time.

                Using this load balancing feature, the sending out
SMS will improve as we can have more modems to send
out SMS compare using one modem.

        ii) weighted round robin (not yet implemented)
                Will submit the patches within next few weeks.

2. Writing to a directory when failed to send SMS
        Configuration file
        group = core
        .
        .
        failed-dir = "/tmp/failed"

        the failed-dir parameter must be in the core group.

        The following format is used to write the file :-
                PNO<CR> - String
              connector info<CR> - String
                which user<CR> - String
              flag<CR> - all Integer
              udh<CR> - Integer : String
              message<CR> - String

        The following file naming convention is used :-
                (random number)_(phone number).err

        These file(s) can used to resend the failed mesage(s)
by an external program.

Finally Merry Chritsmas and Happy New Year to you guys
and keep up the good work.

Cheers,
Hong Cheng

__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com

Reply via email to