Great

Thanks for the responses. In my case, I like using the background process rather than the daemon, here's why. The background process outputs to stdout which allows me to view the debug output of the "-v" option. This information contains the pings which tell the signal quality. This avoids having to write this information to the log by running at log-level 0 rather than log-level 1. This keeps the log files much smaller as since I am pinging the modem quite often (every 4 minutes).

I currently don't have much time to setup an sqlbox, but I think I will eventually. I would greatly appreciate the help of Alejandro and others. First a question. Do I need to recompile with MySQL settings? By this I mean use the options that point to MySQL for Kannel's standard feature of storing DLR reports. It wasn't that I could get this to work, it was just that I wasn't interested in DLR so I didn't use it.

Here is the error message for the "./boostrap"
$ ./bootstrap
+ set -e
+ amvers=no
+ automake-1.10 --version
+ automake-1.9 --version
+ automake-1.8 --version
+ automake-1.7 --version
+ automake-1.6 --version
+ amvers=-1.6
+ test -1.6 = no
+ libtoolize=no
+ glibtoolize --version
+ libtoolize=glibtoolize
+ test glibtoolize = no
+ set +x
+ test '!' -d autotools
+ glibtoolize --copy --force
/usr/bin/glibtoolize: line 1: cd: /usr/share/libtool: No such file or directory
glibtoolize: cannot list files in `/usr/share/libtool'

_____


It appears I don't have libtool. Now that I ran this I'm noticing that this error might be different from what I was doing before and required me to install autotools. It might be as simple as now installing libtool via Darwin ports. Not exactly sure.

Anyway Thanks again.


Alejandro Guerrieri wrote:
For the record, I'm not the author. I've contributed code and documentation to the project and I'm currently the code maintainer.

Check the AUTHORS file on the source tree for the complete "cast" ;)

Regards,

Alejandro

On Fri, Mar 13, 2009 at 6:52 PM, Nikos Balkanas <nbalka...@gmail.com <mailto:nbalka...@gmail.com>> wrote:

    Dear Jason,

    It is very satisfying to hear stories from the field. In your
    case, especially, since its use is so much aligned to its purpose.
    I imagine that the original creators and the long time
    contributors, would feel very content with your message.

    FYI Alejandro G, is the author of sqlbox.

    A couple of additions to your setup:

    Use "modemtype = siemens_mc75". This will both shorten startup,
    and guarantee that you will always get the said modem.

    The "&" in Unix (MacOS is a freeBSD clone - I believe) means to
    throw the process in the background. Commands to administer
    process state are:

    "fg" - bring background process to foreground
    "^z" (suspend) followed by "bg" - throw foreground process to
    background

    Background is not the same as daemon. Daemon suppresses output to
    stdout (logs are still updating). It is best to run as daemon. I
    suspect that it works fine, except that you missunderstood it. Try
    the following:

    kill all kannel processes.

    bearerbox -d -P <confifile>
    pgrep -fl bearerbox (or ps -elf | grep bearerbox)
    tail -f <bearerbox.log>

    You should see 2 bearerbox processes, and logs should be updated
    normally. If not, post the logs with the problem.


    BR,
    Nikos

    ----- Original Message ----- From: "Jason Higbee"
    <ja...@covalentglobal.org <mailto:ja...@covalentglobal.org>>
    To: <users@kannel.org <mailto:users@kannel.org>>
    Cc: "Nikos Balkanas" <nbalka...@gmail.com
    <mailto:nbalka...@gmail.com>>
    Sent: Friday, March 13, 2009 8:58 AM

    Subject: Re: setup Kannel Mac OSX 10.4, Samba 75 Modem, daemon +
    parachute


        I wanted to follow up on what I've done in case there are
        other's looking to learn form my setup.

        Kannel builds great on a Mac once you have the Devopment tool
        installed. No problem there. I complied without the MySQL
        option because I'm not interested in DLR reports (though I may
        need to change that later, read on)

        The smskannel.conf is the whole essence of Kannel, so
        understanding this one file and you basically understand how
        to use Kannel. (at least the basic functions of it). Because I
        was interested in keeping the modem awake (keepalive) I setup
        this feature to ping the modem with an AT command that
        provides the signal strength( in "group = smsc" add "keepalive
        = 240" then in "group = modems" add "keepalive-cmd = AT+CSQ").
        Using this it will ping the modem every 240 seconds with
        AT+CSQ which will return two numbers the first is RSSI (signal
        strength from 0 to 31; 99=not detected) and the second number
        returned is BER (Interference from 0 to 7; 99=not detected).
        So for a good signal (i.e. more "cell phone bars")  you want
        the RSSI to be high and BER to be low. For my current
        location, which the wireless carrier has labeled a 2 bar area,
        I typically get RSSI=14, BER=7. It works fine. If the message
        is scrambled from too much interference Kannel does a good job
        of repulling the message.

        For implementation I run Kannel at log-level 1 with the "&"
        option selected. This allow me to see the pings of the
        keepalive in the terminal window and will also keep Kannel
        (the bearerbox running if the Terminal window closes. I'm not
        sure exactly what the "&" option is but I bet it's has to do
        with Terminal (bash) and not Kannel itself. I also run it with
        a parachute "-P" option in Kannel. The daemon option didn't
        work for me but using the "&" option solves my needs, it runs
        as a process in the background of the computer. You can also
        set it up to run as a launchd process. If you are going to set
        this up I recommend a program called Lingon for getting your
        Kannel startup command into the modified XML that launchd
        uses. This will allow you launch Kannel when your computer
        first logged in and can restart the bearerbox and smsbox if
        you kill them. So with Kannel's parachute option and launchd
        you are pretty much bulletproof for keeping Kannel up.

        Unfortunately I couldn't get sqlbox running. Took me a long
        time to even find sqlbox, eventually I just checked out the
        CVS. My problem is with the autoconf bootstrap. It stops
        before creating the configure file. I downloaded the latest
        version of autoconf via Darwin ports and installed that but
        that didn't help. Admittedly, I don't quite understand Darwin
        ports. So I gave up on that and have a work around. I could
        not get the "get-url" option in the sms-service to send to two
        locations so I route it locally to MAMP (apache and Mysql
        running locally), the script stores the message locally then
        routes it on to the webserver. It would have been nice to have
        a sqlbox sitting between the bearerbox and smsbox but this
        setup works just fine for preserving messages.

        Lastly I'll include the modem and smsc groups I use in
        smskannel.conf in case someone needs to get Samba 75 up and
        running

        group = smsc
        smsc = at
        smsc-id = falcom
        modemtype = auto
        device = /dev/tty.usbmodem1B11
        keepalive = 240
        my-number = 55555555555
        connect-allow-ip = 127.0.0.1

        group = modems
        id = siemens_mc75
        name = "Siemens MC75"
        detect-string = SIEMENS
        detect-string2 = MC75
        init-string = "AT+CNMI=2,2,0,1,1"
        keepalive-cmd = "AT+CSQ"

        That's it. Hope this helps. and thanks to the developers of
        Kannel and those who support it in this forum. The project
        this is being used for is called PamojaConnect and will allow
        charity organizations in rural and remote areas of Africa to
        share their work, express there views and ask questions over
        SMS. The messages are route live to the web on
        http://covalentglobal.org/pamoja , in GoogleMaps, and on Twitter.




        Nikos Balkanas wrote:

            Hi,

            On a final note:

            Panic in "kannelise" means the process dies due to
            unexpected behaviour (core dump, etc. - never happens,
            though). To test parachute quickly:

            start bearerbox with -P flag. You should see 2 bearerbox
            processes running, one is the child of the other.

            Send an unexpected signal to the child, i.e. kill -USR1
            <process-id>. Kannel can't be fooled by any normal signal
            (INT, ABRT, KILL, SIG, etc.) and will die since it will
            consider it a user action ;-)

            You will notice that a new child is spawned with new pid.
            If you have bearerbox logs open you will see clearly the
            reinitialization.

            Everyone in the group has plenty of experience with SMSc
            timeouts and disconnects. Kannel will realize it when it
            tries to send a message and gets an error. It will try to
            reconnect and resend the message. That has the danger,
            that if you do not send any messages, and the SMSc gets
            disconnecterd, kannel won't know it. Therefore most SMScs
            have keepalives that kannel understands and will try to
            reconnect.

            BR,
            Nikos
            ----- Original Message ----- From: "Jason Higbee"
            <ja...@covalentglobal.org <mailto:ja...@covalentglobal.org>>
            To: "Nikos Balkanas" <nbalka...@gmail.com
            <mailto:nbalka...@gmail.com>>
            Cc: <users@kannel.org <mailto:users@kannel.org>>
            Sent: Thursday, March 05, 2009 11:40 PM
            Subject: Re: setup Kannel Mac OSX 10.4, Samba 75 Modem,
            daemon + parachute


                See in line comments.

                -Jason

                Nikos Balkanas wrote:

                    Hi,

                    Please see inlined answers. For all answers check
                    relevant info in the latest userguide.


                    ----- Original Message ----- From: "Jason Higbee"
                    <ja...@covalentglobal.org
                    <mailto:ja...@covalentglobal.org>>
                    To: <users@kannel.org <mailto:users@kannel.org>>
                    Sent: Thursday, March 05, 2009 6:43 PM
                    Subject: setup Kannel Mac OSX 10.4, Samba 75
                    Modem, daemon + parachute


                        Users,

                        I'm planning a project so I am looking for
                        advice and corrections on what I think Kannel
                        can do.

                        I have:

                        Mac OS X 10.4.11
                        Samba 75 (Siemens MC75) USB modem with the
                        modem scripts
                        - it can connect with another SMSC program on
                        port ../tty.usbmodem1B11 or ../cu.usbmodem1B11
                        (not sure the difference but both seem to work)
                        I have compiled Kannel 1.4.2 on my Mac but
                        haven't properly configured and used it as a
                        SMSC to send and receive messages. I plan on
                        recompling with Kannel 1.4.3 as the bug report
                        suggests.
                        I also have php scripts setup to receive the
                        HTTP GET requests.


                    There seems to be a confusion here. I presume you
                    refer to DLRs (SMS delivery confirmations).
                    Otherwise kannel doesn't have php builtin and can
                    only use php to send HTTP requests (Push) .


                Sorry for the confusion. the php is my script on my
                server set up to receive HTTP GET requests.



                        Here's what I  need Kannel to do:
                        (1) forward the received messages through a
                        HTTP GET across the internet;


                    Yes, through sms-service.

                Great.

                        (2) to run as a Mac daemon so I can sleep the
                        computer and it will still run.


                    Mac is Unix. I imagine that anything running
                    unattented will also run in sleep mode. This is
                    feature in Unix systems for the past 30 years
                    (daemons).

                Nice. I've used other daemons that run while in sleep
                mode and connect to the internet, so it would be great
                if I could get kannel to do the same.

                        (3) to tell me the signal strength of the
                        modem (i.e. how many 'bars' so I know I'm not
                        in a deadzone);


                    Dunno. Maybe someone else can help. But this is
                    not strictly a kannel issue. If the modem gets
                    garbled messages, kannel cannot help (GIGO).

                Yeah perhaps there's some AT commands I can send
                through kannel.

                        (4) automatically restart itself if it loses
                        connection to modem (I believe this is called
                        parachute mode);


                    No. It will restart only if process panics. But
                    not to worry. It has a queue. If it looses
                    connection to an SMSc, this SMSc is marked
                    inactive. Other SMSc connections can pickup the
                    traffic. In addition, kannel will try to reconnect
                    to the inactive SMSc, according parameters set in
                    the configuration.

                That's good. Does anyone have any practical experience
                with this? Does Kannel do a good job of detecting when
                the SMSc is down and reconnecting? (also, I'll read up
                on what exactly 'panic' means).

                        (5) and store messages received locally in a
                        database (I believe this done through an addon
                        called sqlbox; I use MAMP for a local instance
                        of MySQL but would use anything that would
                        work with this system).


                    I don't know MAMP, but yes, you can do that with
                    sqlbox. Other embedded choices are controlled
                    through "store-type" paramater in core
                    configuration and are "file" or "spool" (directory).

                Yeah that's great. Just flat files are fine too.

                        So I am hoping Kannel can hit a home run and
                        do all that! Please correct me if I'm wrong
                        and point me in the right direction on these 5
                        things to create this Kannel system.

                        Thanks.


                    Best of luck,
                    Nikos

                Thanks for your comment Nikos, I appreciate it.







Reply via email to