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@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