diff options
author | Richard Mudgett <rmudgett@digium.com> | 2011-10-18 21:15:45 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2011-10-18 21:15:45 +0000 |
commit | 10de040b6e89e7c973c23353d477c5dd465a14df (patch) | |
tree | 25a7d164a2b8276213348bc5f63fe7c6ed9af4cf /include | |
parent | d19ddf87410ce65071cf92c298bf048f3ab0f9bb (diff) |
More parking issues.
* Fix potential deadlocks in SIP and IAX blind transfer to parking.
* Fix SIP, IAX, DAHDI analog, and MGCP channel drivers to respect the
parkext_exclusive option with transfers (Park(,,,,,exclusive_lot)
parameter). Created ast_park_call_exten() and ast_masq_park_call_exten()
to maintian API compatibility.
* Made masq_park_call() handle a failed ast_channel_masquerade() setup.
* Reduced excessive struct parkeduser.peername[] size.
........
Merged revisions 341254 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 341255 from http://svn.asterisk.org/svn/asterisk/branches/10
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@341256 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/features.h | 88 |
1 files changed, 71 insertions, 17 deletions
diff --git a/include/asterisk/features.h b/include/asterisk/features.h index 7e749f2e0..76a141df1 100644 --- a/include/asterisk/features.h +++ b/include/asterisk/features.h @@ -78,33 +78,87 @@ struct ast_call_feature { }; /*! - * \brief Park a call and read back parked location - * \param chan the channel to actually be parked - * \param host the channel which will have the parked location read to. + * \brief Park a call and read back parked location + * + * \param park_me Channel to be parked. + * \param parker Channel parking the call. * \param timeout is a timeout in milliseconds + * \param park_exten Parking lot access extension (Not used) * \param extout is a parameter to an int that will hold the parked location, or NULL if you want. - * - * Park the channel chan, and read back the parked location to the host. - * If the call is not picked up within a specified period of time, - * then the call will return to the last step that it was in - * (in terms of exten, priority and context) + * + * \details + * Park the park_me channel, and read back the parked location + * to the parker channel. If the call is not picked up within a + * specified period of time, then the call will return to the + * last step that it was in (in terms of exten, priority and + * context). + * + * \note Use ast_park_call_exten() instead. + * * \retval 0 on success. * \retval -1 on failure. -*/ -int ast_park_call(struct ast_channel *chan, struct ast_channel *host, int timeout, const char *parkexten, int *extout); + */ +int ast_park_call(struct ast_channel *park_me, struct ast_channel *parker, int timeout, const char *park_exten, int *extout); -/*! +/*! + * \brief Park a call and read back parked location + * \since 1.8.9 + * + * \param park_me Channel to be parked. + * \param parker Channel parking the call. + * \param park_exten Parking lot access extension + * \param park_context Parking lot context + * \param timeout is a timeout in milliseconds + * \param extout is a parameter to an int that will hold the parked location, or NULL if you want. + * + * \details + * Park the park_me channel, and read back the parked location + * to the parker channel. If the call is not picked up within a + * specified period of time, then the call will return to the + * last step that it was in (in terms of exten, priority and + * context). + * + * \retval 0 on success. + * \retval -1 on failure. + */ +int ast_park_call_exten(struct ast_channel *park_me, struct ast_channel *parker, const char *park_exten, const char *park_context, int timeout, int *extout); + +/*! * \brief Park a call via a masqueraded channel - * \param rchan the real channel to be parked - * \param host the channel to have the parking read to. + * + * \param park_me Channel to be parked. + * \param parker Channel parking the call. * \param timeout is a timeout in milliseconds * \param extout is a parameter to an int that will hold the parked location, or NULL if you want. - * - * Masquerade the channel rchan into a new, empty channel which is then parked with ast_park_call + * + * \details + * Masquerade the park_me channel into a new, empty channel which is then parked. + * + * \note Use ast_masq_park_call_exten() instead. + * * \retval 0 on success. * \retval -1 on failure. -*/ -int ast_masq_park_call(struct ast_channel *rchan, struct ast_channel *host, int timeout, int *extout); + */ +int ast_masq_park_call(struct ast_channel *park_me, struct ast_channel *parker, int timeout, int *extout); + +/*! + * \brief Park a call via a masqueraded channel + * \since 1.8.9 + * + * \param park_me Channel to be parked. + * \param parker Channel parking the call. + * \param park_exten Parking lot access extension + * \param park_context Parking lot context + * \param timeout is a timeout in milliseconds + * \param extout is a parameter to an int that will hold the parked location, or NULL if you want. + * + * \details + * Masquerade the park_me channel into a new, empty channel which is then parked. + * + * \retval 0 on success. + * \retval -1 on failure. + */ +int ast_masq_park_call_exten(struct ast_channel *park_me, struct ast_channel *parker, const char *park_exten, const char *park_context, int timeout, int *extout); /*! * \brief Determine if parking extension exists in a given context |