res_pjsip_pubsub: Prune subs with reliable transports at startup

In an earlier release, inbound registrations on a reliable transport
were pruned on Asterisk restart since the TCP connection would have
been torn down and become unusable when Asterisk stopped.  This same
process is now also applied to inbound subscriptions.

Also fixed issues in res_pjsip_registrar where it wasn't handling the
monitoring correctly when multiple registrations came in over the same
transport.

To accomplish this, the pjsip_transport_event feature needed to
be refactored to allow multiple monitors (multiple subcriptions or
registrations from the same endpoint) to exist on the same transport.
Since this changed the API, any external modules that may have used the
transport monitor feature (highly unlikey) will need to be changed.

ASTERISK-27612
Reported by: Ross Beer

Change-Id: Iee87cf4eb9b7b2b93d5739a72af52d6ca8fbbe36
This commit is contained in:
George Joseph
2018-01-28 09:10:00 -07:00
parent 81db0aca0f
commit 2b9aa6b5bb
9 changed files with 311 additions and 80 deletions

15
CHANGES
View File

@@ -81,6 +81,10 @@ res_pjsip
identifier method split into the "ip" and "header" endpoint identifier
methods.
* The pjsip_transport_event feature introduced in 15.1.0 has been refactored.
Any external modules that may have used that feature (highly unlikey) will
need to be changed as the API has been altered slightly.
res_pjsip_endpoint_identifier_ip
------------------
* The endpoint identifier "ip" method previously recognized endpoints either
@@ -95,6 +99,17 @@ res_pjsip_endpoint_identifier_ip
you can now predict which endpoint is matched when a request comes in that
matches both.
res_pjsip_pubsub
------------------
* In an earlier release, inbound registrations on a reliable transport
were pruned on Asterisk restart since the TCP connection would have
been torn down and become unusable when Asterisk stopped. This same
process is now also applied to inbound subscriptions. Since this
required the addition of a new column to the ps_subscription_persistence
realtime table, users who store their subscriptions in a database will
need to run the "alembic upgrade head" process to add the column to
the schema.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 15.1.0 to Asterisk 15.2.0 ------------
------------------------------------------------------------------------------