<p><a href="https://gerrit.asterisk.org/c/asterisk/+/15630">View Change</a></p><p>1 comment:</p><ul style="list-style: none; padding: 0;"><li style="margin: 0; padding: 0;"><p><a href="https://gerrit.asterisk.org/c/asterisk/+/15630/5/res/res_pjsip/pjsip_message_filter.c">File res/res_pjsip/pjsip_message_filter.c:</a></p><ul style="list-style: none; padding: 0;"><li style="margin: 0; padding: 0 0 0 16px;"><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/c/asterisk/+/15630/5/res/res_pjsip/pjsip_message_filter.c@242">Patch Set #5, Line 242:</a> </p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;"><pre style="font-family: monospace,monospace; white-space: pre-wrap;">if ((tdata->tp_info.transport->key.type != PJSIP_TRANSPORT_UDP) &&<br>              (tdata->tp_info.transport->key.type != PJSIP_TRANSPORT_UDP6)) {<br>         sel.type = PJSIP_TPSELECTOR_LISTENER;<br>         sel.u.listener = tdata->tp_info.transport->factory;<br>             prm.tp_sel = &sel;<br>        }<br></pre></blockquote></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">Are we sure this works for both outgoing requests and outgoing responses? […]</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">I'm not entirely sure whether you mean whether `tdata->tpinfo.transport` is always accessible or whether applying the found factory's bind address is valid for requests and responses.</p><p style="white-space: pre-wrap; word-wrap: break-word;">---</p><p style="white-space: pre-wrap; word-wrap: break-word;">Concerning the former:<br>This function, `filter_on_tx_message` is passed as the module's .on_rx_request and .on_tx_response callback. Both are called by pjsip's `endpt_on_tx_msg` function, which in turn is called by the respective transport's `pjsip_transport_send()` (and this is, as far as I can tell) the only call site. `tdata->tp_info.transport` is always set there.<br>Hence, we can access it here.</p><p style="white-space: pre-wrap; word-wrap: break-word;">---</p><p style="white-space: pre-wrap; word-wrap: break-word;">Concerning the latter:</p><p style="white-space: pre-wrap; word-wrap: break-word;">I think it works for both.</p><p style="white-space: pre-wrap; word-wrap: break-word;">The function touches the Via, From, and Contact headers, the former two are only changed for requests. I've checked INVITE, INFO, OPTIONS, REGISTER and BYE and all three headers seem to be correct in all of those requests.</p><p style="white-space: pre-wrap; word-wrap: break-word;">For responses I could observe the Contact header only in<br>1) "Session Progress" / "Ringing" in reply to an inbound INVITE<br>2) "OK" in reply to an inbound INVITE<br>3) "OK" in reply to an inbound REGISTER</p><p style="white-space: pre-wrap; word-wrap: break-word;">In those it seems correct (1) and 2) showing the bind port of the respective transport). 3) shows the ephemeral port (instead of the bind port). This, however, is the case without my patch as well, and conclusive with the peer's AOR (see below), therefore I did not attempt to change it.</p><p style="white-space: pre-wrap; word-wrap: break-word;">registration of phone 9099<br>>    Request-Line: REGISTER sip:10.193.0.1:9060 SIP/2.0<br>>        Via: SIP/2.0/TCP 10.193.10.120:5060;branch=z9hG4bK478793071;rport;alias<br>>        From: <sip:9099@10.193.0.1:9060>;tag=1851488811<br>>        To: <sip:9099@10.193.0.1:9060><br>>        CSeq: 2218 REGISTER<br>>        Contact: <sip:9099@10.193.10.120:5060;transport=tcp>;reg-id=5;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000B82BEE60E>"<br>>        Max-Forwards: 70<br>>        User-Agent: Grandstream GXV3240 1.0.3.227<br>>        Expires: 3600<br>> <br>> <br>>    Status-Line: SIP/2.0 200 OK<br>>        Via: SIP/2.0/TCP 10.193.10.120:5060;rport=59203;received=10.193.10.120;branch=z9hG4bK478793071;alias<br>>       From: <sip:9099@10.193.0.1>;tag=1851488811<br>>       To: <sip:9099@10.193.0.1>;tag=z9hG4bK478793071<br>>       Contact: <sip:9099@10.193.10.120:59203;transport=TCP>;expires=3599<br>>       Expires: 3600</p><p style="white-space: pre-wrap; word-wrap: break-word;">the phone's aor<br>>       Aor:  9099                                                 1<br>>    Contact:  9099/sip:9099@10.193.10.120:59203;transport= 4ebcb43bbd NonQual         nan</p></li></ul></li></ul><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/15630">change 15630</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/15630"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 16 </div>
<div style="display:none"> Gerrit-Change-Id: I598e60257a7f92b29efce1fb3e9a2fc06f1439b6 </div>
<div style="display:none"> Gerrit-Change-Number: 15630 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: Florian Floimair <f.floimair@commend.com> </div>
<div style="display:none"> Gerrit-Reviewer: Bernd Zobl <b.zobl@commend.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-Comment-Date: Mon, 03 May 2021 14:37:20 +0000 </div>
<div style="display:none"> Gerrit-HasComments: Yes </div>
<div style="display:none"> Gerrit-Has-Labels: No </div>
<div style="display:none"> Comment-In-Reply-To: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: comment </div>