Probably OPENSER-ONE does not recognize the BYE as targeted to itself
Why would a BYE be targeted at a middle-man?
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