Fix building that was broken by recent monitor.h changes. Thanks Russell for pointin...
[asterisk/asterisk.git] / include / asterisk / monitor.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 1999 - 2005, Digium, Inc.
5  *
6  * Mark Spencer <markster@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2. See the LICENSE file
16  * at the top of the source tree.
17  */
18
19 /*! \file
20  * \brief Channel monitoring
21  */
22
23 #ifndef _ASTERISK_MONITOR_H
24 #define _ASTERISK_MONITOR_H
25
26 #include "asterisk/channel.h"
27
28 enum AST_MONITORING_STATE {
29         AST_MONITOR_RUNNING,
30         AST_MONITOR_PAUSED
31 };
32
33 /* Streams recording control */
34 #define X_REC_IN        1
35 #define X_REC_OUT       2
36 #define X_JOIN          4
37
38 /*! Responsible for channel monitoring data */
39 struct ast_channel_monitor {
40         struct ast_filestream *read_stream;
41         struct ast_filestream *write_stream;
42         char read_filename[FILENAME_MAX];
43         char write_filename[FILENAME_MAX];
44         char filename_base[FILENAME_MAX];
45         int filename_changed;
46         char *format;
47         int joinfiles;
48         enum AST_MONITORING_STATE state;
49         int (*stop)(struct ast_channel *chan, int need_lock);
50 };
51
52 /* Start monitoring a channel */
53 int ast_monitor_start(struct ast_channel *chan, const char *format_spec,
54                       const char *fname_base, int need_lock, int stream_action);
55
56 /* Stop monitoring a channel */
57 int ast_monitor_stop(struct ast_channel *chan, int need_lock);
58
59 /* Change monitoring filename of a channel */
60 int ast_monitor_change_fname(struct ast_channel *chan,
61                              const char *fname_base, int need_lock);
62
63 void ast_monitor_setjoinfiles(struct ast_channel *chan, int turnon);
64
65 /* Pause monitoring of a channel */
66 int ast_monitor_pause(struct ast_channel *chan);
67
68 /* Unpause monitoring of a channel */
69 int ast_monitor_unpause(struct ast_channel *chan);
70
71 #endif /* _ASTERISK_MONITOR_H */