Call Us Today! 877.742.2583

Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »


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.

 Click here to expand Table of Contents


From switch_types.h:



State Number




Channel is newly created.
CS_INIT1Channel has been initialized.

Channel is looking for an extension to execute.

CS_SOFT_EXECUTE3Channel is ready to execute from 3rd party control.
CS_EXECUTE4Channel is executing its dialplan.
CS_EXCHANGE_MEDIA5Channel is exchanging media with another channel.
CS_PARK6Channel is accepting media awaiting commands.
CS_CONSUME_MEDIA7Channel is consuming all media and dropping it.
CS_HIBERNATE8Channel is in a sleep state.
CS_RESET9Channel is in a reset state.
CS_HANGUP10Channel is flagged for hangup and ready to end. Media will now end, and no further call routing will occur.
CS_REPORTING11The 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_DESTROY12Channel 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.

TODO What does this do? In the source, it simply calls C's abort().

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.

See Also

  • No labels