<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 03/03/2022 08.47, [EXT] Rhys
      Hanrahan wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:412777D9-C9B0-4881-B3DC-8BC027A318D1@nexusone.com.au">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <style>@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas",serif;
        mso-fareast-language:EN-US;}span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0cm;}ul
        {margin-bottom:0cm;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="EN-GB">Hi Richard,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-GB">Yes, from what I’ve seen
            in the logs there are multiple branches happening. One
            between Teams and Kamailio and one between Kamailio and
            Asterisk.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-GB">In terms of the
            rtpengine processing, I’ve tried lots of different
            variations, but right now I’ve got:<o:p></o:p></span></p>
        <ul style="margin-top:0cm" type="disc">
          <li class="MsoListParagraph"
            style="margin-left:0cm;mso-list:l0 level1 lfo1"><span
              lang="EN-GB">Rtpengine_manage() by itself for new branches
              and replies (MANAGE_BRANCH, MANAGE_REPLY)<o:p></o:p></span></li>
          <li class="MsoListParagraph"
            style="margin-left:0cm;mso-list:l0 level1 lfo1"><span
              lang="EN-GB">Rtpengine_manage(“RTP/AVP”) or
              rtpengine_manage(“RTP/SAVP”) essentially in request_route
              for the initial invites to/from Teams<o:p></o:p></span></li>
          <li class="MsoListParagraph"
            style="margin-left:0cm;mso-list:l0 level1 lfo1"><span
              lang="EN-GB">I do also have the stock NATMANAGE using
              rtpengine but there’s no NAT involved here so I don’t
              think it applies.<o:p></o:p></span></li>
        </ul>
        <div>
          <div>
            <p class="MsoNormal"><span
                style="color:black;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
            <p class="MsoNormal"><span
                style="color:black;mso-fareast-language:EN-GB">So as far
                as I can tell, I shouldn’t be calling rtpengine_manage
                multiple times. Is this bad to do? I did have previous
                configs where I was doing this. E.g. during RELAY I
                would call it with general options and then just modify
                AVP or SAVP in another section.<o:p></o:p></span></p>
            <p class="MsoNormal"><span
                style="color:black;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
            <p class="MsoNormal"><span
                style="color:black;mso-fareast-language:EN-GB">Interestingly,
                I noticed that a new branch is created just as I answer
                the call, and this is when it fails, so perhaps the
                issue is with how I’m handling new branches then? Below
                is a bit of a log to try and summarise what’s happening.
                Unfortunately it’s not logging the MS Teams side of the
                call except for the initial invite.</span></p>
          </div>
        </div>
      </div>
    </blockquote>
    <p>What usually happens (and this is a common mistake that can be
      confirmed by looking at the logs produced by rtpengine) is that
      rtpengine is invoked multiple times for the same invite (once in
      each branch) with different options, but without telling rtpengine
      that these are branches. From rtpengine's POV these invites are
      all in the same branch then, and the options used in a later
      invocation are simply overriding the options used in previous
      invocations. So when the last invocation was using plain RTP and
      then the reply is using SRTP belonging to a different invocations,
      then rtpengine would not know about the SRTP attributes any more.</p>
    <p>But without detailed logs this is just a speculation. You can see
      the actual signalling to rtpengine in the logs produced by
      rtpengine (especially with debug logging enabled). It's also
      possible that the signalling direction is reversed for example.<br>
    </p>
    <p>BTW we have a mailing list dedicated to rtpengine questions:
      <a class="moz-txt-link-freetext" href="https://rtpengine.com/mailing-list">https://rtpengine.com/mailing-list</a></p>
    <p>Cheers<br>
    </p>
  </body>
</html>