diff --git a/configs/samples/res_parking.conf.sample b/configs/samples/res_parking.conf.sample
index d24be2039c..e13f780e0e 100644
--- a/configs/samples/res_parking.conf.sample
+++ b/configs/samples/res_parking.conf.sample
@@ -1,5 +1,43 @@
[general]
;parkeddynamic = yes ; Enables dynamically created parkinglots. (default is no)
+ ; If the option is enabled then the following
+ ; variables can be used to dynamically create
+ ; new parking lots.
+ ;
+ ; The PARKINGDYNAMIC variable specifies the
+ ; parking lot to use as a template to create
+ ; a dynamic parking lot. It is an error to
+ ; specify a non-existent parking lot for the
+ ; template. If not set then the default
+ ; parking lot is used as the template.
+ ;
+ ; The PARKINGDYNCONTEXT variable specifies
+ ; the dialplan context to use for the newly
+ ; created dynamic parking lot. If not set
+ ; then the context from the parking lot
+ ; template is used. The context is created
+ ; if it does not already exist and the new
+ ; parking lot needs to create extensions.
+ ;
+ ; The PARKINGDYNEXTEN variable specifies the
+ ; parkext to use for the newly created dynamic
+ ; parking lot. If not set then the parkext
+ ; is used from the parking lot template. If
+ ; the template does not specify a parkext
+ ; then no extensions are created for the
+ ; newly created parking lot. The dynamic
+ ; parking lot cannot be created if it needs
+ ; to create extensions that overlap existing
+ ; parking lot extensions. The only exception
+ ; to this is for the parkext extension and
+ ; only if neither of the overlaping parking
+ ; lot's parkext is exclusive.
+ ;
+ ; The PARKINGDYNPOS variable specifies the
+ ; parking positions to use for the newly
+ ; created dynamic parking lot. If not set
+ ; then the parkpos from the parking lot
+ ; template is used.
; A parking lot named 'default' will automatically be used when no other
; named parking lot is indicated for use by the park application or a
@@ -11,6 +49,10 @@
parkext => 700 ; What extension to dial to park. (optional; if
; specified, extensions will be created for parkext and
; the whole range of parkpos)
+ ;
+ ; Note: Generated parking extensions cannot overlap.
+ ; The only exception is if neither overlapping parkext
+ ; is exclusive.
;parkext_exclusive=yes ; Specify that the parkext created for this parking lot
; will only access this parking lot. (default is no)
diff --git a/res/parking/parking_applications.c b/res/parking/parking_applications.c
index 0a0ea3c4b8..3a9527c1f9 100644
--- a/res/parking/parking_applications.c
+++ b/res/parking/parking_applications.c
@@ -90,6 +90,47 @@ ASTERISK_REGISTER_FILE()
call on that extension. If the extension is already in use then execution
will continue at the next priority.
+ If the parkeddynamic option is enabled in
+ res_parking.conf the following variables can be
+ used to dynamically create new parking lots. When using dynamic parking
+ lots, be aware of the conditions as explained in the notes section
+ below.
+
+ The PARKINGDYNAMIC variable specifies the
+ parking lot to use as a template to create a dynamic parking lot. It
+ is an error to specify a non-existent parking lot for the template.
+ If not set then the default parking lot is used as the template.
+
+ The PARKINGDYNCONTEXT variable specifies the
+ dialplan context to use for the newly created dynamic parking lot. If
+ not set then the context from the parking lot template is used. The
+ context is created if it does not already exist and the new parking lot
+ needs to create extensions.
+
+ The PARKINGDYNEXTEN variable specifies the
+ parkext to use for the newly created dynamic
+ parking lot. If not set then the parkext is used from
+ the parking lot template. If the template does not specify a
+ parkext then no extensions are created for the newly
+ created parking lot. The dynamic parking lot cannot be created if it
+ needs to create extensions that overlap existing parking lot extensions.
+ The only exception to this is for the parkext
+ extension and only if neither of the overlaping parking lot's
+ parkext is exclusive.
+
+ The PARKINGDYNPOS variable specifies the
+ parking positions to use for the newly created dynamic parking lot. If
+ not set then the parkpos from the parking lot template
+ is used.
+
+
+ This application must be used as the first extension priority
+ to be recognized as a parking access extension for blind transfers.
+ Blind transfers and the DTMF one-touch parking feature need this
+ distinction to operate properly. The parking access extension in
+ this case is treated like a dialplan hint.
+
+
[ParkedCall]
diff --git a/res/res_parking.c b/res/res_parking.c
index 02740da61b..727afd27d5 100644
--- a/res/res_parking.c
+++ b/res/res_parking.c
@@ -35,6 +35,38 @@
Options that apply to every parking lot
Enables dynamically created parkinglots.
+
+ If the option is enabled then the following variables can
+ be used to dynamically create new parking lots.
+
+ The PARKINGDYNAMIC variable specifies the
+ parking lot to use as a template to create a dynamic parking lot. It
+ is an error to specify a non-existent parking lot for the template.
+ If not set then the default parking lot is used as the template.
+
+ The PARKINGDYNCONTEXT variable specifies the
+ dialplan context to use for the newly created dynamic parking lot. If
+ not set then the context from the parking lot template is used. The
+ context is created if it does not already exist and the new parking lot
+ needs to create extensions.
+
+ The PARKINGDYNEXTEN variable specifies the
+ parkext to use for the newly created dynamic
+ parking lot. If not set then the parkext is used from
+ the parking lot template. If the template does not specify a
+ parkext then no extensions are created for the newly
+ created parking lot. The dynamic parking lot cannot be created if it
+ needs to create extensions that overlap existing parking lot extensions.
+ The only exception to this is for the parkext
+ extension and only if neither of the overlaping parking lot's
+ parkext is exclusive.
+
+ The PARKINGDYNPOS variable specifies the
+ parking positions to use for the newly created dynamic parking lot. If
+ not set then the parkpos from the parking lot template
+ is used.
+
+
@@ -45,19 +77,35 @@
Extension to park calls to this parking lot.
- If this option is used, this extension will automatically be created to place calls into
- parking lots. In addition, if parkext_exclusive is set for this parking lot, the name of the parking lot
- will be included in the application's arguments so that it only parks to this parking lot. The extension
- will be created in context. Using this option also creates extensions for retrieving
- parked calls from the parking spaces in the same context.
+
+ If this option is used, this extension will automatically
+ be created to place calls into parking lots. In addition, if
+ parkext_exclusive is set for this parking
+ lot, the name of the parking lot will be included in the
+ application's arguments so that it only parks to this parking
+ lot. The extension will be created in context.
+ Using this option also creates extensions for retrieving
+ parked calls from the parking spaces in the same context.
+
+
+ Generated parking extensions cannot overlap.
+ The only exception is if neither overlapping
+ parkext is exclusive.
+
+
+
If yes, the extension registered as parkext will park exclusively to this parking lot.
Numerical range of parking spaces which can be used to retrieve parked calls.
- If parkext is set, these extensions will automatically be mapped in context
- in order to pick up calls parked to these parking spaces.
+
+ If parkext is set, these extensions
+ will automatically be mapped in context
+ in order to pick up calls parked to these parking spaces.
+
+
If yes, this parking lot will add hints automatically for parking spaces.
@@ -178,9 +226,6 @@
-
- If set, the sound set will be played to whomever is set by parkedplay
-