20 #ifndef _ASTERISK_RES_FAX_H
21 #define _ASTERISK_RES_FAX_H
35 enum ast_fax_capabilities {
37 AST_FAX_TECH_SEND = (1 << 0),
39 AST_FAX_TECH_RECEIVE = (1 << 1),
41 AST_FAX_TECH_AUDIO = (1 << 2),
43 AST_FAX_TECH_T38 = (1 << 3),
45 AST_FAX_TECH_MULTI_DOC = (1 << 4),
47 AST_FAX_TECH_GATEWAY = (1 << 5),
49 AST_FAX_TECH_V21_DETECT = (1 << 6),
55 AST_FAX_MODEM_V17 = (1 << 0),
57 AST_FAX_MODEM_V27TER = (1 << 1),
59 AST_FAX_MODEM_V29 = (1 << 2),
61 AST_FAX_MODEM_V34 = (1 << 3),
67 AST_FAX_STATE_UNINITIALIZED = 0,
69 AST_FAX_STATE_INITIALIZED,
75 AST_FAX_STATE_COMPLETE,
77 AST_FAX_STATE_RESERVED,
79 AST_FAX_STATE_INACTIVE,
83 enum ast_fax_optflag {
85 AST_FAX_OPTFLAG_FALSE = 0,
89 AST_FAX_OPTFLAG_DEFAULT,
95 enum ast_control_t38_rate
rate;
113 enum ast_fax_capabilities
caps;
199 struct ast_fax_tech_token;
232 #define AST_FAX_FRFLAG_GATEWAY (1 << 13)
243 const enum ast_fax_capabilities
caps;
306 void ast_fax_log(
int level,
const char *file,
const int line,
const char *
function,
const char *msg);
const ast_string_field result
int(*const switch_to_t38)(struct ast_fax_session *)
Main Channel structure associated with a channel.
Asterisk locking-related definitions:
Asterisk main include file. File version handling, generic pbx functions.
const struct ast_fax_tech * tech
int(*const generate_silence)(struct ast_fax_session *)
unsigned long frames_sent
const ast_string_field headerinfo
unsigned long frames_received
char *(*const cli_show_stats)(int)
void ast_fax_tech_unregister(struct ast_fax_tech *tech)
unregister a FAX technology module
const ast_string_field transfer_rate
void(*const release_token)(struct ast_fax_tech_token *)
struct ast_smoother * smoother
int(*const cancel_session)(struct ast_fax_session *)
enum ast_control_t38_rate rate
#define AST_DECLARE_STRING_FIELDS(field_list)
Declare the fields needed in a structure.
const char *const description
struct ast_channel * chan
void ast_fax_log(int level, const char *file, const int line, const char *function, const char *msg)
Log message at FAX or recommended level.
struct ast_fax_debug_info * debug_info
struct ast_fax_t38_parameters our_t38_parameters
enum ast_fax_capabilities caps
struct ast_fax_tech_token *(*const reserve_session)(struct ast_fax_session *)
#define AST_STRING_FIELD(name)
Declare a string field.
Asterisk internal frame definitions.
struct ast_fax_session_details * details
In case you didn't read that giant block of text above the mansession_session struct, the mansession is named this solely to keep the API the same in Asterisk. This structure really represents data that is different from Manager action to Manager action. The mansession_session pointer contained within points to session-specific data.
unsigned int ast_fax_minrate(void)
get the minimum supported fax rate
A set of macros to manage forward-linked lists.
The data communicated between the high level applications and the generic fax function.
struct ast_module * module
const ast_string_field remotestationid
The AMI - Asterisk Manager Interface - is a TCP protocol created to manage Asterisk with third-party ...
#define AST_LIST_HEAD_NOLOCK(name, type)
Defines a structure to be used to hold a list of specified type (with no lock).
unsigned int transcoding_mmr
unsigned int transcoding_jbig
void(*const destroy_session)(struct ast_fax_session *)
unsigned int pages_transferred
struct ast_fax_documents documents
used to register a FAX technology module with res_fax
#define AST_LIST_ENTRY(type)
Declare a forward link structure inside a list entry.
const char *const version
void *(*const new_session)(struct ast_fax_session *, struct ast_fax_tech_token *)
enum ast_fax_modems modems
void(*const manager_fax_session)(struct mansession *, const char *, struct ast_fax_session *)
unsigned int ast_fax_maxrate(void)
get the maxiumum supported fax rate
char *(*const cli_show_session)(struct ast_fax_session *, int)
const char * ast_fax_session_operation_str(struct ast_fax_session *s)
get string representation of a FAX session's operation
Standard Command Line Interface.
union ast_fax_session_details::@249 option
struct ast_frame *(*const read)(struct ast_fax_session *)
The data required to handle a fax session.
Data structure associated with a single frame of data.
enum ast_control_t38_rate_management rate_management
enum ast_fax_capabilities caps
int ast_fax_tech_register(struct ast_fax_tech *tech)
register a FAX technology module
Options provided by main asterisk program.
int(*const write)(struct ast_fax_session *, const struct ast_frame *)
const ast_string_field resultstr
const ast_string_field localstationid
const char * ast_fax_state_to_str(enum ast_fax_state state)
convert a ast_fax_state to a string
const ast_string_field error
char *(*const cli_show_capabilities)(int)
int(*const start_session)(struct ast_fax_session *)
char *(*const cli_show_settings)(int)
Asterisk module definitions.
unsigned int fill_bit_removal
struct ast_fax_t38_parameters their_t38_parameters
const ast_string_field resolution