ast_bridge_technology Struct Reference

Structure that is the essence of a bridge technology. More...

#include <bridge_technology.h>

Collaboration diagram for ast_bridge_technology:

Collaboration graph
[legend]

Public Member Functions

 AST_RWLIST_ENTRY (ast_bridge_technology) entry

Data Fields

uint32_t capabilities
int(* compatible )(struct ast_bridge *bridge)
 Check if a bridge is compatible with the bridging technology.
int(* create )(struct ast_bridge *bridge)
 Create a bridge technology instance for a bridge.
void(* destroy )(struct ast_bridge *bridge)
 Destroy a bridging technology instance for a bridge.
int(* join )(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
 Add a channel to a bridging technology instance for a bridge.
void(* leave )(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
 Remove a channel from a bridging technology instance for a bridge.
struct ast_modulemod
const char * name
enum ast_bridge_preference preference
int(* start )(struct ast_bridge *bridge)
 Request a bridge technology instance start operations.
void(* stop )(struct ast_bridge *bridge)
 Request a bridge technology instance stop in preparation for being destroyed.
void(* suspend )(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
 Suspend a channel on a bridging technology instance for a bridge.
unsigned int suspended:1
void(* unsuspend )(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
 Unsuspend a channel on a bridging technology instance for a bridge.
int(* write )(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, struct ast_frame *frame)
 Write a frame into the bridging technology instance for a bridge.

Detailed Description

Structure that is the essence of a bridge technology.

Definition at line 63 of file bridge_technology.h.


Member Function Documentation

AST_RWLIST_ENTRY ( ast_bridge_technology   ) 

Linked list information


Field Documentation

uint32_t capabilities

int(* compatible)(struct ast_bridge *bridge)

Check if a bridge is compatible with the bridging technology.

Return values:
0 if not compatible
non-zero if compatible
Note:
On entry, bridge may or may not already be locked. However, it can be accessed as if it were locked.

Referenced by find_best_technology(), and smart_bridge_operation().

int(* create)(struct ast_bridge *bridge)

Create a bridge technology instance for a bridge.

Return values:
0 on success
-1 on failure
Note:
On entry, bridge may or may not already be locked. However, it can be accessed as if it were locked.

Referenced by smart_bridge_operation().

void(* destroy)(struct ast_bridge *bridge)

Destroy a bridging technology instance for a bridge.

Note:
On entry, bridge must NOT be locked.

Referenced by bridge_tech_deferred_destroy(), destroy_bridge(), and smart_bridge_operation().

int(* join)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)

Add a channel to a bridging technology instance for a bridge.

Return values:
0 on success
-1 on failure
Note:
On entry, bridge is already locked.

Referenced by bridge_channel_complete_join().

void(* leave)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)

Remove a channel from a bridging technology instance for a bridge.

Note:
On entry, bridge is already locked.

Do not make assumptions about the number of channels in the bridge when this callback is called. When a channel is swapped into a bridge for another channel, the leave callback is called after the new channel has been added to the bridge.

Referenced by bridge_channel_internal_pull(), and smart_bridge_operation().

struct ast_module* mod [read]

Module this bridge technology belongs to. It is used for reference counting bridges using the technology.

Definition at line 158 of file bridge_technology.h.

Referenced by __ast_bridge_technology_register(), bridge_tech_deferred_destroy(), destroy_bridge(), find_best_technology(), and smart_bridge_operation().

const char* name

Preference level that should be used when determining whether to use this bridge technology or not

Definition at line 70 of file bridge_technology.h.

Referenced by find_best_technology(), handle_bridge_technology_show(), and manager_bridge_tech_list().

int(* start)(struct ast_bridge *bridge)

Request a bridge technology instance start operations.

Return values:
0 on success
-1 on failure
Note:
On entry, bridge may or may not already be locked. However, it can be accessed as if it were locked.

Referenced by smart_bridge_operation().

void(* stop)(struct ast_bridge *bridge)

Request a bridge technology instance stop in preparation for being destroyed.

Note:
On entry, bridge is already locked.

Referenced by destroy_bridge(), and smart_bridge_operation().

void(* suspend)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)

Suspend a channel on a bridging technology instance for a bridge.

Note:
On entry, bridge is already locked.

Referenced by bridge_channel_internal_suspend_nolock().

unsigned int suspended

TRUE if the bridge technology is currently suspended.

Definition at line 156 of file bridge_technology.h.

Referenced by ast_bridge_technology_suspend(), ast_bridge_technology_unsuspend(), find_best_technology(), handle_bridge_technology_show(), and manager_bridge_tech_list().

void(* unsuspend)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)

Unsuspend a channel on a bridging technology instance for a bridge.

Note:
On entry, bridge is already locked.

Referenced by bridge_channel_internal_unsuspend_nolock().

int(* write)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, struct ast_frame *frame)

Write a frame into the bridging technology instance for a bridge.

Note:
The bridge must be tolerant of bridge_channel being NULL.
Return values:
0 Frame accepted into the bridge.
-1 Frame needs to be deferred.
Note:
On entry, bridge is already locked.

Referenced by __ast_bridge_technology_register(), bridge_channel_settle_owed_events(), and bridge_channel_write_frame().


The documentation for this struct was generated from the following file:

Generated on Thu Apr 16 06:35:02 2015 for Asterisk - The Open Source Telephony Project by  doxygen 1.5.6