dect
/
asterisk
Archived
13
0
Fork 0

Merge the changes from issue #10665 from the team/group/sip_session_timers branch.

This set of changes introduces SIP session timers support (RFC 4028).  In short,
this prevents stuck SIP sessions that were not properly torn down due to network
or endpoint failures during an established SIP session.

To quote some of the documentation supplied with the patch:
"The SIP Session-Timers is an extension of the SIP protocol that allows end-points and proxies to
refresh a session periodically. The sessions are kept alive by sending a RE-INVITE or UPDATE
request at a negotiated interval. If a session refresh fails then all the entities that support Session-
Timers clear their internal session state. In addition, UAs generate a BYE request in order to clear
the state in the proxies and the remote UA (this is done for the benefit of SIP entities in the path
that do not support Session-Timers)."

(closes issue #10665)
Reported by: rjain
Patches:
      chan_sip.c.1.diff uploaded by rjain (license 226)
      chan_sip.c.diff uploaded by rjain (license 226)
      sip.conf.sample.diff uploaded by rjain (license 226)
      proc_422_rsp_comment.diff uploaded by rjain (license 226)
      chan_sip.c.cache.diff uploaded by rjain (license 226)
      chan_sip.memalloc uploaded by rjain (license 226)
      chan_sip.memalloc.bugfix uploaded by rjain (license 226)

      Patches tracked in team/group/sip_session_timers, with some additional fixes
      by russell and oej.

Tested by: jtodd, rjain, loloski


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@98978 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
russell 2008-01-16 21:53:10 +00:00
parent 2c1160a1fa
commit fce3b5359b
3 changed files with 1067 additions and 50 deletions

View File

@ -17,6 +17,9 @@ nic.at - ENUM support in Asterisk
Paul Bagyenda, Digital Solutions - for initial Voicetronix driver development
John Todd, TalkPlus, Inc. and JR Richardson, Ntegrated Solutions. - for funding
the development of SIP Session Timers support.
=== WISHLIST CONTRIBUTERS ===
Jeremy McNamara - SpeeX support
Nick Seraphin - RDNIS support

File diff suppressed because it is too large Load Diff

View File

@ -236,6 +236,28 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls
; when we're on hold (must be > rtptimeout)
;rtpkeepalive=<secs> ; Send keepalives in the RTP stream to keep NAT open
; (default is off - zero)
;--------------------------- SIP Session-Timers (RFC 4028)------------------------------------
; SIP Session-Timers provide an end-to-end keep-alive mechanism for active SIP sessions.
; This mechanism can detect and reclaim SIP channels that do not terminate through normal
; signaling procedures. Session-Timers can be configured globally or at a user/peer level.
; The operation of Session-Timers is driven by the following configuration parameters:
;
; * session-timers - Session-Timers feature operates in the following three modes:
; originate : Request and run session-timers always
; accept : Run session-timers only when requested by other UA
; refuse : Do not run session timers in any case
; The default mode of operation is 'accept'.
; * session-expires - Maximum session refresh interval in seconds. Defaults to 1800 secs.
; * session-minse - Minimum session refresh interval in seconds. Defualts to 90 secs.
; * session-refresher - The session refresher (uac|uas). Defaults to 'uas'.
;
;session-timers=originate
;session-expires=600
;session-minse=90
;session-refresher=uas
;--------------------------- SIP DEBUGGING ---------------------------------------------------
;sipdebug = yes ; Turn on SIP debugging by default, from
; the moment the channel loads this configuration
@ -616,13 +638,14 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls
; videosupport videosupport
; maxcallbitrate maxcallbitrate
; rfc2833compensate mailbox
; busylevel
; template
; fromdomain
; regexten
; fromuser
; host
; port
; session-timers busylevel
; session-expires
; session-minse template
; session-refresher fromdomain
; regexten
; fromuser
; host
; port
; qualify
; defaultip
; defaultuser
@ -633,10 +656,15 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls
; rfc2833compensate
; callbackextension
; registertrying
; session-timers
; session-expires
; session-minse
; session-refresher
; timert1
; timerb
; qualifyfreq
;[sip_proxy]
; For incoming calls only. Example: FWD (Free World Dialup)
; We match on IP address of the proxy for incoming calls