<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi All<div><br></div><div>We have a situation where FS seems not to behaving correctly with session timers.</div><div><br></div><div>Call originates from remote party with invite as per:</div><div><br></div><div><font class="Apple-style-span" color="#232323"><font class="Apple-style-span" style="font-size: 11px; " face="Courier"><font>INVITE</font><font class="Apple-style-span"> <a href="sip:+1234@1.2.3.4;user=phone">sip:+1234@1.2.3.4;user=phone</a> SIP/2.0 </font><br><font class="Apple-style-span">Max-Forwards: 69 </font><br><font class="Apple-style-span">Session-Expires: 3600;refresher=uac </font><br><font class="Apple-style-span">Min-SE: 600 </font><br><font class="Apple-style-span">Supported: timer, 100rel </font><br><font class="Apple-style-span">To: +1234 <<a href="sip:+1234@1.2.3.4;user=phone">sip:+1234@1.2.3.4;user=phone</a>> </font><br><font class="Apple-style-span">From: <<a href="sip:+5678@5.6.7.8;user=phone">sip:+5678@5.6.7.8;user=phone</a>>;tag=</font><font>381443</font><font class="Apple-style-span"> </font><br><font class="Apple-style-span">P-Asserted-Identity: <<a href="sip:+5678@5.6.7.8">sip:+5678@5.6.7.8</a>> </font><br><font class="Apple-style-span">Call-ID: </font><font>1333524918-9038500@xxxxx</font><br><font class="Apple-style-span">CSeq: 1 </font><font>INVITE</font><font class="Apple-style-span"> </font><br><font class="Apple-style-span">Allow: CANCEL, ACK, </font><font>INVITE</font><font class="Apple-style-span">, BYE, OPTIONS, INFO, PRACK, UPDATE </font><br><font class="Apple-style-span">Via: SIP/2.0/UDP 7.8.9.1:5060;branch=</font><font>z9hG4bKab17954781a678af6dfd6916593dc954</font><font class="Apple-style-span"> </font><br><font class="Apple-style-span">Contact: <<a href="sip:+5678@5.6.7.8:5060">sip:+5678@5.6.7.8:5060</a>> </font><br><font class="Apple-style-span">Expires: 330 </font><br><font class="Apple-style-span">Content-Type: application/sdp </font><br><font class="Apple-style-span">Accept: application/sdp </font><br><font class="Apple-style-span">Content-Length: 387 </font></font><br></font><br><br></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">Here you can see the UAC supporting timer, and specifying a session expires of 3600.</span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">FS responds with 100 trying (not relevant) then 180 runing (also not relevant) then 200OK as per:</span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; "><br></span></div><div><font class="Apple-style-span" style="font-size: 11px;" color="#232323" face="Courier">SIP/2.0 <font>200</font> OK <br>From: <sip:+5678@5.6.7.8;user=phone>;tag=381443 <br>To: +1234 <<a href="sip:+1234@1.2.3.4">sip:+1234@1.2.3.4</a>;user=phone>;tag=UrcX58SSF2Nrm <br>Call-ID: <font>1333524918-9038500@xxxxx</font><br>CSeq: 1 INVITE <br>Contact: <<a href="sip:+1234@1.2.3.4:5060;transport=udp">sip:+1234@1.2.3.4:5060;transport=udp</a>> <br>Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, NOTIFY <br>Supported: timer, precondition, path, replaces <br>Allow-Events: talk, hold, refer <br>Session-Expires: 3600;refresher=uac <br>Min-SE: 600 <br>Content-Type: application/sdp <br>Content-Disposition: session <br>Content-Length: 249 </font></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">So, here freeswitch is responding with the session-expires and refresher UAC. Then after 60 mins, the call is dropped as FS sends a Bye to the UAC because it does not receive a session refresh. Here is the Bye:</span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); "><br></span></div><div><font class="Apple-style-span" face="Courier"><font class="Apple-style-span" color="#222222">B</font><span class="Apple-style-span" style="font-size: 11px; "><font class="Apple-style-span" color="#232323">YE <a href="sip:+">sip:+</a></font></span></font><span class="Apple-style-span" style="color: rgb(35, 35, 35); font-family: Courier; font-size: 11px; "><a href="mailto:5678@5.6.7.8">5678@5.6.7.8</a></span><font class="Apple-style-span" face="Courier"><span class="Apple-style-span" style="font-size: 11px; "><font class="Apple-style-span" color="#232323">:5060 SIP/2.0 <br>Via: SIP/2.0/UDP 178.255.58.28;rport;branch=z9hG4bK2vm55Zp2D6vHm <br>Max-Forwards: 70 <br>From: +1234 <<a href="sip:+1234@1.2.3.4;user=phone">sip:+1234@1.2.3.4;user=phone</a>>;tag=UrcX58SSF2Nrm <br>To: <<a href="sip:+">sip:+</a></font></span></font><span class="Apple-style-span" style="color: rgb(35, 35, 35); font-family: Courier; font-size: 11px; "><a href="mailto:5678@5.6.7.8">5678@5.6.7.8</a></span><font class="Apple-style-span" face="Courier"><span class="Apple-style-span" style="font-size: 11px; "><font class="Apple-style-span" color="#232323">;user=phone>;tag=381443 <br>Call-ID: 1333524918-9038500@xxxxx<br>CSeq: 27563136 BYE <br>Contact: <<a href="sip:+1234@1.2.3.4:5060;transport=udp">sip:+1234@1.2.3.4:5060;transport=udp</a>> <br>Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, NOTIFY <br>Supported: timer, precondition, path, replaces <br>Reason: SIP;cause=408;text="Session timeout" <br>Content-Length: 0</font></span><font class="Apple-style-span" color="#222222"> </font></font></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">When we raised this with the UAC, their response is that the reason they are not refreshing the session is because FS should be sending a Require: timer; header in the response, so their UAC thinks that session timers are not in use.</span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">This is documented in para 9 of RFC4028:</span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-size: medium; "><pre style="word-wrap: break-word; white-space: pre-wrap; "><font class="Apple-style-span" face="Courier">If the refresher parameter in the Session-Expires header field in the
2xx response has a value of 'uac', the UAS MUST place a Require
header field into the response with the value 'timer'. This is
because the uac is performing refreshes and the response has to be
processed for the UAC to know this.</font></pre></span><div><br></div></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">It appears the FS is not doing this, but is hanging up the call anyway, so we are getting dropped calls that are around the 60 mins mark.</span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); "><br></span></div><div><font class="Apple-style-span" color="#222222">Whats everyones view on this? It would seem logical that if FS is not sending requires in the return 200, that the UAC will think that the session timers are not being used in the session, and therefore will not refresh it.</font></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; "><br></span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; ">Brgds</span></div><div><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Verdana, Arial, sans-serif; font-size: x-small; "><br></span></div></body></html>