session-ios/Libraries/spandsp/spandsp/spandsp/private/at_interpreter.h

131 lines
3.5 KiB
C

/*
* SpanDSP - a series of DSP components for telephony
*
* private/at_interpreter.h - AT command interpreter to V.251, V.252, V.253, T.31 and the 3GPP specs.
*
* Written by Steve Underwood <steveu@coppice.org>
*
* Copyright (C) 2004, 2005, 2006 Steve Underwood
*
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 2.1,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: at_interpreter.h,v 1.1 2008/11/30 05:43:37 steveu Exp $
*/
/*! \file */
#if !defined(_SPANDSP_PRIVATE_AT_INTERPRETER_H_)
#define _SPANDSP_PRIVATE_AT_INTERPRETER_H_
typedef struct at_call_id_s at_call_id_t;
struct at_call_id_s
{
char *id;
char *value;
at_call_id_t *next;
};
/*!
AT descriptor. This defines the working state for a single instance of
the AT interpreter.
*/
struct at_state_s
{
at_profile_t p;
/*! Value set by +GCI */
int country_of_installation;
/*! Value set by +FIT */
int dte_inactivity_timeout;
/*! Value set by +FIT */
int dte_inactivity_action;
/*! Value set by L */
int speaker_volume;
/*! Value set by M */
int speaker_mode;
/*! This is no real DTE rate. This variable is for compatibility this serially
connected modems. */
/*! Value set by +IPR/+FPR */
int dte_rate;
/*! Value set by +ICF */
int dte_char_format;
/*! Value set by +ICF */
int dte_parity;
/*! Value set by &C */
int rlsd_behaviour;
/*! Value set by &D */
int dtr_behaviour;
/*! Value set by +FCL */
int carrier_loss_timeout;
/*! Value set by X */
int result_code_mode;
/*! Value set by +IDSR */
int dsr_option;
/*! Value set by +ILSD */
int long_space_disconnect_option;
/*! Value set by +ICLOK */
int sync_tx_clock_source;
/*! Value set by +EWIND */
int rx_window;
/*! Value set by +EWIND */
int tx_window;
int v8bis_signal;
int v8bis_1st_message;
int v8bis_2nd_message;
int v8bis_sig_en;
int v8bis_msg_en;
int v8bis_supp_delay;
uint8_t rx_data[256];
int rx_data_bytes;
int display_call_info;
int call_info_displayed;
at_call_id_t *call_id;
char *local_id;
/*! The currently select FAX modem class. 0 = data modem mode. */
int fclass_mode;
int at_rx_mode;
int rings_indicated;
int do_hangup;
int silent_dial;
int command_dial;
int ok_is_pending;
int dte_is_waiting;
/*! \brief TRUE if a carrier is presnt. Otherwise FALSE. */
int rx_signal_present;
/*! \brief TRUE if a modem has trained, Otherwise FALSE. */
int rx_trained;
int transmit;
char line[256];
int line_ptr;
at_modem_control_handler_t *modem_control_handler;
void *modem_control_user_data;
at_tx_handler_t *at_tx_handler;
void *at_tx_user_data;
at_class1_handler_t *class1_handler;
void *class1_user_data;
/*! \brief Error and flow logging control */
logging_state_t logging;
};
#endif
/*- End of file ------------------------------------------------------------*/