Summary:ASTERISK-20725: Asterisk API stabilization - Channel Handle/UUID
Reporter:Matt Jordan (mjordan)Labels:Asterisk12
Date Opened:2012-11-26 08:36:53.000-0600Date Closed:2013-01-03 13:25:38.000-0600
Status:Closed/CompleteComponents:Core/Channels Core/ManagerInterface Core/Stasis
Versions:12 Frequency of
Description:A major feature request discussed at [AstriDevCon|https://wiki.asterisk.org/wiki/display/AST/AstriDevCon+2012#AstriDevCon2012-APIs] was improving the reliability and consistency of Asterisk's APIs.  A core problem with meeting this goal is the exposure of Asterisk's internal implementation details/decisions through the interfaces, e.g., masquerading of channels, bridge breaking, etc.  In order to make all interfaces more robust, some core changes to Asterisk have to occur.

This issue represents the first of those changes: create a handle to a channel that survives all operations that Asterisk may perform on said channel and exists from the time a communication path is created between Asterisk and some endpoint and when that communication path is torn down.  This handle must persist even if the underlying channel object is disposed of and replaced with a different channel object.  Said handle should also be globally unique across space and time, i.e., a UUID.
Comments:By: Mark Michelson (mmichelson) 2012-12-11 15:16:46.004-0600

Accidentally closed this instead of a specific subtask.

By: Matt Jordan (mjordan) 2013-01-03 13:24:48.383-0600

As it turns out, the Uniqueid field on a channel struct can already be made globally unique by inclusion of the configured Asterisk system name, and channels can already be queried by this value. So the UUID library isn't exactly needed for this purpose.

(It is useful for some other stuff though)

Closing out the rest of these issues as I don't think we actually need to modify {{ast_channel}} with this library.