<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
/* Style Definitions */
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;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></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]-->
</head>
<body lang="DE" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I am working on fixing ASTERISK-29655 [1] and have identified a possible cause<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">in res_pjsip_session.c.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">When a caller sends an Invite with a video stream set to sendonly, the video<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">topology of the ast_sip_session of both the caller and the callee is initially<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">set to recvonly. After reverting ASTERISK-28783 (which seems to cause this<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">behavior), the video topology of both caller and callee is sendrecv and we have<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">one-way video as expected.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I have tried flipping the topology of the outgoing call leg to sendonly (in<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ast_sip_session_create_outgoing()) but both streams are nonetheless set<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">inactive in res_pjsip_session:handle_negotiated_sdp_session_media() after<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">SDP negotiation. Specifically, the first call leg is set inactive with the<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">following backtrace:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">res_pjsip_session.so!handle_negotiated_sdp_session_media() (res/res_pjsip_session.c:989)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">res_pjsip_session.so!handle_negotiated_sdp() (res/res_pjsip_session.c:1139)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">res_pjsip_session.so!session_inv_on_media_update() (res/res_pjsip_session.c:5363)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">libasteriskpj.so.2!inv_negotiate_sdp() (third-party/pjproject/source/pjsip/src/pjsip-ua/sip_inv.c:1969)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">libasteriskpj.so.2!process_answer() (third-party/pjproject/source/pjsip/src/pjsip-ua/sip_inv.c:2281)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">libasteriskpj.so.2!pjsip_inv_answer() (third-party/pjproject/source/pjsip/src/pjsip-ua/sip_inv.c:2450)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">chan_pjsip.so!answer() (channels/chan_pjsip.c:700)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">The streams are set inactive because in inv->neg->active_local_sdp the media<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">stream is inactive.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">My question is, how is the active_local_sdp stream state set?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I have a feeling that some stream states are mixed up which causes the streams<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">to be set on hold (inactive) during SDP negotiation.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Generally any information on this issue is appreciated as I am not fully<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">familiar with all of the details of how the SDP negotiation happens in<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Asterisk.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thank you,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Max<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[1]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29655">https://issues.asterisk.org/jira/browse/ASTERISK-29655</a><o:p></o:p></span></p>
</div>
</body>
</html>