]> git.ipfire.org Git - thirdparty/asterisk.git/commit
pjsip_options: Add qualify_timeout processing and eventing 44/44/11
authorGeorge Joseph <george.joseph@fairview5.com>
Sat, 11 Apr 2015 21:56:52 +0000 (15:56 -0600)
committerMatt Jordan <mjordan@digium.com>
Fri, 17 Apr 2015 20:31:14 +0000 (15:31 -0500)
commit674b18bdf0923776fae692575869640f6c00e0b1
treea5f5c23103bb696d8a7fe3ab0050ec4d0a783bf4
parentf1abf51b73e9208691e54c5bfffccbac4e994471
pjsip_options: Add qualify_timeout processing and eventing

This is the second follow-on to https://reviewboard.asterisk.org/r/4572/ and the
discussion at
http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html

The basic issues are that changes in contact status don't cause events to be
emitted for the associated endpoint.  Only dynamic contact add/delete actions
update the endpoint.  Also, the qualify timeout is fixed by pjsip at 32 seconds
which is a long time.

This patch makes use of the new transaction timeout feature in r4585 and
provides the following capabilities...

1.  A new aor/contact variable 'qualify_timeout' has been added that allows the
user to specify the maximum time in milliseconds to wait for a response to an
OPTIONS message.  The default is 3000ms.  When the timer expires, the contact is
marked unavailable.

2.  Contact status changes are now propagated up to the endpoint as follows...
When any contact is 'Available', the endpoint is marked as 'Reachable'.  When
all contacts are 'Unavailable', the endpoint is marked as 'Unreachable'.  The
existing endpoint events are generated appropriately.

ASTERISK-24863 #close

Change-Id: Id0ce0528e58014da1324856ea537e7765466044a
Tested-by: Dmitriy Serov
Tested-by: George Joseph <george.joseph@fairview5.com>
CHANGES
configs/samples/pjsip.conf.sample
contrib/ast-db-manage/config/versions/461d7d691209_add_pjsip_qualify_timeout.py [new file with mode: 0644]
include/asterisk/endpoints.h
include/asterisk/res_pjsip.h
main/endpoints.c
res/res_pjsip.c
res/res_pjsip/location.c
res/res_pjsip/pjsip_configuration.c
res/res_pjsip/pjsip_options.c