[Serusers] setflag question

Zeus Ng zeus.ng at isquare.com.au
Thu Sep 30 02:51:28 CEST 2004


In your failure route, add:

  if (t_check_status("408|48[0|6]" /* or whatever status your want */)) {
      voicemail routine
  }

This will enable voicemail and account CANCEL request in your missed call.

Zeus

> -----Original Message-----
> From: serusers-bounces at lists.iptel.org 
> [mailto:serusers-bounces at lists.iptel.org] On Behalf Of Java Rockx
> Sent: Thursday, 30 September 2004 12:01 AM
> To: 'ser users'
> Subject: RE: [Serusers] setflag question
> 
> 
> Hello All.
> 
> I may have stumbled upon the problem. It has to do with not 
> properly handling CANCEL messages.
> 
> In my ser.cfg I have:
> 
> modparam("acc", "db_flag", 1)
> modparam("acc", "db_missed_flag", 1)
> modparam("acc", "log_fmt", "fisum")
> modparam("acc", "report_ack", 1)
> modparam("acc", "log_level", 1)
> modparam("acc", "failed_transactions", 1)
> modparam("acc", "report_cancels", 1) 
> modparam("acc|auth_db|domain|group|uri_db|usrloc", "db_url",
> "mysql://ser:pwd@sipdb01.mycompany.com/ser")
>                                                               
>                  
>                                                                
> 
> route {
>    ... the usual stuff here
> 
>    # BUSY and NOANSWER go to voice mail
>    t_on_failure("1");
> 
>    # Make sure we handle nathelper stuff
>    t_on_reply("1");
> 
>    # Enable accounting for this transaction
>                                                               
>                  
>                                                               
>     setflag(1);
> 
>   if (!t_relay()) {
>       sl_reply_error();
>   };
> }
> 
> failure_route[1] {
>                                                               
>                  
>                                                                
>   log(1, "Failover to voicemail");
>                                                               
>                  
>                                                                 
> rewritehostport("vm01.mycompany.com:5060");
>   append_branch();
>   append_urihf("CC-Diversion: ", "\r\n");
>                                                               
>                  
>                                                               
>    t_relay(); }
> 
> onreply_route[1] {
>                                                               
>                  
>                                                                
>   if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
>     fix_nated_contact();
>     force_rtp_proxy();
>   } else if (nat_uac_test("1")) {
>     fix_nated_contact();
>   };
> }
> 
> 
> I'm thinking that the problem is that a BUSY and CANCEL will 
> both follow the same logic and execute failure_route[1]. I 
> don't want CANCEL messages to do this because 
> failure_route[1] is intended for sending BUSY or NOANSWER 
> replies to the voicemail server.
> 
> How can I determine if the negative value returned by 
> t_relay() is caused by a CANCEL versus a BUSY message?
> 
> Regards,
> Paul
> 




More information about the sr-users mailing list