Channels states
A channel (a call) will go through many different states during its lifetime. Here we will describe the different states that a channel might find itself in, and what each of those states mean.
States
State | Description |
---|---|
CS_NEW | Channel is newly created. |
CS_INIT | Channel has been initialized. |
CS_ROUTING | Channel is looking for an extension to execute. |
CS_SOFT_EXECUTE | Channel is ready to execute from 3rd party control. |
CS_EXECUTE | Channel is executing its dialplan. |
CS_EXCHANGE_MEDIA | Channel is exchanging media with another channel. |
CS_PARK | Channel is accepting media awaiting commands. |
CS_CONSUME_MEDIA | Channel is consuming all media and dropping it. |
CS_HIBERNATE | Channel is in a sleep state. |
CS_RESET | Channel is in a reset state. |
CS_HANGUP | Channel is flagged for hangup and ready to end. Media will now end, and no further call routing will occur. |
CS_REPORTING | The channel is already hung up, media is already down, and now it's time to do any sort of reporting processes such as CDR logging. |
CS_DESTROY | Channel is ready to be destroyed and out of the state machine. Memory pools are returned to the core and utilized memory from the channel is freed. |
State Handlers
Custom state handlers can be added to the channels either globally or on a per-channel basis. This will allow you to do your own custom reporting or clean up your own dynamically created objects, for example. Custom handlers can also be then removed from a channel.