mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
ari: Add Snoop operation for spying/whispering on channels.
The Snoop operation can be invoked on a channel to spy or whisper on it. It returns a channel that any channel operations can then be invoked on (such as record to do monitoring). (closes issue ASTERISK-22780) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/3003/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403117 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
60
include/asterisk/stasis_app_snoop.h
Normal file
60
include/asterisk/stasis_app_snoop.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Asterisk -- An open source telephony toolkit.
|
||||
*
|
||||
* Copyright (C) 2013, Digium, Inc.
|
||||
*
|
||||
* Joshua Colp <jcolp@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.
|
||||
*/
|
||||
|
||||
#ifndef _ASTERISK_STASIS_APP_SNOOP_H
|
||||
#define _ASTERISK_STASIS_APP_SNOOP_H
|
||||
|
||||
/*! \file
|
||||
*
|
||||
* \brief Stasis Application Snoop API. See \ref res_stasis "Stasis
|
||||
* Application API" for detailed documentation.
|
||||
*
|
||||
* \author Joshua Colp <jcolp@digium.com>
|
||||
* \since 12
|
||||
*/
|
||||
|
||||
#include "asterisk/stasis_app.h"
|
||||
|
||||
/*! \brief Directions for audio stream flow */
|
||||
enum stasis_app_snoop_direction {
|
||||
/*! \brief No direction */
|
||||
STASIS_SNOOP_DIRECTION_NONE = 0,
|
||||
/*! \brief Audio stream out to the channel */
|
||||
STASIS_SNOOP_DIRECTION_OUT,
|
||||
/*! \brief Audio stream in from the channel */
|
||||
STASIS_SNOOP_DIRECTION_IN,
|
||||
/*! \brief Audio stream to AND from the channel */
|
||||
STASIS_SNOOP_DIRECTION_BOTH,
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Create a snoop on the provided channel.
|
||||
*
|
||||
* \param chan Channel to snoop on.
|
||||
* \param spy Direction of media that should be spied on.
|
||||
* \param whisper Direction of media that should be whispered into.
|
||||
* \param app Stasis application to execute on the snoop channel.
|
||||
* \param app_args Stasis application arguments.
|
||||
* \return Snoop channel. ast_channel_unref() when done.
|
||||
* \return \c NULL if snoop channel couldn't be created.
|
||||
*/
|
||||
struct ast_channel *stasis_app_control_snoop(struct ast_channel *chan,
|
||||
enum stasis_app_snoop_direction spy, enum stasis_app_snoop_direction whisper,
|
||||
const char *app, const char *app_args);
|
||||
|
||||
#endif /* _ASTERISK_STASIS_APP_SNOOP_H */
|
Reference in New Issue
Block a user