102    payload->parkee = parkee_snapshot;
 
  104    if (retriever_snapshot) {
 
  105        ao2_ref(retriever_snapshot, +1);
 
  106        payload->retriever = retriever_snapshot;
 
 
  131    if (!table || !table->parking_park_bridge_channel) {
 
  137        return table->parking_park_bridge_channel(
parkee, parkee_uuid, parker_uuid, 
app_data);
 
  140    return table->parking_park_bridge_channel(
parkee, parkee_uuid, parker_uuid, 
app_data);
 
 
  150    if (!table || !table->parking_blind_transfer_park) {
 
  156        return table->parking_blind_transfer_park(parker, context, exten, parked_channel_cb, parked_channel_data);
 
  159    return table->parking_blind_transfer_park(parker, context, exten, parked_channel_cb, parked_channel_data);
 
 
  167    if (!table || !table->parking_park_call) {
 
  173        return table->parking_park_call(parker, exten, length);
 
  176    return table->parking_park_call(parker, exten, length);
 
 
  184    if (!table || !table->parking_is_exten_park) {
 
  190        return table->parking_is_exten_park(context, exten);
 
  193    return table->parking_is_exten_park(context, exten);
 
 
  209            wrapper->module_name);
 
  217    *wrapper = *fn_table;
 
 
  232    if (strcmp(wrapper->module_name, module_name)) {
 
 
Prototypes for public functions only of internal interest,.
Asterisk main include file. File version handling, generic pbx functions.
int ast_register_cleanup(void(*func)(void))
Register a function to be executed before Asterisk gracefully exits.
#define AO2_GLOBAL_OBJ_STATIC(name)
Define a global object holder to be used to hold an ao2 object, statically initialized.
#define ao2_global_obj_replace_unref(holder, obj)
Replace an ao2 object in the global holder, throwing away any old object.
#define ao2_global_obj_ref(holder)
Get a reference to the object stored in the global holder.
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
#define ao2_global_obj_release(holder)
Release the ao2 object held in the global holder.
#define ao2_alloc(data_size, destructor_fn)
void(* transfer_channel_cb)(struct ast_channel *chan, struct transfer_channel_data *user_data, enum ast_transfer_type transfer_type)
Callback function type called during blind transfers.
General Asterisk PBX channel definitions.
struct stasis_topic * ast_parking_topic(void)
accessor for the parking stasis topic
struct stasis_message_type * ast_parked_call_type(void)
accessor for the parked call stasis message type
Asterisk module definitions.
#define SCOPED_MODULE_USE(module)
int ast_parking_park_call(struct ast_bridge_channel *parker, char *exten, size_t length)
Park the bridge and/or callers that this channel is in.
int ast_parking_blind_transfer_park(struct ast_bridge_channel *parker, const char *context, const char *exten, transfer_channel_cb parked_channel_cb, struct transfer_channel_data *parked_channel_data)
Perform a blind transfer to a parking extension.
int ast_parking_unregister_bridge_features(const char *module_name)
Unregister the current parking provider.
int ast_parking_is_exten_park(const char *context, const char *exten)
Determine if the context/exten is a "parking" extension.
static struct stasis_topic * parking_topic
Topic for parking lots.
int ast_parking_park_bridge_channel(struct ast_bridge_channel *parkee, const char *parkee_uuid, const char *parker_uuid, const char *app_data)
Perform a direct park on a channel in a bridge.
static void parking_stasis_cleanup(void)
struct ast_parked_call_payload * ast_parked_call_payload_create(enum ast_parked_call_event_type event_type, struct ast_channel_snapshot *parkee_snapshot, const char *parker_dial_string, struct ast_channel_snapshot *retriever_snapshot, const char *parkinglot, unsigned int parkingspace, unsigned long int timeout, unsigned long int duration)
Constructor for parked_call_payload objects.
int ast_parking_register_bridge_features(struct ast_parking_bridge_feature_fn_table *fn_table)
Register a parking provider.
int ast_parking_provider_registered(void)
Check whether a parking provider is registered.
static void parked_call_payload_destructor(void *obj)
Destructor for parked_call_payload objects.
int ast_parking_stasis_init(void)
initializes the rtp engine arrays
ast_parked_call_event_type
Defines the type of parked call message being published.
#define PARKING_MODULE_VERSION
struct ast_parking_bridge_feature_fn_table parking_provider
Core PBX routines and definitions.
#define STASIS_MESSAGE_TYPE_CLEANUP(name)
Boiler-plate messaging macro for cleaning up message types.
struct stasis_topic * stasis_topic_create(const char *name)
Create a new topic.
#define STASIS_MESSAGE_TYPE_INIT(name)
Boiler-plate messaging macro for initializing message types.
#define STASIS_MESSAGE_TYPE_DEFN(name,...)
Boiler-plate messaging macro for defining public message types.
#define ast_string_field_set(x, field, data)
Set a field to a simple string value.
#define ast_string_field_init(x, size)
Initialize a field pool and fields.
#define ast_string_field_free_memory(x)
free all memory - to be called before destroying the object
Structure that contains information regarding a channel in a bridge.
Structure representing a snapshot of channel state.
A parked call message payload.
unsigned int parkingspace
long unsigned int duration
const ast_string_field parkinglot
struct ast_channel_snapshot * retriever
long unsigned int timeout
struct ast_channel_snapshot * parkee
enum ast_parked_call_event_type event_type
const ast_string_field parker_dial_string
A function table providing parking functionality to the Bridging API Bridging API and other consumers...
unsigned int module_version
The version of this function table. If the ABI for this table changes, the module version (/ref PARKI...
AO2 object that wraps data for transfer_channel_cb.
#define RAII_VAR(vartype, varname, initval, dtor)
Declare a variable that will call a destructor function when it goes out of scope.