<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">&lt;<a href="mailto:razvan@opensips.org" target="_blank">razvan@opensips.org</a>&gt;</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&#39;s no way to recover from a rejected reINVITE.<br>
        Actually the problem is a bit deeper and I don&#39;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&amp;cm_type=link&amp;cm_link=65f31eb4-983e-4f92-bfef-1acb9dfcef3c&amp;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&amp;cm_type=link&amp;cm_link=655752ea-cb3a-434b-b241-a5c486c33b11&amp;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&#39;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(&quot;application/sdp&quot;))  {</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 == &quot;INVITE&quot;)
                {</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(&quot;frocl&quot;);</font></div>
          </div>
          <div>
            <div><font face="monospace">               
                 t_on_reply(&quot;1&quot;);</font></div>
          </div>
          <div>
            <div><font face="monospace">         } else if (method ==
                &quot;ACK&quot;) {</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(&quot;frocl&quot;);</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 == &quot;INVITE&quot;)
                {</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(&quot;2&quot;);</font></div>
          </div>
          <div>
            <div><font face="monospace">         } else {</font></div>
          </div>
          <div>
            <div><font face="monospace">               
                 t_on_reply(&quot;1&quot;);</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(&quot;application/sdp&quot;)) {</font></div>
          </div>
          <div>
            <div><font face="monospace">                if ($DLG_status)
                {      # Update</font></div>
          </div>
          <div>
            <div><font face="monospace">                       
                rtpproxy_answer(&quot;frocl&quot;);</font></div>
          </div>
          <div>
            <div><font face="monospace">                } else {        
                       # New</font></div>
          </div>
          <div>
            <div><font face="monospace">                       
                rtpproxy_answer(&quot;froc&quot;);</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(&quot;application/sdp&quot;)) {</font></div>
          </div>
          <div>
            <div><font face="monospace">               
                rtpproxy_offer(&quot;frocl&quot;);</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&#39;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">&lt;<a href="mailto:alipey@gmail.com" target="_blank">alipey@gmail.com</a>&gt;</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&#39;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&amp;cm_type=link&amp;cm_link=8cb3bf89-22b0-41ce-b966-be6d39cbf9c8&amp;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&amp;cm_type=link&amp;cm_link=a8b09eef-0bbb-47f8-a71e-ad17e0e94859&amp;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&amp;cm_type=link&amp;cm_link=46daedd8-b7b3-451e-9d4b-adafaf98c6ed&amp;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&amp;cm_type=open&amp;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&amp;cm_type=open&amp;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&amp;cm_type=open&amp;cm_user_email=alipey@gmail.com" style></font></div>