[OpenSER-Users] question about the INVITE method

Iñaki Baz Castillo ibc at in.ilimit.es
Tue Nov 13 09:55:43 CET 2007


El Tuesday 13 November 2007 09:12:26 程千 escribió:
> hi:
>
>   I isntall the openser-1.2.2-notls under the centos5.
>   I config the INVITE method like this:
>
>
>  if (is_method("INVITE"))
>  {
>   # enable Record-Route
>   record_route();
>
>   # Is this to one of our numbers
>   if (lookup("location"))
>   {
>    append_hf("P-hint: userloc applied\r\n");
>   }
>   else
>   {
>    sl_send_reply("404","Not found");
>   }
>  }
>   route(1);
>
> ...
>
> route[1]
> {
>  if (isflagset(2))
>  {
>   if (is_method("INVITE"))
>   {
>    t_on_reply("1");
>    t_on_failure("1");
>    use_media_proxy();
>   } else if (is_method("BYE|CANCEL")) {
>    end_media_session();
>   }
>  }
>
>  # send it out now; use stateful forwarding as it works reliably
>  # even for UDP2TCP
>  if (!t_relay())
>  {
>   sl_reply_error();
>  }
>  exit;
> }
>
> But when the end ua is not online,the ser proxy seems to be in a loop lock.

It's logic, you should add "exit;" after line:
  sl_send_reply("404","Not found");

If not, because URI is the original AOR (lookup didn't find a contact URI) 
then route[1] will do "t_relay" so the INVITE resolvs its destination to 
proxy itself and a loop is generated.


>   Thanks a lot!



-- 
Iñaki Baz Castillo
ibc at in.ilimit.es




More information about the Users mailing list