Asterisk - The Open Source Telephony Project GIT-master-009e3ef
|
Websocket Media Channel. More...
#include "asterisk.h"
#include "asterisk/app.h"
#include "asterisk/causes.h"
#include "asterisk/channel.h"
#include "asterisk/codec.h"
#include "asterisk/http_websocket.h"
#include "asterisk/format_cache.h"
#include "asterisk/frame.h"
#include "asterisk/lock.h"
#include "asterisk/mod_format.h"
#include "asterisk/module.h"
#include "asterisk/pbx.h"
#include "asterisk/uuid.h"
#include "asterisk/timing.h"
#include "asterisk/translate.h"
#include "asterisk/websocket_client.h"
Go to the source code of this file.
Data Structures | |
struct | instance_proxy |
struct | websocket_pvt |
Macros | |
#define | ANSWER_CHANNEL "ANSWER" |
#define | CONTINUE_MEDIA "CONTINUE_MEDIA" |
#define | DRIVER_STATUS "STATUS" |
#define | FLUSH_MEDIA "FLUSH_MEDIA" |
#define | GET_DRIVER_STATUS "GET_STATUS" |
#define | HANGUP_CHANNEL "HANGUP" |
#define | INCOMING_CONNECTION_ID "INCOMING" |
#define | MAX_TEXT_MESSAGE_LEN MIN(128, (AST_WEBSOCKET_MAX_RX_PAYLOAD_SIZE - 1)) |
#define | MEDIA_BUFFERING_COMPLETED "MEDIA_BUFFERING_COMPLETED" |
#define | MEDIA_START "MEDIA_START" |
#define | MEDIA_WEBSOCKET_CONNECTION_ID "MEDIA_WEBSOCKET_CONNECTION_ID" |
#define | MEDIA_WEBSOCKET_OPTIMAL_FRAME_SIZE "MEDIA_WEBSOCKET_OPTIMAL_FRAME_SIZE" |
#define | MEDIA_XOFF "MEDIA_XOFF" |
#define | MEDIA_XON "MEDIA_XON" |
#define | PAUSE_MEDIA "PAUSE_MEDIA" |
#define | QUEUE_DRAINED "QUEUE_DRAINED" |
#define | QUEUE_LENGTH_MAX 1000 |
#define | QUEUE_LENGTH_XOFF_LEVEL 900 |
#define | QUEUE_LENGTH_XON_LEVEL 800 |
#define | REPORT_QUEUE_DRAINED "REPORT_QUEUE_DRAINED" |
#define | START_MEDIA_BUFFERING "START_MEDIA_BUFFERING" |
#define | STOP_MEDIA_BUFFERING "STOP_MEDIA_BUFFERING" |
Enumerations | |
enum | { OPT_WS_CODEC = (1 << 0) , OPT_WS_NO_AUTO_ANSWER = (1 << 1) } |
enum | { OPT_ARG_WS_CODEC , OPT_ARG_WS_NO_AUTO_ANSWER , OPT_ARG_ARRAY_SIZE } |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
struct ast_module * | AST_MODULE_SELF_SYM (void) |
static struct ast_frame * | dequeue_frame (struct websocket_pvt *instance) |
static void | incoming_ws_established_cb (struct ast_websocket *ast_ws_session, struct ast_variable *get_params, struct ast_variable *upgrade_headers) |
static int | incoming_ws_http_callback (struct ast_tcptls_session_instance *ser, const struct ast_http_uri *urih, const char *uri, enum ast_http_method method, struct ast_variable *get_params, struct ast_variable *headers) |
static void | instance_proxy_cb (void *weakproxy, void *data) |
static int | load_module (void) |
Function called when our module is loaded. More... | |
static int | process_binary_message (struct websocket_pvt *instance, char *payload, uint64_t payload_len) |
static int | process_text_message (struct websocket_pvt *instance, char *payload, uint64_t payload_len) |
static int | queue_frame_from_buffer (struct websocket_pvt *instance, char *buffer, size_t len) |
static int | queue_option_frame (struct websocket_pvt *instance, char *buffer) |
static int | read_from_ws_and_queue (struct websocket_pvt *instance) |
static void * | read_thread_handler (void *obj) |
static void | set_channel_format (struct websocket_pvt *instance, struct ast_format *fmt) |
static int | set_channel_timer (struct websocket_pvt *instance) |
static int | set_channel_variables (struct websocket_pvt *instance) |
static int | set_instance_silence_frame (struct websocket_pvt *instance) |
static int | set_instance_translator (struct websocket_pvt *instance) |
static int | unload_module (void) |
Function called when our module is unloaded. More... | |
static int | webchan_call (struct ast_channel *ast, const char *dest, int timeout) |
static int | webchan_hangup (struct ast_channel *ast) |
static struct ast_frame * | webchan_read (struct ast_channel *ast) |
static struct ast_channel * | webchan_request (const char *type, struct ast_format_cap *cap, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *data, int *cause) |
static int | webchan_write (struct ast_channel *ast, struct ast_frame *f) |
Function called when we should write a frame to the channel. More... | |
static void | websocket_destructor (void *data) |
static struct websocket_pvt * | websocket_new (const char *chan_name, const char *connection_id, struct ast_format *fmt) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "Websocket Media Channel" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_CHANNEL_DRIVER, .requires = "res_http_websocket,res_websocket_client", } |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static struct ast_websocket_server * | ast_ws_server |
static struct ast_http_uri | http_uri |
static struct ao2_container * | instances = NULL |
static const struct ast_app_option | websocket_options [128] = { [ 'c' ] = { .flag = OPT_WS_CODEC , .arg_index = OPT_ARG_WS_CODEC + 1 }, [ 'n' ] = { .flag = OPT_WS_NO_AUTO_ANSWER }, } |
static struct ast_channel_tech | websocket_tech |
Websocket Media Channel.
Definition in file chan_websocket.c.
#define ANSWER_CHANNEL "ANSWER" |
Definition at line 87 of file chan_websocket.c.
#define CONTINUE_MEDIA "CONTINUE_MEDIA" |
Definition at line 95 of file chan_websocket.c.
#define DRIVER_STATUS "STATUS" |
Definition at line 101 of file chan_websocket.c.
#define FLUSH_MEDIA "FLUSH_MEDIA" |
Definition at line 91 of file chan_websocket.c.
#define GET_DRIVER_STATUS "GET_STATUS" |
Definition at line 92 of file chan_websocket.c.
#define HANGUP_CHANNEL "HANGUP" |
Definition at line 88 of file chan_websocket.c.
#define INCOMING_CONNECTION_ID "INCOMING" |
Definition at line 85 of file chan_websocket.c.
#define MAX_TEXT_MESSAGE_LEN MIN(128, (AST_WEBSOCKET_MAX_RX_PAYLOAD_SIZE - 1)) |
Definition at line 107 of file chan_websocket.c.
#define MEDIA_BUFFERING_COMPLETED "MEDIA_BUFFERING_COMPLETED" |
Definition at line 102 of file chan_websocket.c.
#define MEDIA_START "MEDIA_START" |
Definition at line 97 of file chan_websocket.c.
#define MEDIA_WEBSOCKET_CONNECTION_ID "MEDIA_WEBSOCKET_CONNECTION_ID" |
Definition at line 84 of file chan_websocket.c.
#define MEDIA_WEBSOCKET_OPTIMAL_FRAME_SIZE "MEDIA_WEBSOCKET_OPTIMAL_FRAME_SIZE" |
Definition at line 83 of file chan_websocket.c.
#define MEDIA_XOFF "MEDIA_XOFF" |
Definition at line 99 of file chan_websocket.c.
#define MEDIA_XON "MEDIA_XON" |
Definition at line 98 of file chan_websocket.c.
#define PAUSE_MEDIA "PAUSE_MEDIA" |
Definition at line 94 of file chan_websocket.c.
#define QUEUE_DRAINED "QUEUE_DRAINED" |
Definition at line 100 of file chan_websocket.c.
#define QUEUE_LENGTH_MAX 1000 |
Definition at line 104 of file chan_websocket.c.
#define QUEUE_LENGTH_XOFF_LEVEL 900 |
Definition at line 105 of file chan_websocket.c.
#define QUEUE_LENGTH_XON_LEVEL 800 |
Definition at line 106 of file chan_websocket.c.
#define REPORT_QUEUE_DRAINED "REPORT_QUEUE_DRAINED" |
Definition at line 93 of file chan_websocket.c.
#define START_MEDIA_BUFFERING "START_MEDIA_BUFFERING" |
Definition at line 89 of file chan_websocket.c.
#define STOP_MEDIA_BUFFERING "STOP_MEDIA_BUFFERING" |
Definition at line 90 of file chan_websocket.c.
anonymous enum |
Enumerator | |
---|---|
OPT_WS_CODEC | |
OPT_WS_NO_AUTO_ANSWER |
Definition at line 1100 of file chan_websocket.c.
anonymous enum |
Enumerator | |
---|---|
OPT_ARG_WS_CODEC | |
OPT_ARG_WS_NO_AUTO_ANSWER | |
OPT_ARG_ARRAY_SIZE |
Definition at line 1105 of file chan_websocket.c.
|
static |
Definition at line 1518 of file chan_websocket.c.
|
static |
Definition at line 1518 of file chan_websocket.c.
struct ast_module * AST_MODULE_SELF_SYM | ( | void | ) |
Definition at line 1518 of file chan_websocket.c.
|
static |
Definition at line 142 of file chan_websocket.c.
References ast_channel_name(), AST_CONTROL_OPTION, ast_debug, AST_FRAME_CONTROL, ast_frame_free(), AST_LIST_LOCK, AST_LIST_REMOVE_HEAD, AST_LIST_UNLOCK, ast_websocket_write_string(), websocket_pvt::channel, ast_frame::data, websocket_pvt::frame_queue, websocket_pvt::frame_queue_length, ast_frame::frametype, ast_frame_subclass::integer, MEDIA_XON, NULL, ast_frame::ptr, QUEUE_DRAINED, websocket_pvt::queue_full, QUEUE_LENGTH_XON_LEVEL, websocket_pvt::queue_paused, websocket_pvt::report_queue_drained, SCOPED_LOCK, ast_frame::subclass, and websocket_pvt::websocket.
Referenced by webchan_read().
|
static |
Definition at line 1293 of file chan_websocket.c.
References ao2_bump, ao2_cleanup, ao2_weakproxy_find, AST_CONTROL_HANGUP, ast_debug, ast_log, ast_queue_control(), ast_variable_find_in_list(), ast_websocket_close(), ast_websocket_fd(), ast_websocket_unref(), websocket_pvt::channel, websocket_pvt::connection_id, errno, instances, LOG_WARNING, ast_variable::name, ast_variable::next, NULL, OBJ_NOLOCK, OBJ_SEARCH_KEY, RAII_VAR, read_thread_handler(), ast_variable::value, and websocket_pvt::websocket.
Referenced by load_module().
|
static |
Definition at line 1361 of file chan_websocket.c.
References ao2_cleanup, ao2_weakproxy_find, ast_channel_name(), ast_debug, ast_http_error(), ast_log, ast_variable_list_append, ast_variable_new, ast_variables_destroy(), ast_websocket_uri_cb(), ast_ws_server, ast_http_uri::data, instances, LOG_WARNING, method, ast_variable::name, ast_variable::next, NULL, OBJ_NOLOCK, OBJ_SEARCH_KEY, RAII_VAR, and ast_variable::value.
|
static |
Definition at line 918 of file chan_websocket.c.
References ao2_unlink, ast_debug, instance_proxy::connection_id, and instances.
Referenced by websocket_new().
|
static |
Function called when our module is loaded.
Definition at line 1467 of file chan_websocket.c.
References AO2_ALLOC_OPT_LOCK_RWLOCK, ao2_container_alloc_hash, AO2_CONTAINER_ALLOC_OPT_DUPS_REPLACE, ast_channel_register(), ast_format_cap_alloc, ast_format_cap_append_by_type(), AST_FORMAT_CAP_FLAG_DEFAULT, ast_http_uri_link(), ast_log, AST_MEDIA_TYPE_UNKNOWN, AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, ast_websocket_server_add_protocol2(), ast_websocket_server_create(), ast_websocket_sub_protocol_alloc(), ast_ws_server, ast_channel_tech::capabilities, http_uri, incoming_ws_established_cb(), instances, LOG_ERROR, LOG_WARNING, ast_websocket_protocol::session_established, unload_module(), and websocket_tech.
|
static |
Definition at line 528 of file chan_websocket.c.
References ast_channel_name(), ast_debug, AST_LIST_LOCK, AST_LIST_UNLOCK, websocket_pvt::bulk_media_in_progress, websocket_pvt::bytes_read, websocket_pvt::channel, websocket_pvt::frame_queue, websocket_pvt::frame_queue_length, websocket_pvt::leftover_data, websocket_pvt::leftover_len, MIN, NULL, websocket_pvt::optimal_frame_size, queue_frame_from_buffer(), QUEUE_LENGTH_MAX, and SCOPED_LOCK.
Referenced by read_from_ws_and_queue().
|
static |
Definition at line 411 of file chan_websocket.c.
References ANSWER_CHANNEL, ast_asprintf, ast_begins_with(), ast_channel_name(), AST_CONTROL_ANSWER, AST_CONTROL_HANGUP, ast_debug, ast_free, ast_frfree, AST_LIST_LOCK, AST_LIST_REMOVE_HEAD, AST_LIST_UNLOCK, ast_log, ast_queue_control(), ast_strdupa, ast_strings_equal(), ast_strip(), ast_strlen_zero(), ast_websocket_write_string(), websocket_pvt::bulk_media_in_progress, websocket_pvt::channel, CONTINUE_MEDIA, DRIVER_STATUS, FLUSH_MEDIA, websocket_pvt::frame_queue, websocket_pvt::frame_queue_length, GET_DRIVER_STATUS, HANGUP_CHANNEL, id, websocket_pvt::leftover_data, websocket_pvt::leftover_len, LOG_WARNING, MAX_TEXT_MESSAGE_LEN, MEDIA_BUFFERING_COMPLETED, NULL, PAUSE_MEDIA, queue_frame_from_buffer(), websocket_pvt::queue_full, QUEUE_LENGTH_XOFF_LEVEL, QUEUE_LENGTH_XON_LEVEL, queue_option_frame(), websocket_pvt::queue_paused, websocket_pvt::report_queue_drained, REPORT_QUEUE_DRAINED, S_COR, S_OR, SCOPED_LOCK, START_MEDIA_BUFFERING, status, STOP_MEDIA_BUFFERING, and websocket_pvt::websocket.
Referenced by read_from_ws_and_queue().
|
static |
Definition at line 347 of file chan_websocket.c.
References ast_channel_name(), ast_debug, AST_FRAME_SET_BUFFER, AST_FRAME_VOICE, ast_frisolate, AST_LIST_INSERT_TAIL, AST_LIST_LOCK, AST_LIST_UNLOCK, ast_log, ast_websocket_write_string(), websocket_pvt::channel, ast_frame::datalen, ast_frame_subclass::format, websocket_pvt::frame_queue, websocket_pvt::frame_queue_length, ast_frame::frametype, len(), LOG_WARNING, MEDIA_XOFF, websocket_pvt::native_codec, websocket_pvt::native_format, NULL, websocket_pvt::queue_full, QUEUE_LENGTH_XOFF_LEVEL, ast_frame::samples, ast_codec::samples_count, SCOPED_LOCK, ast_frame::subclass, and websocket_pvt::websocket.
Referenced by process_binary_message(), and process_text_message().
|
static |
Definition at line 384 of file chan_websocket.c.
References ast_channel_name(), AST_CONTROL_OPTION, ast_debug, AST_FRAME_CONTROL, AST_FRAME_SET_BUFFER, ast_frisolate, AST_LIST_INSERT_TAIL, AST_LIST_LOCK, AST_LIST_UNLOCK, ast_log, websocket_pvt::channel, websocket_pvt::frame_queue, ast_frame::frametype, ast_frame_subclass::integer, LOG_WARNING, NULL, and ast_frame::subclass.
Referenced by process_text_message().
|
static |
Definition at line 648 of file chan_websocket.c.
References ao2_lock, ao2_unlock, ast_channel_name(), ast_debug, ast_log, ast_wait_for_input(), ast_websocket_fd(), AST_WEBSOCKET_OPCODE_BINARY, AST_WEBSOCKET_OPCODE_CLOSE, AST_WEBSOCKET_OPCODE_TEXT, ast_websocket_read(), websocket_pvt::channel, errno, LOG_WARNING, NULL, process_binary_message(), process_text_message(), and websocket_pvt::websocket.
Referenced by read_thread_handler().
|
static |
Definition at line 720 of file chan_websocket.c.
References ao2_cleanup, ast_asprintf, ast_channel_name(), AST_CONTROL_ANSWER, AST_CONTROL_HANGUP, ast_debug, ast_format_get_name(), ast_free, ast_log, ast_queue_control(), ast_websocket_write_string(), LOG_ERROR, MEDIA_START, NULL, RAII_VAR, and read_from_ws_and_queue().
Referenced by incoming_ws_established_cb(), and webchan_call().
|
static |
Definition at line 126 of file chan_websocket.c.
References ast_channel_rawreadformat(), ast_channel_set_rawreadformat(), ast_debug, ast_format_cmp(), AST_FORMAT_CMP_NOT_EQUAL, ast_format_get_name(), and websocket_pvt::channel.
Referenced by webchan_read().
|
static |
Definition at line 1062 of file chan_websocket.c.
References ast_channel_name(), ast_channel_set_fd(), ast_debug, ast_format_get_default_ms(), ast_timer_fd(), ast_timer_open(), ast_timer_set_rate(), websocket_pvt::channel, websocket_pvt::native_format, and websocket_pvt::timer.
Referenced by webchan_request().
|
static |
Definition at line 1083 of file chan_websocket.c.
References ast_asprintf, ast_free, websocket_pvt::channel, websocket_pvt::connection_id, MEDIA_WEBSOCKET_CONNECTION_ID, MEDIA_WEBSOCKET_OPTIMAL_FRAME_SIZE, NULL, websocket_pvt::optimal_frame_size, and pbx_builtin_setvar_helper().
Referenced by webchan_request().
|
static |
Definition at line 1039 of file chan_websocket.c.
References ast_calloc, AST_FRAME_VOICE, ast_frame::data, ast_frame::datalen, ast_codec::default_ms, ast_frame_subclass::format, ast_frame::frametype, ast_frame::mallocd, ast_codec::minimum_bytes, ast_codec::minimum_ms, ast_frame::offset, ast_frame::ptr, ast_frame::samples, websocket_pvt::silence, websocket_pvt::slin_codec, websocket_pvt::slin_format, ast_frame::src, and ast_frame::subclass.
Referenced by webchan_request().
|
static |
Definition at line 1008 of file chan_websocket.c.
References ao2_bump, ast_channel_name(), ast_debug, ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_format_get_codec(), ast_format_get_default_ms(), ast_format_get_name(), ast_format_get_sample_rate(), ast_log, ast_translator_build_path(), websocket_pvt::channel, LOG_ERROR, websocket_pvt::native_codec, websocket_pvt::native_format, ast_codec::sample_rate, websocket_pvt::slin_codec, websocket_pvt::slin_format, and websocket_pvt::translator.
Referenced by webchan_request().
|
static |
Function called when our module is unloaded.
Definition at line 1446 of file chan_websocket.c.
References ao2_cleanup, ast_channel_unregister(), ast_http_uri_unlink(), ast_ws_server, ast_channel_tech::capabilities, http_uri, instances, NULL, and websocket_tech.
Referenced by load_module().
|
static |
Definition at line 800 of file chan_websocket.c.
References ao2_bump, ao2_cleanup, ast_channel_name(), ast_channel_tech_pvt(), ast_debug, ast_log, ast_pthread_create_detached_background, ast_websocket_client_connect(), ast_websocket_fd(), ast_websocket_result_to_str(), AST_WS_TYPE_SERVER, websocket_pvt::channel, websocket_pvt::client, websocket_pvt::connection_id, errno, LOG_WARNING, NULL, websocket_pvt::outbound_read_thread, read_thread_handler(), result, websocket_pvt::type, websocket_pvt::websocket, and WS_OK.
|
static |
Definition at line 1253 of file chan_websocket.c.
References ao2_cleanup, ao2_lock, ao2_unlock, ast_channel_name(), ast_channel_tech_pvt(), ast_channel_tech_pvt_set(), ast_debug, ast_websocket_close(), ast_websocket_unref(), websocket_pvt::connection_id, NULL, and websocket_pvt::websocket.
|
static |
Definition at line 247 of file chan_websocket.c.
References ast_calloc, ast_channel_name(), ast_channel_tech_pvt(), ast_debug, ast_frame_free(), ast_frdup, ast_free, AST_FRIENDLY_OFFSET, ast_log, AST_MALLOCD_DATA, ast_timer_ack(), ast_timer_get_event(), AST_TIMING_EVENT_EXPIRED, ast_translate(), ast_frame::data, ast_frame::datalen, dequeue_frame(), LOG_WARNING, ast_frame::mallocd, websocket_pvt::native_format, NULL, ast_frame::offset, websocket_pvt::optimal_frame_size, ast_frame::ptr, ast_frame::samples, set_channel_format(), websocket_pvt::silence, websocket_pvt::slin_format, websocket_pvt::timer, and websocket_pvt::translator.
|
static |
Definition at line 1116 of file chan_websocket.c.
References ao2_bump, ao2_cleanup, args, AST_APP_ARG, ast_app_parse_options(), AST_CAUSE_FAILURE, ast_channel_alloc, ast_channel_name(), ast_channel_nativeformats_set(), ast_channel_set_rawreadformat(), ast_channel_set_rawwriteformat(), ast_channel_set_readformat(), ast_channel_set_writeformat(), ast_channel_tech_pvt_set(), ast_channel_tech_set(), ast_channel_unlock, ast_debug, AST_DECLARE_APP_ARGS, ast_format_cache_get, ast_format_cap_alloc, ast_format_cap_append, AST_FORMAT_CAP_FLAG_DEFAULT, ast_format_cap_get_format(), ast_log, AST_NONSTANDARD_APP_ARGS, AST_STATE_DOWN, ast_strdupa, ast_strlen_zero(), ast_test_flag, LOG_ERROR, LOG_WARNING, NULL, OPT_ARG_ARRAY_SIZE, OPT_ARG_WS_CODEC, OPT_WS_CODEC, OPT_WS_NO_AUTO_ANSWER, options, RAII_VAR, set_channel_timer(), set_channel_variables(), set_instance_silence_frame(), set_instance_translator(), websocket_new(), websocket_options, and websocket_tech.
|
static |
Function called when we should write a frame to the channel.
Definition at line 770 of file chan_websocket.c.
References ast_channel_name(), ast_channel_tech_pvt(), ast_format_get_name(), AST_FRAME_VOICE, ast_log, AST_WEBSOCKET_OPCODE_BINARY, ast_websocket_write(), ast_frame::data, ast_frame::datalen, ast_frame_subclass::format, ast_frame::frametype, LOG_WARNING, websocket_pvt::native_format, ast_frame::ptr, ast_frame::subclass, and websocket_pvt::websocket.
|
static |
Definition at line 855 of file chan_websocket.c.
References ao2_cleanup, ast_channel_unref, ast_debug, ast_free, ast_frfree, AST_LIST_LOCK, AST_LIST_REMOVE_HEAD, AST_LIST_UNLOCK, ast_timer_close(), ast_translator_free_path(), ast_websocket_unref(), websocket_pvt::channel, websocket_pvt::client, websocket_pvt::connection_id, ast_frame::data, websocket_pvt::frame_queue, websocket_pvt::leftover_data, websocket_pvt::native_codec, websocket_pvt::native_format, NULL, ast_frame::ptr, websocket_pvt::silence, websocket_pvt::slin_codec, websocket_pvt::slin_format, websocket_pvt::timer, websocket_pvt::translator, and websocket_pvt::websocket.
Referenced by websocket_new().
|
static |
Definition at line 925 of file chan_websocket.c.
References ao2_alloc, ao2_bump, ao2_cleanup, ao2_link_flags, ao2_weakproxy_alloc, ao2_weakproxy_set_object, ao2_weakproxy_subscribe(), ast_calloc, ast_debug, ast_format_get_codec(), AST_LIST_HEAD_INIT, ast_log, ast_strings_equal(), ast_uuid_generate_str(), AST_UUID_STR_LEN, ast_websocket_client_retrieve_by_id(), AST_WS_TYPE_CLIENT, AST_WS_TYPE_SERVER, websocket_pvt::connection_id, INCOMING_CONNECTION_ID, instance_proxy_cb(), instances, LOG_ERROR, NULL, OBJ_NOLOCK, RAII_VAR, SCOPED_AO2WRLOCK, uuid(), and websocket_destructor().
Referenced by webchan_request().
|
static |
Definition at line 1518 of file chan_websocket.c.
|
static |
Definition at line 1518 of file chan_websocket.c.
|
static |
Definition at line 52 of file chan_websocket.c.
Referenced by incoming_ws_http_callback(), load_module(), and unload_module().
|
static |
Definition at line 1435 of file chan_websocket.c.
Referenced by load_module(), and unload_module().
|
static |
Definition at line 54 of file chan_websocket.c.
Referenced by incoming_ws_established_cb(), incoming_ws_http_callback(), instance_proxy_cb(), load_module(), unload_module(), and websocket_new().
|
static |
Definition at line 1114 of file chan_websocket.c.
Referenced by webchan_request().
|
static |
Definition at line 116 of file chan_websocket.c.
Referenced by load_module(), unload_module(), and webchan_request().