Files
asterisk/funcs/func_audiohookinherit.c
Jonathan Rose af4cd65143 Channels: Masquerades to automatically move frame/audio hooks
Whenever possible, audiohooks and framehooks will now be copied over
to the channel that the masquerading channel gets cloned into. This
should occur for all audiohooks and most framehooks. As a result,
in Asterisk 12.5 and up, the AUDIOHOOK_INHERIT function is now
deprecated and its behavior is essentially the new default for all
audiohooks, plus some additional audiohooks/framehooks.

Review: https://reviewboard.asterisk.org/r/3721/
........

Merged revisions 418914 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-07-18 16:28:10 +00:00

90 lines
2.5 KiB
C

/*
* Asterisk -- An open source telephony toolkit.
*
* Copyright (C) 2008, Digium, Inc.
*
* Mark Michelson <mmichelson@digium.com>
*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
* any of the maintainers of this project for assistance;
* the project provides a web site, mailing lists and IRC
* channels for your use.
*
* This program is free software, distributed under the terms of
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree.
*
* Please follow coding guidelines
* http://svn.digium.com/view/asterisk/trunk/doc/CODING-GUIDELINES
*/
/*! \file
*
* \brief Audiohook inheritance function
*
* \author Mark Michelson <mmichelson@digium.com>
*
* \ingroup functions
*/
/*** MODULEINFO
<support_level>deprecated</support_level>
***/
#include "asterisk.h"
#include "asterisk/channel.h"
#include "asterisk/logger.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
/*** DOCUMENTATION
<function name = "AUDIOHOOK_INHERIT" language="en_US">
<synopsis>
DEPRECATED: Used to set whether an audiohook may be inherited to another
channel. Due to architectural changes in Asterisk 12, audiohook inheritance
is performed automatically and this function now lacks function.
</synopsis>
<description>
<para>Prior to Asterisk 12, masquerades would occur under all sorts of
situations which were hard to predict. In Asterisk 12, masquerades now only
occur as a result of small set of similar operations for which inheriting
all audiohooks from the original channel is now safe, so in Asterisk 12.5+,
all audiohooks are inherited without needing other controls expressing
which audiohooks should be inherited under which which conditions.</para>
</description>
</function>
***/
static int func_inheritance_write(struct ast_channel *chan, const char *function, char *data, const char *value)
{
static int warned = 0;
if (!warned) {
ast_log(LOG_NOTICE, "AUDIOHOOK_INHERIT is deprecated and now does nothing.\n");
warned++;
}
return 0;
}
static struct ast_custom_function inheritance_function = {
.name = "AUDIOHOOK_INHERIT",
.write = func_inheritance_write,
};
static int unload_module(void)
{
return ast_custom_function_unregister(&inheritance_function);
}
static int load_module(void)
{
if (ast_custom_function_register(&inheritance_function)) {
return AST_MODULE_LOAD_DECLINE;
} else {
return AST_MODULE_LOAD_SUCCESS;
}
}
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Audiohook inheritance placeholder function");