[Devel] Sending stored messages based on time

Daniel-Constantin Mierla daniel at voice-system.ro
Mon Jan 30 13:32:44 CET 2006


Hello,

I introduced the reminder functionality submitted by your patch in the 
development version of msilo. I changed the patch to integrate better 
with the module and I introduced several other functionalities. Here is 
the description.

There is a new column "snd_time" in the table silo which specifies the 
time after which the message can be delivered. If the value is 0, then 
the message is not delivered based on timer.

If the message is not successfully delivered at the specified time, then 
the snd_time is set to 0, to avoid flooding the network, if the 
destination is not online. It will be delivered first time when he 
registers.

The time for delivery can be set via AVP, the AVP must contain a value 
in the format YYYYMMDDHHMMSS. The id of the avp can be set via module 
parameter.

Here is a cfg example which can be used to set a reminder service:

modparam("msilo","reminder","sip:reminder at test.org")
modparam("msilo","send_time",10)
modparam("msilo","userid_avp",34)
modparam("msilo","snd_time_avp",35)


route {
....
         if(method=="MESSAGE")
        {
               if(uri=~"sip:4442[0-9]{13}@")
               {
                        strip(3);
                        avp_write("$ruri/username", "i:35");
                        avp_write("$from", "i:34");
                        m_store("0", "0" /*do not send info message back*/);
                        sl_send_reply("200", "ok");
                        exit;
               };
        };
.....
}

The documentation has been updated:
http://openser.org/docs/modules/1.1.x/msilo.html

Please note that you have to add the snd_time column to table silo (see 
the definition in readme) and increase the version to 4 in table 'version'.

Testing and feedback are welcome.

Cheers,
Daniel





More information about the Devel mailing list