[asterisk-bugs] [JIRA] (ASTERISK-22599) Session timer : UAS (Asterisk) starts counting at Invite, UAC starts counting at 200 OK.
Rusty Newton (JIRA)
noreply at issues.asterisk.org
Thu Sep 26 16:57:04 CDT 2013
Rusty Newton created ASTERISK-22599:
---------------------------------------
Summary: Session timer : UAS (Asterisk) starts counting at Invite, UAC starts counting at 200 OK.
Key: ASTERISK-22599
URL: https://issues.asterisk.org/jira/browse/ASTERISK-22599
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: Channels/chan_sip/General
Affects Versions: 1.8.23.0, 1.8.23.1
Reporter: i2045
10.3.25.10 = SIPp (UAC initiating the call) - A leg
10.1.0.19 = Asterisk 1.8.23.1 (UAS)
212.79.111.155 = An echo test client to terminate this call - B leg
- 18:09:41
An Invite from UAC (SIPp) to UAS (Asterisk 1.8.23.1) with:
Session-Expires: 90;refresher=uac.
Min-SE: 90.
Supported: timer.
Asterisk now starts counting the session timer:
[Sep 18 18:09:41] DEBUG[21544]: chan_sip.c:23505 handle_request_invite: Incoming INVITE with 'timer' option supported
[Sep 18 18:09:41] DEBUG[21544]: chan_sip.c:23514 handle_request_invite: INVITE also has "Session-Expires" header.
[Sep 18 18:09:41] DEBUG[21544]: chan_sip.c:26871 parse_session_expires: Session-Expires: 90
[Sep 18 18:09:41] DEBUG[21544]: chan_sip.c:26884 parse_session_expires: Refresher: UAC
[Sep 18 18:09:41] DEBUG[21544]: chan_sip.c:23531 handle_request_invite: INVITE also has "Min-SE" header.
[Sep 18 18:09:41] DEBUG[21544]: chan_sip.c:26841 parse_minse: Received Min-SE: 90
[Sep 18 18:09:41] DEBUG[21544]: chan_sip.c:26755 start_session_timer: Session timer started: 1 - 24 at 10.3.25.10 60000ms
This means that Asterisk is terminating the session if no refresh was received before: 18:09:41 + (2/3 * 90) = 18:10:41.
- 18:09:41
Asterisk responds to the UAC: "100 Trying" followed by "180 Ringing".
- 18:10:01
Asterisk responds "200 OK" to the UAC with:
Supported: replaces, timer.
Session-Expires: 90;refresher=uac.
Require: timer.
The UAC now starts counting the session timer.
20 seconds later than Asterisk.
This means that the UAC plans to refresh the session at: 18:10:01 + (90 / 2) = 18:10:46.
5 seconds later than Asterisk.
- 18:10:41
Asterisk terminates the session as planned, 60 seconds after receiving the initial Invite.
[Sep 18 18:10:41] DEBUG[21544]: chan_sip.c:26771 proc_session_timer: Session timer expired: 1 - 24 at 10.3.25.10
[Sep 18 18:10:41] WARNING[21544]: chan_sip.c:26792 proc_session_timer: Session-Timer expired - 24 at 10.3.25.10
[Sep 18 18:10:41] DEBUG[21544]: channel.c:2735 ast_softhangup_nolock: Soft-Hanging up channel 'SIP/infromclient-00000000'
[Sep 18 18:10:41] DEBUG[21544]: chan_sip.c:26812 proc_session_timer: Session timer stopped: 1 - 24 at 10.3.25.10
[Sep 18 18:10:41] DEBUG[21544]: chan_sip.c:26707 stop_session_timer: Session timer stopped: -1 - 24 at 10.3.25.10
- 18:10:46
The UAC would send the session refresh at this time (45 seconds after receiving the "200 OK") but the session is already gone so this doesn't happen...
This issue was not present in Asterisk 1.8.22.0.
I tested with Asterisk 1.8.23.1 + make samples and modified only sip.conf and extensions.conf, both are attached.
Also Asterisk debug logging and the SIP signalling is attached.
Reading RFC4028 i think the UAC is right to start counting the session timer at the time of receiving the "200 OK".
Is this correct?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the asterisk-bugs
mailing list