<div dir="ltr"><div class="gmail_extra">Hi Razvan,</div><div class="gmail_extra"><br></div><div class="gmail_extra">Thank you for your response and it makes sense. </div><div class="gmail_extra"><br></div><div class="gmail_extra">I will search for a work around for media re-negotiation rejection and will post my results here.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Best regards,</div><div class="gmail_extra">Ali Pey</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 14, 2014 at 4:45 AM, Răzvan Crainea <span dir="ltr"><<a href="mailto:razvan@opensips.org" target="_blank">razvan@opensips.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div><tt>Hi, Ali!<br>
<br>
The reINVITES should be handled similar to INVITEs, with an
offer for the request and an answer for the reply. But indeed,
there's no way to recover from a rejected reINVITE.<br>
Actually the problem is a bit deeper and I don't really know how
this should be handled. It depends on whether the client sends
the re-invite to create a new media stream, or update the old
one. In the first case, RTPProxy should create a new media
stream and if that one fails, only delete the latter one - this
is not supported by RTPProxy. In the second case, the entire
media should be seized, and this is how it works now :).<br>
<br>
Best regards,<br>
</tt>
<pre cols="72">Răzvan Crainea
OpenSIPS Solutions
<a href="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=link&cm_link=65f31eb4-983e-4f92-bfef-1acb9dfcef3c&cm_destination=http://www.opensips-solutions.com" target="_blank"></a><a href="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=link&cm_link=655752ea-cb3a-434b-b241-a5c486c33b11&cm_destination=http://www.opensips-solutions.com">www.opensips-solutions.com</a></pre><div><div class="h5">
On 11/14/2014 03:30 AM, Jeff Pyle wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">Ali,
<div><br>
</div>
<div>This is what I use within loose_route() to handle
rtpproxy. In my particular case I'm bridging between two
interfaces.</div>
<div><br>
</div>
<div><br>
</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div>
<div>
<div>
<div><font face="monospace">if
(has_body("application/sdp")) {</font></div>
</div>
</div>
</div>
<div>
<div><font face="monospace"> # Begin rtp session
update gyrations</font></div>
</div>
<div>
<div><font face="monospace"> if (method == "INVITE")
{</font></div>
</div>
<div>
<div><font face="monospace"> # INVITE w/
SDP, so early neg</font></div>
</div>
<div>
<div><font face="monospace"> # This is
offer, reply is answer</font></div>
</div>
<div>
<div><font face="monospace">
rtpproxy_offer("frocl");</font></div>
</div>
<div>
<div><font face="monospace">
t_on_reply("1");</font></div>
</div>
<div>
<div><font face="monospace"> } else if (method ==
"ACK") {</font></div>
</div>
<div>
<div><font face="monospace"> # ACK w/ SDP,
so late neg (done now)</font></div>
</div>
<div>
<div><font face="monospace"> # This is
answer</font></div>
</div>
<div>
<div><font face="monospace">
rtpproxy_answer("frocl");</font></div>
</div>
<div>
<div><font face="monospace"> } </font></div>
</div>
<div>
<div><font face="monospace"> } else {</font></div>
</div>
<div>
<div><font face="monospace"> if (method == "INVITE")
{</font></div>
</div>
<div>
<div><font face="monospace"> # INVITE w/o
SDP, so late neg</font></div>
</div>
<div>
<div><font face="monospace"> # This is
nothing, reply is offer, ACK is answer (~5 lines up)</font></div>
</div>
<div>
<div><font face="monospace">
t_on_reply("2");</font></div>
</div>
<div>
<div><font face="monospace"> } else {</font></div>
</div>
<div>
<div><font face="monospace">
t_on_reply("1");</font></div>
</div>
<div>
<div><font face="monospace"> }</font></div>
</div>
<div>
<div><font face="monospace"> }</font></div>
</div>
</blockquote>
<div><br>
</div>
<div><br>
</div>
<div>And then:</div>
<div><br>
</div>
<div><br>
</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div>
<div><font face="monospace">onreply_route[1] { # Manage
content as necessary - early negotiation</font></div>
</div>
<div>
<div><font face="monospace"> if
(has_body("application/sdp")) {</font></div>
</div>
<div>
<div><font face="monospace"> if ($DLG_status)
{ # Update</font></div>
</div>
<div>
<div><font face="monospace">
rtpproxy_answer("frocl");</font></div>
</div>
<div>
<div><font face="monospace"> } else {
# New</font></div>
</div>
<div>
<div><font face="monospace">
rtpproxy_answer("froc");</font></div>
</div>
<div>
<div><font face="monospace"> }</font></div>
</div>
<div>
<div><font face="monospace"> }</font></div>
</div>
<div>
<div><font face="monospace">}</font></div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div><font face="monospace">onreply_route[2] { # Manage
content as necessary - late negotiation - update</font></div>
</div>
<div>
<div><font face="monospace"> if
(has_body("application/sdp")) {</font></div>
</div>
<div>
<div><font face="monospace">
rtpproxy_offer("frocl");</font></div>
</div>
<div>
<div><font face="monospace"> }</font></div>
</div>
<div>
<div><font face="monospace">}</font></div>
</div>
</blockquote>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>This does not handle rejected reinvites. I don't know how
to solve that one. Otherwise, it works well, although in some
spots it may be overkill.</div>
<div><br>
</div>
<div><br>
</div>
<div>- Jeff</div>
<div><br>
</div>
<div><br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Nov 13, 2014 at 5:13 PM, Ali
Pey <span dir="ltr"><<a href="mailto:alipey@gmail.com" target="_blank">alipey@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hello,
<div><br>
</div>
<div>What's the best way of handling rtpproxy with
re-invites? </div>
<div><br>
</div>
<div>Should I do unforce and then offer/answer? What if
the re-invite gets rejected?</div>
<div><br>
</div>
<div>Any help appreciated.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Ali Pey</div>
<div><br>
</div>
</div>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=link&cm_link=8cb3bf89-22b0-41ce-b966-be6d39cbf9c8&cm_destination=http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=link&cm_link=a8b09eef-0bbb-47f8-a71e-ad17e0e94859&cm_destination=http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=link&cm_link=46daedd8-b7b3-451e-9d4b-adafaf98c6ed&cm_destination=http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br></blockquote></div><br></div><img class="cm-tracker" src="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=open&cm_user_email=alipey@gmail.com" width="0" height="0" style="border:0; width:0px; height:0px;"><img class="cm-tracker" src="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=open&cm_user_email=alipey@gmail.com" width="0" height="0" style="border:0; width:0px; height:0px;"><font class="cm-tracker" face="https://contactmonkey.com/api/v1/tracker?cm_session=e1c3197b-a7bb-42f0-9b6f-814623288ae7&cm_type=open&cm_user_email=alipey@gmail.com" style></font></div>