[Serusers] Missed Call Return
Iqbal
iqbal at gigo.co.uk
Tue Oct 11 17:10:19 CEST 2005
nice, how do you pick the last number only, or would it be better when
you stored a missed call, that you deleted other entries in the table.
Iqbal
Andreas Granig wrote:
> Iqbal wrote:
>
>> I never got round to tying this, just got bogged down with other
>> configs, if you have any luck give me a shout, I might take a look
>> towards the end of the week
>
>
> I played around a little with it and got it to work with SER 0.9.x.
> Here is the config snippet (assuming you use 1000 at your.domain for
> callbacks):
>
> modparam("avpops", "use_domain", 1)
> modparam("avpops", "avp_url", "mysql://ser:heslo@localhost/ser")
> modparam("avpops", "avp_table", "dummy") # it complains if not set
> modparam("avpops", "avp_aliases","callback=i:995")
>
> route {
>
> # the usual stuff like basic checks, NAT fixes and proxy
> # authentication goes here...
>
> # check for callback
> if(uri =~ "^sip:1000@") {
> # load callback-avp from callback table
> if(avp_db_load("$from", "$callback/callback")) {
> avp_pushto("$ruri", "$callback");
> avp_db_delete("$from", "$callback/callback");
> avp_delete("$callback");
> } else {
> # announcement that no callback available or a 4xx reply
> # goes here...
> }
> }
>
> # lookup aliases and location here...
>
> # if it's a call to a local user, prepare for storing callback
> t_on_failure("2");
>
> # then do some additional stuff and t_relay() here...
> }
>
> failure_route[2] {
> # set callback if callee is busy or N/A
> if(t_check_status("480|486") && method == "INVITE") {
>
> # store caller into callback table
> avp_write("$from", "$callback");
> avp_db_store("$ruri", "$callback/callback");
> avp_delete("$callback");
> }
> }
>
>
> And here's the callback table for MySQL:
>
> CREATE TABLE `callback` (
> `uuid` varchar(64) NOT NULL default '',
> `username` varchar(100) NOT NULL default '',
> `domain` varchar(128) NOT NULL default '',
> `attribute` varchar(32) NOT NULL default '',
> `value` varchar(128) NOT NULL default '',
> `type` int(11) NOT NULL default '0',
> `modified` timestamp NOT NULL default CURRENT_TIMESTAMP on update
> CURRENT_TIMESTAMP,
> PRIMARY KEY (`username`,`domain`,`attribute`,`value`)
> );
>
>
> Hth,
> Andy
>
> .
>
More information about the sr-users
mailing list