Asterisk - The Open Source Telephony Project GIT-master-6144b6b
Loading...
Searching...
No Matches
Data Structures | Enumerations | Functions
stasis_channels.h File Reference
#include "asterisk/refer.h"
#include "asterisk/stringfields.h"
#include "asterisk/stasis.h"
#include "asterisk/channel.h"
Include dependency graph for stasis_channels.h:

Go to the source code of this file.

Data Structures

struct  ast_ari_transfer_message
 Message published during an "ARI" transfer. More...
 
struct  ast_channel_blob
 Blob of data associated with a channel. More...
 
struct  ast_channel_snapshot
 Structure representing a snapshot of channel state. More...
 
struct  ast_channel_snapshot_base
 Structure containing base information for a channel snapshot. More...
 
struct  ast_channel_snapshot_bridge
 Structure containing bridge information for a channel snapshot. More...
 
struct  ast_channel_snapshot_caller
 Structure containing caller information for a channel snapshot. More...
 
struct  ast_channel_snapshot_connected
 Structure containing connected information for a channel snapshot. More...
 
struct  ast_channel_snapshot_dialplan
 Structure containing dialplan information for a channel snapshot. More...
 
struct  ast_channel_snapshot_hangup
 Structure containing hangup information for a channel snapshot. More...
 
struct  ast_channel_snapshot_peer
 Structure containing peer information for a channel snapshot. More...
 
struct  ast_channel_snapshot_update
 Structure representing a change of snapshot of channel state. More...
 

Enumerations

enum  ast_channel_snapshot_segment_invalidation {
  AST_CHANNEL_SNAPSHOT_INVALIDATE_BRIDGE = (1 << 1) , AST_CHANNEL_SNAPSHOT_INVALIDATE_DIALPLAN = (1 << 2) , AST_CHANNEL_SNAPSHOT_INVALIDATE_CONNECTED = (1 << 3) , AST_CHANNEL_SNAPSHOT_INVALIDATE_CALLER = (1 << 4) ,
  AST_CHANNEL_SNAPSHOT_INVALIDATE_HANGUP = (1 << 5) , AST_CHANNEL_SNAPSHOT_INVALIDATE_PEER = (1 << 6) , AST_CHANNEL_SNAPSHOT_INVALIDATE_BASE = (1 << 7)
}
 Channel snapshot invalidation flags, used to force generation of segments. More...
 

Functions

struct ast_ari_transfer_messageast_ari_transfer_message_create (struct ast_channel *originating_chan, const char *referred_by, const char *exten, const char *protocol_id, struct ast_channel *dest, struct ast_refer_params *params, enum ast_control_transfer)
 
struct stasis_message_typeast_channel_agent_login_type (void)
 Message type for agent login on a channel.
 
struct stasis_message_typeast_channel_agent_logoff_type (void)
 Message type for agent logoff on a channel.
 
struct stasis_messageast_channel_blob_create (struct ast_channel *chan, struct stasis_message_type *type, struct ast_json *blob)
 Creates a ast_channel_blob message.
 
struct stasis_messageast_channel_blob_create_from_cache (const char *uniqueid, struct stasis_message_type *type, struct ast_json *blob)
 Create a ast_channel_blob message, pulling channel state from the cache.
 
struct ao2_containerast_channel_cache_all (void)
 
struct ao2_containerast_channel_cache_by_name (void)
 Secondary channel cache, indexed by name.
 
struct stasis_message_typeast_channel_chanspy_start_type (void)
 Message type for when a channel starts spying on another channel.
 
struct stasis_message_typeast_channel_chanspy_stop_type (void)
 Message type for when a channel stops spying on another channel.
 
struct stasis_message_typeast_channel_dial_type (void)
 Message type for when a channel dials another channel.
 
struct stasis_message_typeast_channel_dtmf_begin_type (void)
 Message type for when DTMF begins on a channel.
 
struct stasis_message_typeast_channel_dtmf_end_type (void)
 Message type for when DTMF ends on a channel.
 
struct stasis_message_typeast_channel_fax_type (void)
 Message type for a fax operation.
 
struct stasis_message_typeast_channel_flash_type (void)
 Message type for when a hook flash occurs on a channel.
 
struct stasis_message_typeast_channel_hangup_handler_type (void)
 Message type for hangup handler related actions.
 
struct stasis_message_typeast_channel_hangup_request_type (void)
 Message type for when a hangup is requested on a channel.
 
struct stasis_message_typeast_channel_hold_type (void)
 Message type for when a channel is placed on hold.
 
struct stasis_message_typeast_channel_masquerade_type (void)
 Message type for when a channel is being masqueraded.
 
struct stasis_message_typeast_channel_mixmonitor_mute_type (void)
 Message type for muting or unmuting mixmonitor on a channel.
 
struct stasis_message_typeast_channel_mixmonitor_start_type (void)
 Message type for starting mixmonitor on a channel.
 
struct stasis_message_typeast_channel_mixmonitor_stop_type (void)
 Message type for stopping mixmonitor on a channel.
 
struct stasis_message_typeast_channel_moh_start_type (void)
 Message type for starting music on hold on a channel.
 
struct stasis_message_typeast_channel_moh_stop_type (void)
 Message type for stopping music on hold on a channel.
 
void ast_channel_publish_blob (struct ast_channel *chan, struct stasis_message_type *type, struct ast_json *blob)
 Publish a channel blob message.
 
void ast_channel_publish_cached_blob (struct ast_channel *chan, struct stasis_message_type *type, struct ast_json *blob)
 Publish a channel blob message using the latest snapshot from the cache.
 
void ast_channel_publish_dial (struct ast_channel *caller, struct ast_channel *peer, const char *dialstring, const char *dialstatus)
 Publish in the ast_channel_topic or ast_channel_topic_all topics a stasis message for the channels involved in a dial operation.
 
void ast_channel_publish_dial_forward (struct ast_channel *caller, struct ast_channel *peer, struct ast_channel *forwarded, const char *dialstring, const char *dialstatus, const char *forward)
 Publish in the ast_channel_topic or ast_channel_topic_all topics a stasis message for the channels involved in a dial operation that is forwarded.
 
void ast_channel_publish_final_snapshot (struct ast_channel *chan)
 Send the final channel snapshot for a channel, thus removing it from cache.
 
void ast_channel_publish_snapshot (struct ast_channel *chan)
 Publish a ast_channel_snapshot for a channel.
 
void ast_channel_publish_varset (struct ast_channel *chan, const char *variable, const char *value)
 Publish a ast_channel_publish_varset for a channel.
 
int ast_channel_snapshot_caller_id_equal (const struct ast_channel_snapshot *old_snapshot, const struct ast_channel_snapshot *new_snapshot)
 Compares the callerid info of two snapshots.
 
int ast_channel_snapshot_cep_equal (const struct ast_channel_snapshot *old_snapshot, const struct ast_channel_snapshot *new_snapshot)
 Compares the context, exten and priority of two snapshots.
 
int ast_channel_snapshot_connected_line_equal (const struct ast_channel_snapshot *old_snapshot, const struct ast_channel_snapshot *new_snapshot)
 Compares the connected line info of two snapshots.
 
struct ast_channel_snapshotast_channel_snapshot_create (struct ast_channel *chan)
 Generate a snapshot of the channel state. This is an ao2 object, so ao2_cleanup() to deallocate.
 
struct ast_channel_snapshotast_channel_snapshot_get_latest (const char *uniqueid)
 Obtain the latest ast_channel_snapshot from the Stasis Message Bus API cache. This is an ao2 object, so use ao2_cleanup() to deallocate.
 
struct ast_channel_snapshotast_channel_snapshot_get_latest_by_name (const char *name)
 Obtain the latest ast_channel_snapshot from the Stasis Message Bus API cache. This is an ao2 object, so use ao2_cleanup() to deallocate.
 
void ast_channel_snapshot_invalidate_segment (struct ast_channel *chan, enum ast_channel_snapshot_segment_invalidation segment)
 Invalidate a channel snapshot segment from being reused.
 
struct ast_jsonast_channel_snapshot_to_json (const struct ast_channel_snapshot *snapshot, const struct stasis_message_sanitizer *sanitize)
 Build a JSON object from a ast_channel_snapshot.
 
struct stasis_message_typeast_channel_snapshot_type (void)
 Message type for ast_channel_snapshot_update.
 
void ast_channel_stage_snapshot (struct ast_channel *chan)
 Set flag to indicate channel snapshot is being staged.
 
void ast_channel_stage_snapshot_done (struct ast_channel *chan)
 Clear flag to indicate channel snapshot is being staged, and publish snapshot.
 
struct stasis_message_typeast_channel_talking_start (void)
 Message type for a channel starting talking.
 
struct stasis_message_typeast_channel_talking_stop (void)
 Message type for a channel stopping talking.
 
struct stasis_message_typeast_channel_tone_detect (void)
 Message type for a channel tone detection.
 
struct stasis_topicast_channel_topic_all (void)
 A topic which publishes the events for all channels.
 
struct stasis_message_typeast_channel_transfer_request_type (void)
 
struct stasis_message_typeast_channel_unhold_type (void)
 Message type for when a channel is removed from hold.
 
struct stasis_message_typeast_channel_varset_type (void)
 Message type for when a variable is set on a channel.
 
struct stasis_message_typeast_channel_wink_type (void)
 Message type for when a wink occurs on a channel.
 
void ast_multi_channel_blob_add_channel (struct ast_multi_channel_blob *obj, const char *role, struct ast_channel_snapshot *snapshot)
 Add a ast_channel_snapshot to a ast_multi_channel_blob object.
 
struct ast_multi_channel_blobast_multi_channel_blob_create (struct ast_json *blob)
 Create a ast_multi_channel_blob suitable for a stasis_message.
 
struct ast_channel_snapshotast_multi_channel_blob_get_channel (struct ast_multi_channel_blob *obj, const char *role)
 Retrieve a channel snapshot associated with a specific role from a ast_multi_channel_blob.
 
struct ao2_containerast_multi_channel_blob_get_channels (struct ast_multi_channel_blob *obj, const char *role)
 Retrieve all channel snapshots associated with a specific role from a ast_multi_channel_blob.
 
struct ast_jsonast_multi_channel_blob_get_json (struct ast_multi_channel_blob *obj)
 Retrieve the JSON blob from a ast_multi_channel_blob. Returned ast_json is still owned by obj.
 
int ast_stasis_channels_init (void)
 Initialize the stasis channel topic and message types.
 

Function Documentation

◆ ast_ari_transfer_message_create()

struct ast_ari_transfer_message * ast_ari_transfer_message_create ( struct ast_channel originating_chan,
const char *  referred_by,
const char *  exten,
const char *  protocol_id,
struct ast_channel dest,
struct ast_refer_params params,
enum  ast_control_transfer 
)

Definition at line 1776 of file stasis_channels.c.

1779{
1780 struct ast_ari_transfer_message *msg;
1781 msg = ao2_alloc(sizeof(*msg), ari_transfer_dtor);
1782 if (!msg) {
1783 return NULL;
1784 }
1785
1786 msg->refer_params = params;
1787 ao2_ref(msg->refer_params, +1);
1788
1789 msg->state = state;
1790
1791 ast_channel_lock(originating_chan);
1792 msg->source = ao2_bump(ast_channel_snapshot(originating_chan));
1793 ast_channel_unlock(originating_chan);
1794 if (!msg->source) {
1795 ao2_cleanup(msg);
1796 return NULL;
1797 }
1798
1799 if (dest) {
1803 if (!msg->dest) {
1804 ao2_cleanup(msg);
1805 return NULL;
1806 }
1807 }
1808
1809 if (referred_by) {
1811 if (!msg->referred_by) {
1812 ao2_cleanup(msg);
1813 return NULL;
1814 }
1815 }
1816
1817 ast_copy_string(msg->destination, exten, sizeof(msg->destination));
1818
1819 if (protocol_id) {
1821 if (!msg->protocol_id) {
1822 ao2_cleanup(msg);
1823 return NULL;
1824 }
1825 }
1826
1827 return msg;
1828}
#define ast_strdup(str)
A wrapper for strdup()
Definition astmm.h:241
#define ao2_cleanup(obj)
Definition astobj2.h:1934
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
Definition astobj2.h:459
#define ao2_bump(obj)
Bump refcount on an AO2 object by one, returning the object.
Definition astobj2.h:480
#define ao2_alloc(data_size, destructor_fn)
Definition astobj2.h:409
#define ast_channel_lock(chan)
Definition channel.h:2983
#define ast_channel_unlock(chan)
Definition channel.h:2984
#define NULL
Definition resample.c:96
static void ari_transfer_dtor(void *obj)
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
Definition strings.h:425
Message published during an "ARI" transfer.
char destination[AST_MAX_EXTENSION]
struct ast_refer_params * refer_params
enum ast_control_transfer state
struct ast_channel_snapshot * dest
struct ast_channel_snapshot * source
Structure representing a snapshot of channel state.

References ao2_alloc, ao2_bump, ao2_cleanup, ao2_ref, ari_transfer_dtor(), ast_channel_lock, ast_channel_unlock, ast_copy_string(), ast_strdup, ast_ari_transfer_message::dest, ast_ari_transfer_message::destination, NULL, ast_ari_transfer_message::protocol_id, ast_ari_transfer_message::refer_params, ast_ari_transfer_message::referred_by, ast_ari_transfer_message::source, and ast_ari_transfer_message::state.

Referenced by ast_refer_notify_transfer_request().

◆ ast_channel_snapshot_caller_id_equal()

int ast_channel_snapshot_caller_id_equal ( const struct ast_channel_snapshot old_snapshot,
const struct ast_channel_snapshot new_snapshot 
)

Compares the callerid info of two snapshots.

Since
12
Parameters
old_snapshotOld snapshot
new_snapshotNew snapshot
Return values
True(non-zero) if callerid are identical.
False(zero) if callerid changed.

Definition at line 1387 of file stasis_channels.c.

1390{
1391 ast_assert(old_snapshot != NULL);
1392 ast_assert(new_snapshot != NULL);
1393 return strcmp(old_snapshot->caller->number, new_snapshot->caller->number) == 0 &&
1394 strcmp(old_snapshot->caller->name, new_snapshot->caller->name) == 0;
1395}
const ast_string_field number
const ast_string_field name
struct ast_channel_snapshot_caller * caller
#define ast_assert(a)
Definition utils.h:779

References ast_assert, ast_channel_snapshot::caller, ast_channel_snapshot_caller::name, NULL, and ast_channel_snapshot_caller::number.

Referenced by channel_callerid(), and channel_new_callerid().

◆ ast_channel_snapshot_cep_equal()

int ast_channel_snapshot_cep_equal ( const struct ast_channel_snapshot old_snapshot,
const struct ast_channel_snapshot new_snapshot 
)

Compares the context, exten and priority of two snapshots.

Since
12
Parameters
old_snapshotOld snapshot
new_snapshotNew snapshot
Return values
True(non-zero) if context, exten or priority are identical.
False(zero) if context, exten and priority changed.

Definition at line 1366 of file stasis_channels.c.

1369{
1370 ast_assert(old_snapshot != NULL);
1371 ast_assert(new_snapshot != NULL);
1372
1373 /* We actually get some snapshots with CEP set, but before the
1374 * application is set. Since empty application is invalid, we treat
1375 * setting the application from nothing as a CEP change.
1376 */
1377 if (ast_strlen_zero(old_snapshot->dialplan->appl) &&
1378 !ast_strlen_zero(new_snapshot->dialplan->appl)) {
1379 return 0;
1380 }
1381
1382 return old_snapshot->dialplan->priority == new_snapshot->dialplan->priority &&
1383 strcmp(old_snapshot->dialplan->context, new_snapshot->dialplan->context) == 0 &&
1384 strcmp(old_snapshot->dialplan->exten, new_snapshot->dialplan->exten) == 0;
1385}
static force_inline int attribute_pure ast_strlen_zero(const char *s)
Definition strings.h:65
const ast_string_field context
const ast_string_field exten
const ast_string_field appl
struct ast_channel_snapshot_dialplan * dialplan

References ast_channel_snapshot_dialplan::appl, ast_assert, ast_strlen_zero(), ast_channel_snapshot_dialplan::context, ast_channel_snapshot::dialplan, ast_channel_snapshot_dialplan::exten, NULL, and ast_channel_snapshot_dialplan::priority.

Referenced by channel_dialplan(), and channel_newexten().

◆ ast_channel_snapshot_connected_line_equal()

int ast_channel_snapshot_connected_line_equal ( const struct ast_channel_snapshot old_snapshot,
const struct ast_channel_snapshot new_snapshot 
)

Compares the connected line info of two snapshots.

Since
13.1.0
Parameters
old_snapshotOld snapshot
new_snapshotNew snapshot
Return values
True(non-zero) if callerid are identical.
False(zero) if callerid changed.

Definition at line 1397 of file stasis_channels.c.

1400{
1401 ast_assert(old_snapshot != NULL);
1402 ast_assert(new_snapshot != NULL);
1403 return strcmp(old_snapshot->connected->number, new_snapshot->connected->number) == 0 &&
1404 strcmp(old_snapshot->connected->name, new_snapshot->connected->name) == 0;
1405}
struct ast_channel_snapshot_connected * connected

References ast_assert, ast_channel_snapshot::connected, ast_channel_snapshot_connected::name, NULL, and ast_channel_snapshot_connected::number.

Referenced by channel_connected_line(), and channel_new_connected_line().

◆ ast_channel_snapshot_to_json()

struct ast_json * ast_channel_snapshot_to_json ( const struct ast_channel_snapshot snapshot,
const struct stasis_message_sanitizer sanitize 
)

Build a JSON object from a ast_channel_snapshot.

Parameters
snapshotThe snapshot to convert to JSON
sanitizeThe message sanitizer to use on the snapshot
Returns
JSON object representing channel snapshot.
Return values
NULLon error

Definition at line 1315 of file stasis_channels.c.

1318{
1319 struct ast_json *json_chan;
1320
1321 if (snapshot == NULL
1322 || (sanitize
1323 && sanitize->channel_snapshot
1324 && sanitize->channel_snapshot(snapshot))) {
1325 return NULL;
1326 }
1327
1328 json_chan = ast_json_pack(
1329 /* Broken up into groups for readability */
1330 "{ s: s, s: s, s: s, s: s,"
1331 " s: o, s: o, s: s,"
1332 " s: o, s: o, s: s }",
1333 /* First line */
1334 "id", snapshot->base->uniqueid,
1335 "name", snapshot->base->name,
1336 "state", ast_state2str(snapshot->state),
1337 "protocol_id", snapshot->base->protocol_id,
1338 /* Second line */
1339 "caller", ast_json_name_number(
1340 snapshot->caller->name, snapshot->caller->number),
1341 "connected", ast_json_name_number(
1342 snapshot->connected->name, snapshot->connected->number),
1343 "accountcode", snapshot->base->accountcode,
1344 /* Third line */
1345 "dialplan", ast_json_dialplan_cep_app(
1346 snapshot->dialplan->context, snapshot->dialplan->exten, snapshot->dialplan->priority,
1347 snapshot->dialplan->appl, snapshot->dialplan->data),
1348 "creationtime", ast_json_timeval(snapshot->base->creationtime, NULL),
1349 "language", snapshot->base->language);
1350
1351 if (!ast_strlen_zero(snapshot->caller->rdnis)) {
1352 ast_json_object_set(json_chan, "caller_rdnis", ast_json_string_create(snapshot->caller->rdnis));
1353 }
1354
1355 if (snapshot->ari_vars && !AST_LIST_EMPTY(snapshot->ari_vars)) {
1356 ast_json_object_set(json_chan, "channelvars", ast_json_channel_vars(snapshot->ari_vars));
1357 }
1358
1359 if (!ast_strlen_zero(snapshot->base->tenantid)) {
1360 ast_json_object_set(json_chan, "tenantid", ast_json_string_create(snapshot->base->tenantid));
1361 }
1362
1363 return json_chan;
1364}
const char * ast_state2str(enum ast_channel_state state)
Gives the string form of a given channel state.
Definition channel.c:637
struct ast_json * ast_json_string_create(const char *value)
Construct a JSON string from value.
Definition json.c:278
struct ast_json * ast_json_name_number(const char *name, const char *number)
Common JSON rendering functions for common 'objects'.
Definition json.c:646
struct ast_json * ast_json_pack(char const *format,...)
Helper for creating complex JSON values.
Definition json.c:612
struct ast_json * ast_json_timeval(const struct timeval tv, const char *zone)
Construct a timeval as JSON.
Definition json.c:670
struct ast_json * ast_json_dialplan_cep_app(const char *context, const char *exten, int priority, const char *app_name, const char *app_data)
Construct a context/exten/priority/application/application_data as JSON.
Definition json.c:653
int ast_json_object_set(struct ast_json *object, const char *key, struct ast_json *value)
Set a field in a JSON object.
Definition json.c:414
struct ast_json * ast_json_channel_vars(struct varshead *channelvars)
Construct a JSON object from a ast_var_t list.
Definition json.c:941
#define AST_LIST_EMPTY(head)
Checks whether the specified list contains any entries.
const ast_string_field language
const ast_string_field tenantid
const ast_string_field accountcode
const ast_string_field uniqueid
const ast_string_field name
const ast_string_field rdnis
const ast_string_field data
struct varshead * ari_vars
struct ast_channel_snapshot_base * base
enum ast_channel_state state
Abstract JSON element (object, array, string, int, ...).
int(* channel_snapshot)(const struct ast_channel_snapshot *snapshot)
Callback which determines whether a channel should be sanitized from a message based on the channel's...
Definition stasis.h:221

References ast_channel_snapshot_base::accountcode, ast_channel_snapshot_dialplan::appl, ast_channel_snapshot::ari_vars, ast_json_channel_vars(), ast_json_dialplan_cep_app(), ast_json_name_number(), ast_json_object_set(), ast_json_pack(), ast_json_string_create(), ast_json_timeval(), AST_LIST_EMPTY, ast_state2str(), ast_strlen_zero(), ast_channel_snapshot::base, ast_channel_snapshot::caller, stasis_message_sanitizer::channel_snapshot, ast_channel_snapshot::connected, ast_channel_snapshot_dialplan::context, ast_channel_snapshot_base::creationtime, ast_channel_snapshot_dialplan::data, ast_channel_snapshot::dialplan, ast_channel_snapshot_dialplan::exten, ast_channel_snapshot_base::language, ast_channel_snapshot_caller::name, ast_channel_snapshot_connected::name, ast_channel_snapshot_base::name, NULL, ast_channel_snapshot_caller::number, ast_channel_snapshot_connected::number, ast_channel_snapshot_dialplan::priority, ast_channel_snapshot_caller::rdnis, ast_channel_snapshot::state, ast_channel_snapshot_base::tenantid, and ast_channel_snapshot_base::uniqueid.

Referenced by ari_channels_handle_originate_with_id(), ari_channels_handle_snoop_channel(), ari_transfer_to_json(), ast_ari_channels_create(), ast_ari_channels_get(), ast_ari_channels_list(), AST_TEST_DEFINE(), AST_TEST_DEFINE(), attended_transfer_to_json(), blind_transfer_to_json(), channel_blob_to_json(), channel_callerid(), channel_connected_line(), channel_destroyed_event(), channel_dialplan(), channel_to_json(), dial_to_json(), dtmf_end_to_json(), hold_to_json(), multi_user_event_to_json(), rtcp_report_to_json(), send_broadcast_event(), simple_bridge_channel_event(), simple_channel_event(), stasis_app_claim_channel(), stasis_app_exec(), stasis_end_to_json(), stasis_start_to_json(), and unhold_to_json().

◆ ast_stasis_channels_init()

int ast_stasis_channels_init ( void  )

Initialize the stasis channel topic and message types.

Return values
0on success
Non-zeroon error

Definition at line 1926 of file stasis_channels.c.

1927{
1928 int res = 0;
1929
1931
1932 channel_topic_all = stasis_topic_create("channel:all");
1933 if (!channel_topic_all) {
1934 return -1;
1935 }
1936
1940 if (!channel_cache) {
1941 return -1;
1942 }
1943
1947 if (!channel_cache_by_name) {
1948 return -1;
1949 }
1950
1977
1978 return res;
1979}
int ast_register_cleanup(void(*func)(void))
Register a function to be executed before Asterisk gracefully exits.
Definition clicompat.c:19
@ AO2_ALLOC_OPT_LOCK_RWLOCK
Definition astobj2.h:365
#define ao2_container_alloc_hash(ao2_options, container_options, n_buckets, hash_fn, sort_fn, cmp_fn)
Allocate and initialize a hash container with the desired number of buckets.
Definition astobj2.h:1303
#define AST_NUM_CHANNEL_BUCKETS
Definition channel.h:157
struct stasis_message_type * ast_channel_mixmonitor_mute_type(void)
Message type for muting or unmuting mixmonitor on a channel.
struct stasis_message_type * ast_channel_masquerade_type(void)
Message type for when a channel is being masqueraded.
struct stasis_message_type * ast_channel_hold_type(void)
Message type for when a channel is placed on hold.
struct stasis_message_type * ast_channel_talking_start(void)
Message type for a channel starting talking.
struct stasis_message_type * ast_channel_chanspy_start_type(void)
Message type for when a channel starts spying on another channel.
struct stasis_message_type * ast_channel_chanspy_stop_type(void)
Message type for when a channel stops spying on another channel.
struct stasis_message_type * ast_channel_talking_stop(void)
Message type for a channel stopping talking.
struct stasis_message_type * ast_channel_dtmf_begin_type(void)
Message type for when DTMF begins on a channel.
struct stasis_message_type * ast_channel_mixmonitor_stop_type(void)
Message type for stopping mixmonitor on a channel.
struct stasis_message_type * ast_channel_tone_detect(void)
Message type for a channel tone detection.
struct stasis_message_type * ast_channel_varset_type(void)
Message type for when a variable is set on a channel.
struct stasis_message_type * ast_channel_hangup_handler_type(void)
Message type for hangup handler related actions.
struct stasis_message_type * ast_channel_agent_logoff_type(void)
Message type for agent logoff on a channel.
struct stasis_message_type * ast_channel_dial_type(void)
Message type for when a channel dials another channel.
struct stasis_message_type * ast_channel_moh_stop_type(void)
Message type for stopping music on hold on a channel.
struct stasis_message_type * ast_channel_unhold_type(void)
Message type for when a channel is removed from hold.
struct stasis_message_type * ast_channel_hangup_request_type(void)
Message type for when a hangup is requested on a channel.
struct stasis_message_type * ast_channel_agent_login_type(void)
Message type for agent login on a channel.
struct stasis_message_type * ast_channel_flash_type(void)
Message type for when a hook flash occurs on a channel.
struct stasis_message_type * ast_channel_snapshot_type(void)
Message type for ast_channel_snapshot_update.
struct stasis_message_type * ast_channel_fax_type(void)
Message type for a fax operation.
struct stasis_message_type * ast_channel_dtmf_end_type(void)
Message type for when DTMF ends on a channel.
struct stasis_message_type * ast_channel_wink_type(void)
Message type for when a wink occurs on a channel.
struct stasis_message_type * ast_channel_transfer_request_type(void)
struct stasis_message_type * ast_channel_moh_start_type(void)
Message type for starting music on hold on a channel.
struct stasis_message_type * ast_channel_mixmonitor_start_type(void)
Message type for starting mixmonitor on a channel.
struct stasis_topic * stasis_topic_create(const char *name)
Create a new topic.
Definition stasis.c:684
#define STASIS_MESSAGE_TYPE_INIT(name)
Boiler-plate messaging macro for initializing message types.
Definition stasis.h:1524
static int channel_snapshot_cmp_cb(void *obj, void *arg, int flags)
static int channel_snapshot_uniqueid_cmp_cb(void *obj, void *arg, int flags)
static struct ao2_container * channel_cache_by_name
static struct stasis_topic * channel_topic_all
static int channel_snapshot_uniqueid_hash_cb(const void *obj, const int flags)
static struct ao2_container * channel_cache
static int channel_snapshot_hash_cb(const void *obj, const int flags)
static void stasis_channels_cleanup(void)

References AO2_ALLOC_OPT_LOCK_RWLOCK, ao2_container_alloc_hash, ast_channel_agent_login_type(), ast_channel_agent_logoff_type(), ast_channel_chanspy_start_type(), ast_channel_chanspy_stop_type(), ast_channel_dial_type(), ast_channel_dtmf_begin_type(), ast_channel_dtmf_end_type(), ast_channel_fax_type(), ast_channel_flash_type(), ast_channel_hangup_handler_type(), ast_channel_hangup_request_type(), ast_channel_hold_type(), ast_channel_masquerade_type(), ast_channel_mixmonitor_mute_type(), ast_channel_mixmonitor_start_type(), ast_channel_mixmonitor_stop_type(), ast_channel_moh_start_type(), ast_channel_moh_stop_type(), ast_channel_snapshot_type(), ast_channel_talking_start(), ast_channel_talking_stop(), ast_channel_tone_detect(), ast_channel_transfer_request_type(), ast_channel_unhold_type(), ast_channel_varset_type(), ast_channel_wink_type(), AST_NUM_CHANNEL_BUCKETS, ast_register_cleanup(), channel_cache, channel_cache_by_name, channel_snapshot_cmp_cb(), channel_snapshot_hash_cb(), channel_snapshot_uniqueid_cmp_cb(), channel_snapshot_uniqueid_hash_cb(), channel_topic_all, NULL, stasis_channels_cleanup(), STASIS_MESSAGE_TYPE_INIT, and stasis_topic_create().

Referenced by ast_channels_init().