19#ifndef CHANNELSTORAGE_H_
20#define CHANNELSTORAGE_H_
22#if defined(__cplusplus) || defined(c_plusplus)
30#define AST_CHANNELSTORAGE_DEFAULT_TYPE "ao2_legacy"
56 void *arg,
void *data,
int ao2_flags);
72#define CHANNELSTORAGE_API(_instance, _func, ...) \
73 (_instance)->_func((_instance), ##__VA_ARGS__)
89 const char *
name,
size_t name_len);
94#if defined(__cplusplus) || defined(c_plusplus)
Asterisk main include file. File version handling, generic pbx functions.
int() ao2_callback_data_fn(void *obj, void *arg, void *data, int flags)
Type of a generic callback function.
General Asterisk PBX channel definitions.
Internal channel functions for channel.c to use.
struct ast_channelstorage_instance * ast_channelstorage_open(const struct ast_channelstorage_driver *storage_driver, const char *instance_name)
int ast_channelstorage_init(void)
int channelstorage_exten_cb(void *obj, void *arg, void *data, int flags)
int channelstorage_name_cb(void *obj, void *arg, void *data, int flags)
int channelstorage_uniqueid_cb(void *obj, void *arg, void *data, int flags)
int ast_channelstorage_register_driver(const struct ast_channelstorage_driver *driver_name)
const struct ast_channelstorage_driver * ast_channelstorage_get_driver(const char *driver_name)
struct ast_channel * channelstorage_by_name_prefix_or_uniqueid(struct ast_channelstorage_instance *driver, const char *name, size_t name_len)
struct ast_channel * channelstorage_by_name_or_uniqueid(struct ast_channelstorage_instance *driver, const char *name)
void ast_channelstorage_close(struct ast_channelstorage_instance *storage_instance)
struct ast_channel * channelstorage_by_exten(struct ast_channelstorage_instance *driver, const char *exten, const char *context)
struct ast_channel * channelstorage_by_uniqueid(struct ast_channelstorage_instance *driver, const char *uniqueid)
static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t buflen)
Main Channel structure associated with a channel.
struct ast_channel_id uniqueid
char exten[AST_MAX_EXTENSION]
int(* active_channels)(struct ast_channelstorage_instance *driver)
void(* close)(struct ast_channelstorage_instance *driver)
void(* rdlock)(struct ast_channelstorage_instance *driver)
void(* unlock)(struct ast_channelstorage_instance *driver)
struct ast_channelstorage_driver_pvt * handle
void(* wrlock)(struct ast_channelstorage_instance *driver)
int(* remove)(struct ast_channelstorage_instance *driver, struct ast_channel *chan, int lock)
int(* insert)(struct ast_channelstorage_instance *driver, struct ast_channel *chan, int flags, int lock)