<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>