[Users] thought exercise

samuel samu60 at gmail.com
Thu Sep 28 19:01:26 CEST 2006


2006/9/28, Mark Kent <mark at noc.mainstreet.net>:
> >> Probably OPENSER-ONE does not recognize the BYE as targeted to itself
>
> Why would a BYE be targeted at a middle-man?

Because OPENSER-ONE is not a middle-man, is the proxy responsible for
the AoR present in the Route|Req-URI and therefore it must not relay
it but recognize it as a request targeted to one of its users.

It must process Route Header And after that check the Req URI and send
the BYE to the right user, probably using lookup and related...

It shouldn't be that way because the BYE should contain the Contact:
header present in the session initiation INVITE and therefore not

           sip:JoeUser at OPENSER-ONE:5060

BUT:

          sip:JoeUser at JoesUAIP....

Luck!!
Samuel.
>
> I acknowledge that I don't check for this in my BYE handler :-)
>
> I did add this as a debug aid:
>
>   if (is_uri_host_local()) {
>      xlog("L_ERR", "relay to myself? $rm $ru $si $fu\n");
>   }
>
> in my stateful relay handler:
>
> route[1] {
>   if (is_uri_host_local()) {
>      xlog("L_ERR", "relay to myself? $rm $ru $si $fu\n");
>   }
>      t_on_reply("1");
>      if (!t_relay()) {
>         if (method=="INVITE" && isflagset(6)) {
>           unforce_rtp_proxy();
>         }
>         sl_reply_error();
>      }
> }
>
> but, obviously without understanding, I changed that to:
>
> route[1] {
>   if (is_uri_host_local()) {
>      xlog("L_ERR", "relay to myself? $rm $ru $si $fu\n");
>      sl_send_reply("200", "OK");
>   } else {
>      t_on_reply("1");
>      if (!t_relay()) {
>         if (method=="INVITE" && isflagset(6)) {
>           unforce_rtp_proxy();
>         }
>         sl_reply_error();
>      }
>   }
> }
>
> and that seems to snuff this out, but I also have the feeling that
> I'm just covering up for a flaw elsewhere.
>
> Thanks,
> -mark
>




More information about the Users mailing list