25 #ifndef _ASTERISK_FILE_H
26 #define _ASTERISK_FILE_H
36 #if defined(__cplusplus) || defined(c_plusplus)
44 #define AST_MAX_FORMATS 10
47 #define AST_DIGIT_NONE ""
48 #define AST_DIGIT_ANY "0123456789#*ABCD"
49 #define AST_DIGIT_ANYNUM "0123456789"
51 #define SEEK_FORCECUR 10
55 AST_WAITSTREAM_CB_REWIND = 1,
56 AST_WAITSTREAM_CB_FASTFORWARD,
57 AST_WAITSTREAM_CB_START
112 int ast_fileexists(
const char *filename,
const char *fmt,
const char *preflang);
122 int ast_filerename(
const char *oldname,
const char *newname,
const char *fmt);
139 int ast_filecopy(
const char *oldname,
const char *newname,
const char *fmt);
166 int ast_file_fdtemp(
const char *path,
char **filename,
const char *template_name);
203 #define ast_file_read_dir(dir_name, on_file, obj) ast_file_read_dirs(dir_name, on_file, obj, 1)
290 struct ast_filestream *
ast_readfile(
const char *filename,
const char *type,
const char *comment,
int flags,
int check, mode_t mode);
307 struct ast_filestream *
ast_writefile(
const char *filename,
const char *type,
const char *comment,
int flags,
int check, mode_t mode);
441 #define AST_RESERVED_POINTERS 20
474 #if defined(__cplusplus) || defined(c_plusplus)
int ast_filecopy(const char *oldname, const char *newname, const char *fmt)
Copies a file.
Main Channel structure associated with a channel.
void( ast_waitstream_fr_cb)(struct ast_channel *chan, long ms, enum ast_waitstream_fr_cb_values val)
callback used during dtmf controlled file playback to indicate location of playback in a file after r...
int ast_streamfile(struct ast_channel *c, const char *filename, const char *preflang)
Streams a file.
char context[AST_MAX_CONTEXT]
ast_waitstream_fr_cb_values
struct ast_filestream * ast_openstream_full(struct ast_channel *chan, const char *filename, const char *preflang, int asis)
Opens stream for use in seeking, playing.
int ast_filedelete(const char *filename, const char *fmt)
Deletes a file.
int ast_file_read_dirs(const char *dir_name, ast_file_on_file on_file, void *obj, int max_depth)
Recursively iterate through files and directories up to max_depth.
int ast_stream_fastforward(struct ast_filestream *fs, off_t ms)
Fast forward stream ms.
off_t ast_tellstream(struct ast_filestream *fs)
Tell where we are in a stream.
int ast_playstream(struct ast_filestream *s)
Play a open stream on a channel.
struct ast_filestream * ast_openvstream(struct ast_channel *chan, const char *filename, const char *preflang)
Opens stream for use in seeking, playing.
char * ast_format_str_reduce(char *fmts)
int ast_waitstream_fr(struct ast_channel *c, const char *breakon, const char *forward, const char *rewind, int ms)
Same as waitstream but allows stream to be forwarded or rewound.
int ast_ratestream(struct ast_filestream *fs)
Return the sample rate of the stream's format.
int(* ast_file_on_file)(const char *dir_name, const char *filename, void *obj)
Callback called for each file found when reading directories.
int ast_applystream(struct ast_channel *chan, struct ast_filestream *s)
Applies a open stream to a channel.
struct ast_frame * ast_readframe(struct ast_filestream *s)
Read a frame from a filestream.
int ast_stream_rewind(struct ast_filestream *fs, off_t ms)
Rewind stream ms.
struct ast_filestream * ast_writefile(const char *filename, const char *type, const char *comment, int flags, int check, mode_t mode)
Starts writing a file.
int ast_seekstream(struct ast_filestream *fs, off_t sample_offset, int whence)
Seeks into stream.
int ast_stream_and_wait(struct ast_channel *chan, const char *file, const char *digits)
stream file until digit If the file name is non-empty, try to play it.
int ast_closestream(struct ast_filestream *f)
Closes a stream.
struct ast_format * ast_get_format_for_file_ext(const char *file_ext)
Get the ast_format associated with the given file extension.
int ast_truncstream(struct ast_filestream *fs)
Trunc stream at current location.
int ast_file_fdtemp(const char *path, char **filename, const char *template_name)
Create a temporary file located at path.
int ast_waitstream_full(struct ast_channel *c, const char *breakon, int audiofd, int monfd)
This structure is allocated by file.c in one chunk, together with buf_size and desc_size bytes of mem...
FILE * ast_file_mkftemp(char *template_name, mode_t mode)
same as mkstemp, but return a FILE
int ast_writestream(struct ast_filestream *fs, struct ast_frame *f)
Writes a frame to a stream.
int ast_waitstream(struct ast_channel *c, const char *breakon)
Waits for a stream to stop or digit to be pressed.
int ast_fileexists(const char *filename, const char *fmt, const char *preflang)
Checks for the existence of a given file.
Data structure associated with a single frame of data.
struct ast_filestream * ast_readfile(const char *filename, const char *type, const char *comment, int flags, int check, mode_t mode)
Starts reading from a file.
int ast_filerename(const char *oldname, const char *newname, const char *fmt)
Renames a file.
int ast_get_extension_for_mime_type(const char *mime_type, char *buffer, size_t capacity)
Get a suitable filename extension for the given MIME type.
int ast_stopstream(struct ast_channel *c)
Stops a stream.
struct ast_filestream * ast_openstream(struct ast_channel *chan, const char *filename, const char *preflang)
Opens stream for use in seeking, playing.
int ast_waitstream_fr_w_cb(struct ast_channel *c, const char *breakon, const char *forward, const char *rewind, int ms, ast_waitstream_fr_cb cb)
Same as waitstream_fr but allows a callback to be alerted when a user fastforwards or rewinds the fil...
int ast_waitstream_exten(struct ast_channel *c, const char *context)
Waits for a stream to stop or digit matching a valid one digit exten to be pressed.