[Serusers] tm module question

Christopher Crawford crawford_c at pannaway.com
Tue Jan 18 18:16:25 CET 2005


Hello.
 
I am having configuration issues with ser when dealing with users who
have voicemail and desire a timeout after a set number of rings, and
those who don't have voicemail and desire a very long ring count.  Here
is the example:
 
Phone A has voicemail
Phone B does not have voicemail
 
Works:
Phone B calls A.  A does not answer.  After a set period of time
(fr_inv_timer=24),  the user is proxy'ed to voicemail.
 
Doesn't work:
Phone A calls B. B does not answer.  After a set period of time, the
proxy responds with a 408 and the transaction is CANCELed .  
 
The example above is a case when I just want to proxy the INVITE to a
user without setting a timer, stateless.  I would consider sending the
original INVITE using forward() for users without voicemail, but the
parameters require a port and IP, of which exists in ser.location and I
may fork to multiple contacts for the user.
 
In addition, when responding with a 408, how does the proxy
differentiate between a timed out INVITE (after a set of retries) and a
transactional timeout (that had a provisional response)?
 
Looking forward to the Paris show (and the food and the wine and...  :->
)
 
Regards,
 
Chris
 
modparam("tm", "fr_timer", 12) 
modparam("tm", "fr_inv_timer", 24) 
modparam("tm", "wt_timer", 180)
 
 
route[7]
{
     setflag(5);        
     if ( is_user_in("Request-URI", "mail" ) )
     {
        t_on_failure("5");  /*_media_server_info_*/
     }
     else
     {
            log( "------------------------------------>route7 \n");
            t_on_failure("1");  /*_media_server_info_*/
     }
}
 
failure_route[5] 
{
      if ( is_user_in("Request-URI", "mail" ) && ( t_check_status( "486"
) || t_check_status( "600" ) || t_check_status( "408" ) ) )
        {
            rewritehostport("66.115.232.216:5060");
/*_media_server_info_*/
            append_branch(); 
      
            if( t_check_status( "486" ) || t_check_status( "600" ) )
            {
                  append_urihf("Diversion: ", " ; reason=user-busy
\r\n");
            }
            else if( t_check_status( "408" ) )
            {
                  append_urihf("Diversion: ", " ; reason=unavailable
\r\n");
            }
 
            append_hf("P-hint: Forwarding to Voicemail Media Server\n");
            t_relay();
      } 
      else if ( is_user_in("Request-URI", "mail" ) )
      {
            t_relay();
      }
      else if ( !is_user_in("Request-URI", "mail" ) || t_check_status(
"408" ) )
      {
            log( "------------------------------------>failureroute5
conditional \n");
            t_on_failure("1");;
      }
            log( "------------------------------------>failureroute5
\n");
      break ;
}
 
failure_route[ 1 ]
{
if( t_check_status( "408" ) || t_check_status( "400" ) )
{
            log( "------------------------------------>failureroute1
\n");
append_branch( );
t_on_failure("1");
}
t_relay();
 
break;
}
 
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20050118/bbfe21db/attachment.htm>


More information about the sr-users mailing list