res_geolocation: Address user issues, remove complexity, plug leaks

* Added processing for the 'confidence' element.
* Added documentation to some APIs.
* removed a lot of complex code related to the very-off-nominal
  case of needing to process multiple location info sources.
* Create a new 'ast_geoloc_eprofile_to_pidf' API that just takes
  one eprofile instead of a datastore of multiples.
* Plugged a huge leak in XML processing that arose from
  insufficient documentation by the libxml/libxslt authors.
* Refactored stylesheets to be more efficient.
* Renamed 'profile_action' to 'profile_precedence' to better
  reflect it's purpose.
* Added the config option for 'allow_routing_use' which
  sets the value of the 'Geolocation-Routing' header.
* Removed the GeolocProfileCreate and GeolocProfileDelete
  dialplan apps.
* Changed the GEOLOC_PROFILE dialplan function as follows:
  * Removed the 'profile' argument.
  * Automatically create a profile if it doesn't exist.
  * Delete a profile if 'inheritable' is set to no.
* Fixed various bugs and leaks
* Updated Asterisk WiKi documentation.

ASTERISK-30167

Change-Id: If38c23f26228e96165be161c2f5e849cb8e16fa0
This commit is contained in:
George Joseph
2022-08-05 07:50:49 -06:00
parent 42a724c33b
commit 065b7c3aef
16 changed files with 1119 additions and 1258 deletions

View File

@@ -134,14 +134,24 @@ allowed. See RFC8787.
Example:
location_source = sip1.myserver.net
-- confidence (optional) -----------------------------------------
The confidence in the location specified.
confidence = pdf=[ unknown | normal | rectangular ], value=<percent_confident>
Please see RFC7459 for the exact description of this parameter.
Example:
confidence = pdf=normal, value=75
-- Location Example ---------------------------------------------------
[mylocation]
type = location
format = civicAddress
location_info = country=US
location_info = A1="New York", A3="New York", A4=Manhattan
location_info = HNO=1633, PRD=W, RD=46th, STS=Street
location_info = A1="New York", A3="New York", A4=Manhattan
location_info = HNO=1633, PRD=W, RD=46th, STS=Street
location_info = PC=10222
method = Manual
location_source = sip1.myserver.net
@@ -160,9 +170,9 @@ location_source = sip1.myserver.net
Defines the object type.
type = profile
-- profile_action (optional) ------------------------------------------
-- profile_precedence (optional) ------------------------------------------
Sets how to reconcile incoming and configured profiles.
profile_action = < prefer_incoming | prefer_config | discard_incoming
profile_precedence = < prefer_incoming | prefer_config | discard_incoming
| discard_config >
On an incoming call leg, "incoming" is the location description
@@ -188,7 +198,7 @@ discard_config: Discard any configured location description. If
discard_incoming is the default.
Example:
profile_action = prefer_config
profile_precedence = prefer_config
-- pidf_element (optional) --------------------------------------------
PIDF-LO element in which to place the location description.
@@ -207,10 +217,10 @@ Per [RFC5491], "device" is preferred and therefore the default.
Example:
pidf_element = tuple
-- geolocation_routing (optional) -------------------------------------
-- allow_routing_use (optional) -------------------------------------
Sets whether the "Geolocation-Routing" header is added to outgoing
requests.
geolocation_routing = < yes | no >
allow_routing_use = < yes | no >
Set to "yes" to indicate that servers later in the path
can use the location information for routing purposes. Set to "no"
@@ -218,7 +228,7 @@ if they should not. If this value isn't specified, no
"Geolocation-Routing" header will be added.
Example:
geolocation_routing = yes
allow_routing_use = yes
-- location_reference (optional) --------------------------------------
The name of an existing Location object.