
/*
 *
  Copyright (c) Eicon Networks, 2002.
 *
  This source file is supplied for the use with
  Eicon Networks range of DIVA Server Adapters.
 *
  Eicon File Revision :    2.1
 *
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2, or (at your option)
  any later version.
 *
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the GNU General Public License for more details.
 *
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

/*#define DEBUG */




  
  





#define IMPLEMENT_DTMF 1
#define IMPLEMENT_LINE_INTERCONNECT2 1
#define IMPLEMENT_ECHO_CANCELLER 1
#define IMPLEMENT_RTP 1
#define IMPLEMENT_T38 1
#define IMPLEMENT_FAX_SUB_SEP_PWD 1
#define IMPLEMENT_V18 1
#define IMPLEMENT_DTMF_TONE 1
#define IMPLEMENT_PIAFS 1
#define IMPLEMENT_FAX_PAPER_FORMATS 1
#define IMPLEMENT_VOWN 1
#define IMPLEMENT_CAPIDTMF 1
#define IMPLEMENT_FAX_NONSTANDARD 1
#define VSWITCH_SUPPORT 1


#define IMPLEMENT_LINE_INTERCONNECT 0
#define IMPLEMENT_MARKED_OK_AFTER_FC 1

#include "capidtmf.h"

/*------------------------------------------------------------------*/
/* Common API internal definitions                                  */
/*------------------------------------------------------------------*/

#define MAX_APPL 240
#define MAX_NCCI           127

#define MSG_IN_QUEUE_SIZE  ((4096 + 3) & 0xfffc)  /* must be multiple of 4 */


#define MSG_IN_OVERHEAD    sizeof(APPL   *)

#define MAX_NL_CHANNEL     255
#define MAX_DATA_B3        8
#define MAX_DATA_ACK       MAX_DATA_B3
#define MAX_MULTI_IE       6
#define MAX_MSG_SIZE       256
#define MAX_MSG_PARMS      10
#define MAX_CPN_MASK_SIZE  16
#define MAX_MSN_CONFIG     10
#define EXT_CONTROLLER     0x80
#define CODEC              0x01
#define CODEC_PERMANENT    0x02
#define ADV_VOICE          0x03
#define MAX_CIP_TYPES      5  /* kind of CIP types for group optimization */
#define C_IND_MASK_DWORDS  ((MAX_APPL+32) >> 5)


#define FAX_CONNECT_INFO_BUFFER_SIZE  256
#define NCPI_BUFFER_SIZE              256

#define MAX_CHANNELS_PER_PLCI         8
#define MAX_INTERNAL_COMMAND_LEVELS   4
#define INTERNAL_REQ_BUFFER_SIZE      272

#define INTERNAL_IND_BUFFER_SIZE      768

#define DTMF_PARAMETER_BUFFER_SIZE    12
#define ADV_VOICE_COEF_BUFFER_SIZE    50

#define LI_PLCI_B_QUEUE_ENTRIES       256



typedef struct _APPL APPL;
typedef struct _PLCI PLCI;
typedef struct _NCCI NCCI;
typedef struct _DIVA_CAPI_ADAPTER DIVA_CAPI_ADAPTER;
typedef struct _DATA_B3_DESC DATA_B3_DESC;
typedef struct _DATA_ACK_DESC DATA_ACK_DESC;
typedef struct manufacturer_profile_s MANUFACTURER_PROFILE;
typedef struct fax_ncpi_s FAX_NCPI;
typedef struct api_parse_s API_PARSE;
typedef struct api_save_s API_SAVE;
typedef struct msn_config_s MSN_CONFIG;
typedef struct msn_config_max_s MSN_CONFIG_MAX;
typedef struct msn_ld_s MSN_LD;

struct manufacturer_profile_s {
  dword private_options;
  dword rtp_primary_payloads;
  dword rtp_additional_payloads;
};

struct fax_ncpi_s {
  word options;
  word format;
};

struct msn_config_s {
  byte msn[MAX_CPN_MASK_SIZE];
};

struct msn_config_max_s {
  MSN_CONFIG    msn_conf[MAX_MSN_CONFIG];
};

struct msn_ld_s {
  dword low;
  dword high;
};

struct api_parse_s {
  word          length;
  byte   *    info;
};

struct api_save_s {
  API_PARSE     parms[MAX_MSG_PARMS+1];
  byte          info[MAX_MSG_SIZE];
};

struct _DATA_B3_DESC {
  word          Handle;
  word          Number;
  word          Flags;
  word          Length;
  void   *    P;
};

struct _DATA_ACK_DESC {
  word          Handle;
  word          Number;
};

typedef void (* t_std_internal_command)(dword Id, PLCI   *plci, byte Rc);

/************************************************************************/
/* Don't forget to adapt dos.asm after changing the _APPL structure!!!! */
struct _APPL {
  word          Id;
  word          NullCREnable;
  word          CDEnable;
  dword         S_Handle;






  LIST_ENTRY    s_function;
  dword         s_context;
  word          s_count;
  APPL *        s_next;
  byte *        xbuffer_used;
  void **       xbuffer_internal;
  void **       xbuffer_ptr;






  byte   *    queue;
  word          queue_size;
  word          queue_free;
  word          queue_read;
  word          queue_write;
  word          queue_signal;
  byte          msg_lost;
  byte          appl_flags;
  word          Number;

  word          MaxBuffer;
  byte          MaxNCCI;
  byte          MaxNCCIData;
  word          MaxDataLength;
  word          NCCIDataFlowCtrlTimer;
  byte   *    ReceiveBuffer;
  word   *    DataNCCI;
  word   *    DataFlags;
};


struct _PLCI {
  ENTITY        Sig;
  ENTITY        NL;
  word          RNum;
  word          RFlags;
  BUFFERS       RData[2];
  BUFFERS       XData[1];
  BUFFERS       NData[2];

  DIVA_CAPI_ADAPTER   *adapter;
  APPL      *appl;
  PLCI      *relatedPTYPLCI;
  byte          Id;
  byte          State;
  byte          sig_req;
  byte          nl_req;
  byte          SuppState;
  byte          channels;
  byte          tel;
  byte          B1_resource;
  byte          B2_prot;
  byte          B3_prot;

  word          command;
  word          m_command;
  word          internal_command;
  word          number;
  word          req_in_start;
  word          req_in;
  word          req_out;
  word          msg_in_write_pos;
  word          msg_in_read_pos;
  word          msg_in_wrap_pos;

  void   *    data_sent_ptr;
  byte          data_sent;
  byte          send_disc;
  byte          sig_global_req;
  byte          sig_remove_id;
  byte          nl_global_req;
  byte          nl_remove_id;
  byte          b_channel;
  byte          adv_nl;
  byte          manufacturer;
  byte          call_dir;
  byte          hook_state;
  byte          spoofed_msg;
  byte          ptyState;
  byte          cr_enquiry;
  word          hangup_flow_ctrl_timer;

  word          ncci_ring_list;
  byte          inc_dis_ncci_table[MAX_CHANNELS_PER_PLCI];
  t_std_internal_command internal_command_queue[MAX_INTERNAL_COMMAND_LEVELS];
  dword         c_ind_mask_table[C_IND_MASK_DWORDS];
  dword         group_optimization_mask_table[C_IND_MASK_DWORDS];
  byte          RBuffer[200];
  dword         msg_in_queue[MSG_IN_QUEUE_SIZE/sizeof(dword)];
  API_SAVE      saved_msg;
  API_SAVE      B_protocol;
  byte          fax_connect_info_length;
  byte          fax_connect_info_buffer[FAX_CONNECT_INFO_BUFFER_SIZE];
  byte          fax_edata_ack_length;
  word          nsf_control_bits;
  byte          ncpi_state;
  byte          ncpi_buffer[NCPI_BUFFER_SIZE];

  byte          internal_req_buffer[INTERNAL_REQ_BUFFER_SIZE];
  byte          internal_ind_buffer[INTERNAL_IND_BUFFER_SIZE + 3];
  dword         requested_options_conn;
  dword         requested_options;
  word          B1_facilities;
  API_SAVE   *adjust_b_parms_msg;
  word          adjust_b_facilities;
  word          adjust_b_command;
  word          adjust_b_ncci;
  word          adjust_b_mode;
  word          adjust_b_state;
  byte          adjust_b_restore;

  byte          dtmf_rec_active;
  word          dtmf_rec_pulse_ms;
  word          dtmf_rec_pause_ms;
  byte          dtmf_send_requests;
  word          dtmf_send_pulse_ms;
  word          dtmf_send_pause_ms;
  word          dtmf_cmd;
  word          dtmf_msg_number_queue[8];
  byte          dtmf_parameter_length;
  byte          dtmf_parameter_buffer[DTMF_PARAMETER_BUFFER_SIZE];


  t_capidtmf_state capidtmf_state;


  byte          li_bchannel_id;    /* BRI: 1..2, PRI: 1..32 */
  byte          li_channel_bits;
  byte          li_notify_update;
  word          li_cmd;
  word          li_write_command;
  word          li_write_channel;
  word          li_plci_b_write_pos;
  word          li_plci_b_read_pos;
  word          li_plci_b_req_pos;
  dword         li_plci_b_queue[LI_PLCI_B_QUEUE_ENTRIES];


  word          ec_cmd;
  word          ec_idi_options;
  word          ec_tail_length;


  byte          tone_last_indication_code;

  byte          vswitchstate;
  byte          vsprot;
  byte          vsprotdialect;
  byte          notifiedcall; /* Flag if it is a spoofed call */

  int           rx_dma_descriptor;
  dword         rx_dma_magic;
};


struct _NCCI {
  byte          data_out;
  byte          data_pending;
  byte          data_ack_out;
  byte          data_ack_pending;
  DATA_B3_DESC  DBuffer[MAX_DATA_B3];
  DATA_ACK_DESC DataAck[MAX_DATA_ACK];
};


struct _DIVA_CAPI_ADAPTER {
  IDI_CALL      request;
  byte          Id;
  byte          max_plci;
  byte          max_listen;
  byte          listen_active;
  PLCI      *plci;
  byte          ch_ncci[MAX_NL_CHANNEL+1];
  byte          ncci_ch[MAX_NCCI+1];
  byte          ncci_plci[MAX_NCCI+1];
  byte          ncci_state[MAX_NCCI+1];
  byte          ncci_next[MAX_NCCI+1];
  NCCI          ncci[MAX_NCCI+1];

  byte          ch_flow_control[MAX_NL_CHANNEL+1];  /* Used by XON protocol */
  byte          ch_flow_control_pending;
  byte          ch_flow_plci[MAX_NL_CHANNEL+1];
  int           last_flow_control_ch;

  dword         Info_Mask[MAX_APPL];
  dword         CIP_Mask[MAX_APPL];

  dword         Notification_Mask[MAX_APPL];
  PLCI      *codec_listen[MAX_APPL];
  dword         requested_options_table[MAX_APPL];
  API_PROFILE   profile;
  MANUFACTURER_PROFILE man_profile;
  dword         manufacturer_features;

  byte          AdvCodecFLAG;
  PLCI      *AdvCodecPLCI;
  PLCI      *AdvSignalPLCI;
  APPL      *AdvSignalAppl;
  byte          TelOAD[23];
  byte          TelOSA[23];
  byte          scom_appl_disable;
  PLCI      *automatic_lawPLCI;
  byte          automatic_law;
  byte          u_law;

  byte          adv_voice_coef_length;
  byte          adv_voice_coef_buffer[ADV_VOICE_COEF_BUFFER_SIZE];

  byte          li_pri;
  byte          li_channels;
  word          li_base;

  byte adapter_disabled;
  byte group_optimization_enabled; /* use application groups if enabled */
  dword sdram_bar;
  byte flag_dynamic_l1_down; /* for hunt groups:down layer 1 if no appl present*/
  byte FlowControlIdTable[256];
  byte FlowControlSkipTable[256];
  void* os_card; /* pointer to associated OS dependent adapter structure */
};


/*------------------------------------------------------------------*/
/* Application flags                                                */
/*------------------------------------------------------------------*/

#define APPL_FLAG_OLD_LI_SPEC           0x01
#define APPL_FLAG_PRIV_EC_SPEC          0x02


/*------------------------------------------------------------------*/
/* API parameter definitions                                        */
/*------------------------------------------------------------------*/

#define X75_TTX         1       /* x.75 for ttx                     */
#define TRF             2       /* transparent with hdlc framing    */
#define TRF_IN          3       /* transparent with hdlc fr. inc.   */
#define SDLC            4       /* sdlc, sna layer-2                */
#define X75_BTX         5       /* x.75 for btx                     */
#define LAPD            6       /* lapd (Q.921)                     */
#define X25_L2          7       /* x.25 layer-2                     */
#define V120_L2         8       /* V.120 layer-2 protocol           */
#define V42_IN          9       /* V.42 layer-2 protocol, incomming */
#define V42            10       /* V.42 layer-2 protocol            */
#define MDM_ATP        11       /* AT Parser built in the L2        */
#define X75_V42BIS     12       /* ISO7776 (X.75 SLP) modified to support V.42 bis compression */
#define RTPL2_IN       13       /* RTP layer-2 protocol, incomming  */
#define RTPL2          14       /* RTP layer-2 protocol             */
#define V120_V42BIS    15       /* V.120 layer-2 protocol supporting V.42 bis compression */

#define T70NL           1
#define X25PLP          2
#define T70NLX          3
#define TRANSPARENT_NL  4
#define ISO8208         5
#define T30             6


/*------------------------------------------------------------------*/
/* FAX interface to IDI                                             */
/*------------------------------------------------------------------*/

#define CAPI_MAX_HEAD_LINE_SPACE        89
#define CAPI_MAX_DATE_TIME_LENGTH       18

#define T30_MAX_STATION_ID_LENGTH       20
#define T30_MAX_SUBADDRESS_LENGTH       20
#define T30_MAX_PASSWORD_LENGTH         20

typedef struct t30_info_s T30_INFO;
struct t30_info_s {
  byte          code;
  byte          rate_div_2400;
  byte          resolution;
  byte          data_format;
  byte          pages_low;
  byte          pages_high;
  byte          operating_mode;
  byte          control_bits_low;
  byte          control_bits_high;
  byte          feature_bits_low;
  byte          feature_bits_high;
  byte          recording_properties;
  byte          universal_6;
  byte          universal_7;
  byte          station_id_len;
  byte          head_line_len;
  byte          station_id[T30_MAX_STATION_ID_LENGTH];
/* byte          head_line[];      */
/* byte          sub_sep_length;   */
/* byte          sub_sep_field[];  */
/* byte          pwd_length;       */
/* byte          pwd_field[];      */
/* byte          nsf_info_length;   */
/* byte          nsf_info_field[];  */
};


#define T30_RESOLUTION_R8_0385          0x00
#define T30_RESOLUTION_R8_0770_OR_200   0x01
#define T30_RESOLUTION_R8_1540          0x02
#define T30_RESOLUTION_R16_1540_OR_400  0x04
#define T30_RESOLUTION_R4_0385_OR_100   0x08
#define T30_RESOLUTION_300_300          0x10
#define T30_RESOLUTION_INCH_BASED       0x40
#define T30_RESOLUTION_METRIC_BASED     0x80

#define T30_RECORDING_WIDTH_ISO_A4      0
#define T30_RECORDING_WIDTH_ISO_B4      1
#define T30_RECORDING_WIDTH_ISO_A3      2
#define T30_RECORDING_WIDTH_COUNT       3

#define T30_RECORDING_LENGTH_ISO_A4     0
#define T30_RECORDING_LENGTH_ISO_B4     1
#define T30_RECORDING_LENGTH_UNLIMITED  2
#define T30_RECORDING_LENGTH_COUNT      3

#define T30_MIN_SCANLINE_TIME_00_00_00  0
#define T30_MIN_SCANLINE_TIME_05_05_05  1
#define T30_MIN_SCANLINE_TIME_10_05_05  2
#define T30_MIN_SCANLINE_TIME_10_10_10  3
#define T30_MIN_SCANLINE_TIME_20_10_10  4
#define T30_MIN_SCANLINE_TIME_20_20_20  5
#define T30_MIN_SCANLINE_TIME_40_20_20  6
#define T30_MIN_SCANLINE_TIME_40_40_40  7
#define T30_MIN_SCANLINE_TIME_RES_8     8
#define T30_MIN_SCANLINE_TIME_RES_9     9
#define T30_MIN_SCANLINE_TIME_RES_10    10
#define T30_MIN_SCANLINE_TIME_10_10_05  11
#define T30_MIN_SCANLINE_TIME_20_10_05  12
#define T30_MIN_SCANLINE_TIME_20_20_10  13
#define T30_MIN_SCANLINE_TIME_40_20_10  14
#define T30_MIN_SCANLINE_TIME_40_40_20  15
#define T30_MIN_SCANLINE_TIME_COUNT     16

#define T30_DATA_FORMAT_SFF             0
#define T30_DATA_FORMAT_ASCII           1
#define T30_DATA_FORMAT_NATIVE          2
#define T30_DATA_FORMAT_COUNT           3


#define T30_OPERATING_MODE_STANDARD     0
#define T30_OPERATING_MODE_CLASS2       1
#define T30_OPERATING_MODE_CLASS1       2
#define T30_OPERATING_MODE_CAPI         3
#define T30_OPERATING_MODE_CAPI_NEG     4
#define T30_OPERATING_MODE_COUNT        5

        /* EDATA transmit messages */
#define EDATA_T30_DIS         0x01
#define EDATA_T30_FTT         0x02
#define EDATA_T30_MCF         0x03
#define EDATA_T30_PARAMETERS  0x04

        /* EDATA receive messages */
#define EDATA_T30_DCS         0x81
#define EDATA_T30_TRAIN_OK    0x82
#define EDATA_T30_EOP         0x83
#define EDATA_T30_MPS         0x84
#define EDATA_T30_EOM         0x85
#define EDATA_T30_DTC         0x86
#define EDATA_T30_PAGE_END    0x87   /* Indicates end of page data. Reserved, but not implemented ! */
#define EDATA_T30_EOP_CAPI    0x88


#define T30_SUCCESS                        0
#define T30_ERR_NO_DIS_RECEIVED            1
#define T30_ERR_TIMEOUT_NO_RESPONSE        2
#define T30_ERR_RETRY_NO_RESPONSE          3
#define T30_ERR_TOO_MANY_REPEATS           4
#define T30_ERR_UNEXPECTED_MESSAGE         5
#define T30_ERR_UNEXPECTED_DCN             6
#define T30_ERR_DTC_UNSUPPORTED            7
#define T30_ERR_ALL_RATES_FAILED           8
#define T30_ERR_TOO_MANY_TRAINS            9
#define T30_ERR_RECEIVE_CORRUPTED          10
#define T30_ERR_UNEXPECTED_DISC            11
#define T30_ERR_APPLICATION_DISC           12
#define T30_ERR_INCOMPATIBLE_DIS           13
#define T30_ERR_INCOMPATIBLE_DCS           14
#define T30_ERR_TIMEOUT_NO_COMMAND         15
#define T30_ERR_RETRY_NO_COMMAND           16
#define T30_ERR_TIMEOUT_COMMAND_TOO_LONG   17
#define T30_ERR_TIMEOUT_RESPONSE_TOO_LONG  18
#define T30_ERR_NOT_IDENTIFIED             19
#define T30_ERR_SUPERVISORY_TIMEOUT        20
#define T30_ERR_TOO_LONG_SCAN_LINE         21
/* #define T30_ERR_RETRY_NO_PAGE_AFTER_MPS    22 */
#define T30_ERR_RETRY_NO_PAGE_RECEIVED     23
#define T30_ERR_RETRY_NO_DCS_AFTER_FTT     24
#define T30_ERR_RETRY_NO_DCS_AFTER_EOM     25
#define T30_ERR_RETRY_NO_DCS_AFTER_MPS     26
#define T30_ERR_RETRY_NO_DCN_AFTER_MCF     27
#define T30_ERR_RETRY_NO_DCN_AFTER_RTN     28
#define T30_ERR_RETRY_NO_CFR               29
#define T30_ERR_RETRY_NO_MCF_AFTER_EOP     30
#define T30_ERR_RETRY_NO_MCF_AFTER_EOM     31
#define T30_ERR_RETRY_NO_MCF_AFTER_MPS     32
#define T30_ERR_SUB_SEP_UNSUPPORTED        33
#define T30_ERR_PWD_UNSUPPORTED            34
#define T30_ERR_SUB_SEP_PWD_UNSUPPORTED    35
#define T30_ERR_INVALID_COMMAND_FRAME      36
#define T30_ERR_UNSUPPORTED_PAGE_CODING    37
#define T30_ERR_INVALID_PAGE_CODING        38
#define T30_ERR_INCOMPATIBLE_PAGE_CONFIG   39
#define T30_ERR_TIMEOUT_FROM_APPLICATION   40
#define T30_ERR_V34FAX_NO_REACTION_ON_MARK 41
#define T30_ERR_V34FAX_TRAINING_TIMEOUT    42
#define T30_ERR_V34FAX_UNEXPECTED_V21      43
#define T30_ERR_V34FAX_PRIMARY_CTS_ON      44
#define T30_ERR_V34FAX_TURNAROUND_POLLING  45
#define T30_ERR_V34FAX_V8_INCOMPATIBILITY  46


#define T30_CONTROL_BIT_DISABLE_FINE       0x0001
#define T30_CONTROL_BIT_ENABLE_ECM         0x0002
#define T30_CONTROL_BIT_ECM_64_BYTES       0x0004
#define T30_CONTROL_BIT_ENABLE_2D_CODING   0x0008
#define T30_CONTROL_BIT_ENABLE_T6_CODING   0x0010
#define T30_CONTROL_BIT_ENABLE_UNCOMPR     0x0020
#define T30_CONTROL_BIT_ACCEPT_POLLING     0x0040
#define T30_CONTROL_BIT_REQUEST_POLLING    0x0080
#define T30_CONTROL_BIT_MORE_DOCUMENTS     0x0100
#define T30_CONTROL_BIT_ACCEPT_SUBADDRESS  0x0200
#define T30_CONTROL_BIT_ACCEPT_SEL_POLLING 0x0400
#define T30_CONTROL_BIT_ACCEPT_PASSWORD    0x0800
#define T30_CONTROL_BIT_ENABLE_V34FAX      0x1000
#define T30_CONTROL_BIT_EARLY_CONNECT      0x2000

#define T30_CONTROL_BIT_ALL_FEATURES  (T30_CONTROL_BIT_ENABLE_ECM | T30_CONTROL_BIT_ENABLE_2D_CODING |   T30_CONTROL_BIT_ENABLE_T6_CODING | T30_CONTROL_BIT_ENABLE_UNCOMPR |   T30_CONTROL_BIT_ENABLE_V34FAX)

#define T30_FEATURE_BIT_FINE               0x0001
#define T30_FEATURE_BIT_ECM                0x0002
#define T30_FEATURE_BIT_ECM_64_BYTES       0x0004
#define T30_FEATURE_BIT_2D_CODING          0x0008
#define T30_FEATURE_BIT_T6_CODING          0x0010
#define T30_FEATURE_BIT_UNCOMPR_ENABLED    0x0020
#define T30_FEATURE_BIT_POLLING            0x0040
#define T30_FEATURE_BIT_MORE_DOCUMENTS     0x0100
#define T30_FEATURE_BIT_V34FAX             0x1000


#define T30_NSF_CONTROL_BIT_ENABLE_NSF     0x0001
#define T30_NSF_CONTROL_BIT_RAW_INFO       0x0002
#define T30_NSF_CONTROL_BIT_NEGOTIATE_IND  0x0004
#define T30_NSF_CONTROL_BIT_NEGOTIATE_RESP 0x0008

#define T30_NSF_ELEMENT_NSF_FIF            0x00
#define T30_NSF_ELEMENT_NSC_FIF            0x01
#define T30_NSF_ELEMENT_NSS_FIF            0x02
#define T30_NSF_ELEMENT_COMPANY_NAME       0x03


/*------------------------------------------------------------------*/
/* Analog modem definitions                                         */
/*------------------------------------------------------------------*/

typedef struct async_s ASYNC_FORMAT;
struct async_s {
  unsigned pe:    1;
  unsigned parity:2;
  unsigned spare: 2;
  unsigned stp:   1;
  unsigned ch_len:2;   /* 3th octett in CAI */
};


/*------------------------------------------------------------------*/
/* PLCI/NCCI states                                                 */
/*------------------------------------------------------------------*/

#define IDLE                    0
#define OUTG_CON_PENDING        1
#define INC_CON_PENDING         2
#define INC_CON_ALERT           3
#define INC_CON_ACCEPT          4
#define INC_ACT_PENDING         5
#define LISTENING               6
#define CONNECTED               7
#define OUTG_DIS_PENDING        8
#define INC_DIS_PENDING         9
#define LOCAL_CONNECT           10
#define INC_RES_PENDING         11
#define OUTG_RES_PENDING        12
#define SUSPENDING              13
#define ADVANCED_VOICE_SIG      14
#define ADVANCED_VOICE_NOSIG    15
#define RESUMING                16
#define INC_CON_CONNECTED_ALERT 17
#define OUTG_REJ_PENDING        18


/*------------------------------------------------------------------*/
/* auxiliary states for supplementary services                     */
/*------------------------------------------------------------------*/

#define IDLE                0
#define HOLD_REQUEST        1
#define HOLD_INDICATE       2
#define CALL_HELD           3
#define RETRIEVE_REQUEST    4
#define RETRIEVE_INDICATION 5

/*------------------------------------------------------------------*/
/* Capi IE + Msg types                                              */
/*------------------------------------------------------------------*/
#define ESC_CAUSE        0x800|CAU          /* Escape cause element */
#define ESC_MSGTYPE      0x800|MSGTYPEIE    /* Escape message type  */
#define ESC_CHI          0x800|CHI          /* Escape channel id    */
#define ESC_LAW          0x800|BC           /* Escape law info      */
#define ESC_CR           0x800|CRIE         /* Escape CallReference */
#define ESC_PROFILE      0x800|PROFILEIE    /* Escape profile       */
#define ESC_SSEXT        0x800|SSEXTIE      /* Escape Supplem. Serv.*/
#define ESC_VSWITCH      0x800|VSWITCHIE    /* Escape VSwitch       */
#define CST              0x14               /* Call State i.e.      */
#define PI               0x1E               /* Progress Indicator   */
#define NI               0x27               /* Notification Ind     */
#define CONN_NR          0x4C               /* Connected Number     */
#define CONG_RNR         0xBF               /* Congestion RNR       */
#define CONG_RR          0xB0               /* Congestion RR        */
#define RESERVED         0xFF               /* Res. for future use  */
#define ON_BOARD_CODEC   0x02               /* external controller  */
#define HANDSET          0x04               /* Codec+Handset(Pro11) */
#define HOOK_SUPPORT     0x01               /* activate Hook signal */
#define SCR              0x7a               /* unscreened number    */

#define HOOK_OFF_REQ     0x9001             /* internal conn req    */
#define HOOK_ON_REQ      0x9002             /* internal disc req    */
#define SUSPEND_REQ      0x9003             /* internal susp req    */
#define RESUME_REQ       0x9004             /* internal resume req  */
#define USELAW_REQ       0x9005             /* internal law    req  */
#define LISTEN_SIG_ASSIGN_PEND  0x9006
#define PERM_LIST_REQ    0x900a             /* permanent conn DCE   */
#define C_HOLD_REQ       0x9011
#define C_RETRIEVE_REQ   0x9012
#define C_NCR_FAC_REQ    0x9013
#define PERM_COD_ASSIGN  0x9014
#define PERM_COD_CALL    0x9015
#define PERM_COD_HOOK    0x9016
#define PERM_COD_CONN_PEND 0x9017           /* wait for connect_con */
#define PTY_REQ_PEND     0x9018
#define CD_REQ_PEND      0x9019
#define CF_START_PEND    0x901a
#define CF_STOP_PEND     0x901b
#define ECT_REQ_PEND     0x901c
#define GETSERV_REQ_PEND 0x901d
#define BLOCK_PLCI       0x901e
#define INTERR_NUMBERS_REQ_PEND         0x901f
#define INTERR_DIVERSION_REQ_PEND       0x9020
#define MWI_ACTIVATE_REQ_PEND           0x9021
#define MWI_DEACTIVATE_REQ_PEND         0x9022
#define SSEXT_REQ_COMMAND               0x9023
#define SSEXT_NC_REQ_COMMAND            0x9024
#define START_L1_SIG_ASSIGN_PEND        0x9025
#define REM_L1_SIG_ASSIGN_PEND          0x9026
#define CONF_BEGIN_REQ_PEND             0x9027
#define CONF_ADD_REQ_PEND               0x9028
#define CONF_SPLIT_REQ_PEND             0x9029
#define CONF_DROP_REQ_PEND              0x902a
#define CONF_ISOLATE_REQ_PEND           0x902b
#define CONF_REATTACH_REQ_PEND          0x902c
#define VSWITCH_REQ_PEND                0x902d
#define GET_MWI_STATE                   0x902e
#define CCBS_REQUEST_REQ_PEND           0x902f
#define CCBS_DEACTIVATE_REQ_PEND        0x9030
#define CCBS_INTERROGATE_REQ_PEND       0x9031

#define NO_INTERNAL_COMMAND             0
#define DTMF_COMMAND_1                  1
#define DTMF_COMMAND_2                  2
#define DTMF_COMMAND_3                  3
#define MIXER_COMMAND_1                 4
#define MIXER_COMMAND_2                 5
#define MIXER_COMMAND_3                 6
#define ADV_VOICE_COMMAND_CONNECT_1     7
#define ADV_VOICE_COMMAND_CONNECT_2     8
#define ADV_VOICE_COMMAND_CONNECT_3     9
#define ADV_VOICE_COMMAND_DISCONNECT_1  10
#define ADV_VOICE_COMMAND_DISCONNECT_2  11
#define ADV_VOICE_COMMAND_DISCONNECT_3  12
#define ADJUST_B_RESTORE_1              13
#define ADJUST_B_RESTORE_2              14
#define RESET_B3_COMMAND_1              15
#define SELECT_B_COMMAND_1              16
#define FAX_CONNECT_INFO_COMMAND_1      17
#define FAX_CONNECT_INFO_COMMAND_2      18
#define FAX_ADJUST_B23_COMMAND_1        19
#define FAX_ADJUST_B23_COMMAND_2        20
#define EC_COMMAND_1                    21
#define EC_COMMAND_2                    22
#define EC_COMMAND_3                    23
#define RTP_CONNECT_B3_REQ_COMMAND_1    24
#define RTP_CONNECT_B3_REQ_COMMAND_2    25
#define RTP_CONNECT_B3_REQ_COMMAND_3    26
#define RTP_CONNECT_B3_RES_COMMAND_1    27
#define RTP_CONNECT_B3_RES_COMMAND_2    28
#define RTP_CONNECT_B3_RES_COMMAND_3    29
#define HOLD_SAVE_COMMAND_1             30
#define RETRIEVE_RESTORE_COMMAND_1      31
#define FAX_DISCONNECT_COMMAND_1        32
#define FAX_DISCONNECT_COMMAND_2        33
#define FAX_DISCONNECT_COMMAND_3        34
#define FAX_EDATA_ACK_COMMAND_1         35
#define FAX_EDATA_ACK_COMMAND_2         36
#define FAX_CONNECT_ACK_COMMAND_1       37
#define FAX_CONNECT_ACK_COMMAND_2       38
#define STD_INTERNAL_COMMAND_COUNT      39

#define UID              0x2d               /* User Id for Mgmt      */

#define CALL_DIR_OUT             0x01       /* call direction of initial call */
#define CALL_DIR_IN              0x02
#define CALL_DIR_ORIGINATE       0x04       /* DTE/DCE direction according to */
#define CALL_DIR_ANSWER          0x08       /*   state of B-Channel Operation */
#define CALL_DIR_FORCE_OUTG_NL   0x10       /* for RESET_B3 reconnect, after DISC_B3... */

#define AWAITING_MANUF_CON 0x80             /* command spoofing flags */
#define SPOOFING_REQUIRED  0xff
#define AWAITING_SELECT_B  0xef

/*------------------------------------------------------------------*/
/* B_CTRL / DSP_CTRL                                                */
/*------------------------------------------------------------------*/

#define DSP_CTRL_OLD_SET_MIXER_COEFFICIENTS     0x01
#define DSP_CTRL_SET_BCHANNEL_PASSIVATION_BRI   0x02
#define DSP_CTRL_SET_DTMF_PARAMETERS            0x03

#define MANUFACTURER_FEATURE_SLAVE_CODEC          0x00000001L
#define MANUFACTURER_FEATURE_FAX_MORE_DOCUMENTS   0x00000002L
#define MANUFACTURER_FEATURE_HARDDTMF             0x00000004L
#define MANUFACTURER_FEATURE_SOFTDTMF_SEND        0x00000008L
#define MANUFACTURER_FEATURE_DTMF_PARAMETERS      0x00000010L
#define MANUFACTURER_FEATURE_SOFTDTMF_RECEIVE     0x00000020L
#define MANUFACTURER_FEATURE_FAX_SUB_SEP_PWD      0x00000040L
#define MANUFACTURER_FEATURE_V18                  0x00000080L
#define MANUFACTURER_FEATURE_MIXER_CH_CH          0x00000100L
#define MANUFACTURER_FEATURE_MIXER_CH_PC          0x00000200L
#define MANUFACTURER_FEATURE_MIXER_PC_CH          0x00000400L
#define MANUFACTURER_FEATURE_MIXER_PC_PC          0x00000800L
#define MANUFACTURER_FEATURE_ECHO_CANCELLER       0x00001000L
#define MANUFACTURER_FEATURE_RTP                  0x00002000L
#define MANUFACTURER_FEATURE_T38                  0x00004000L
#define MANUFACTURER_FEATURE_TRANSP_DELIVERY_CONF 0x00008000L
#define MANUFACTURER_FEATURE_XONOFF_FLOW_CONTROL  0x00010000L
#define MANUFACTURER_FEATURE_OOB_CHANNEL          0x00020000L
#define MANUFACTURER_FEATURE_IN_BAND_CHANNEL      0x00040000L
#define MANUFACTURER_FEATURE_IN_BAND_FEATURE      0x00080000L
#define MANUFACTURER_FEATURE_PIAFS                0x00100000L
#define MANUFACTURER_FEATURE_DTMF_TONE            0x00200000L
#define MANUFACTURER_FEATURE_FAX_PAPER_FORMATS    0x00400000L
#define MANUFACTURER_FEATURE_OK_FC_LABEL          0x00800000L
#define MANUFACTURER_FEATURE_VOWN                 0x01000000L
#define MANUFACTURER_FEATURE_XCONNECT             0x02000000L
#define MANUFACTURER_FEATURE_DMACONNECT           0x04000000L
#define MANUFACTURER_FEATURE_AUDIO_TAP            0x08000000L
#define MANUFACTURER_FEATURE_FAX_NONSTANDARD      0x10000000L

/*------------------------------------------------------------------*/
/* DTMF interface to IDI                                            */
/*------------------------------------------------------------------*/


#define DTMF_DIGIT_TONE_LOW_GROUP_697_HZ        0x00
#define DTMF_DIGIT_TONE_LOW_GROUP_770_HZ        0x01
#define DTMF_DIGIT_TONE_LOW_GROUP_852_HZ        0x02
#define DTMF_DIGIT_TONE_LOW_GROUP_941_HZ        0x03
#define DTMF_DIGIT_TONE_LOW_GROUP_MASK          0x03
#define DTMF_DIGIT_TONE_HIGH_GROUP_1209_HZ      0x00
#define DTMF_DIGIT_TONE_HIGH_GROUP_1336_HZ      0x04
#define DTMF_DIGIT_TONE_HIGH_GROUP_1477_HZ      0x08
#define DTMF_DIGIT_TONE_HIGH_GROUP_1633_HZ      0x0c
#define DTMF_DIGIT_TONE_HIGH_GROUP_MASK         0x0c
#define DTMF_DIGIT_TONE_CODE_0                  0x07
#define DTMF_DIGIT_TONE_CODE_1                  0x00
#define DTMF_DIGIT_TONE_CODE_2                  0x04
#define DTMF_DIGIT_TONE_CODE_3                  0x08
#define DTMF_DIGIT_TONE_CODE_4                  0x01
#define DTMF_DIGIT_TONE_CODE_5                  0x05
#define DTMF_DIGIT_TONE_CODE_6                  0x09
#define DTMF_DIGIT_TONE_CODE_7                  0x02
#define DTMF_DIGIT_TONE_CODE_8                  0x06
#define DTMF_DIGIT_TONE_CODE_9                  0x0a
#define DTMF_DIGIT_TONE_CODE_STAR               0x03
#define DTMF_DIGIT_TONE_CODE_HASHMARK           0x0b
#define DTMF_DIGIT_TONE_CODE_A                  0x0c
#define DTMF_DIGIT_TONE_CODE_B                  0x0d
#define DTMF_DIGIT_TONE_CODE_C                  0x0e
#define DTMF_DIGIT_TONE_CODE_D                  0x0f

#define DTMF_UDATA_REQUEST_SEND_DIGITS            16
#define DTMF_UDATA_REQUEST_ENABLE_RECEIVER        17
#define DTMF_UDATA_REQUEST_DISABLE_RECEIVER       18
#define DTMF_UDATA_INDICATION_DIGITS_SENT         16
#define DTMF_UDATA_INDICATION_DIGITS_RECEIVED     17
#define DTMF_UDATA_INDICATION_MODEM_CALLING_TONE  18
#define DTMF_UDATA_INDICATION_FAX_CALLING_TONE    19
#define DTMF_UDATA_INDICATION_ANSWER_TONE         20

#define UDATA_REQUEST_MIXER_TAP_DATA        27
#define UDATA_INDICATION_MIXER_TAP_DATA     27

#define DTMF_LISTEN_ACTIVE_FLAG        0x01
#define DTMF_SEND_DIGIT_FLAG           0x01


/*------------------------------------------------------------------*/
/* Mixer interface to IDI                                           */
/*------------------------------------------------------------------*/


#define LI2_FLAG_PCCONNECT_A_B 0x40000000
#define LI2_FLAG_PCCONNECT_B_A 0x80000000

#define MIXER_BCHANNELS_BRI    2
#define MIXER_IC_CHANNELS_BRI  MIXER_BCHANNELS_BRI
#define MIXER_IC_CHANNEL_BASE  MIXER_BCHANNELS_BRI
#define MIXER_CHANNELS_BRI     (MIXER_BCHANNELS_BRI + MIXER_IC_CHANNELS_BRI)
#define MIXER_CHANNELS_PRI     32

typedef struct li_config_s LI_CONFIG;

struct xconnect_card_address_s {
  dword low;
  dword high;
};

struct xconnect_transfer_address_s {
  struct xconnect_card_address_s card_address;
  dword offset;
};

struct li_config_s {
  DIVA_CAPI_ADAPTER   *adapter;
  PLCI   *plci;
  struct xconnect_transfer_address_s send_b;
  struct xconnect_transfer_address_s send_pc;
  byte   *flag_table;  /* dword aligned and sized */
  byte   *coef_table;  /* dword aligned and sized */
  byte channel;
  byte curchnl;
  byte chflags;
};

extern LI_CONFIG   *li_config_table;
extern word li_total_channels;

#define LI_CHANNEL_INVOLVED        0x01
#define LI_CHANNEL_ACTIVE          0x02
#define LI_CHANNEL_TX_DATA         0x04
#define LI_CHANNEL_RX_DATA         0x08
#define LI_CHANNEL_CONFERENCE      0x10
#define LI_CHANNEL_ADDRESSES_SET   0x80

#define LI_CHFLAG_MONITOR          0x01
#define LI_CHFLAG_MIX              0x02
#define LI_CHFLAG_LOOP             0x04

#define LI_FLAG_INTERCONNECT       0x01
#define LI_FLAG_MONITOR            0x02
#define LI_FLAG_MIX                0x04
#define LI_FLAG_PCCONNECT          0x08
#define LI_FLAG_CONFERENCE         0x10
#define LI_FLAG_ANNOUNCEMENT       0x20

#define LI_COEF_CH_CH              0x01
#define LI_COEF_CH_PC              0x02
#define LI_COEF_PC_CH              0x04
#define LI_COEF_PC_PC              0x08
#define LI_COEF_CH_CH_SET          0x10
#define LI_COEF_CH_PC_SET          0x20
#define LI_COEF_PC_CH_SET          0x40
#define LI_COEF_PC_PC_SET          0x80

#define LI_REQ_SILENT_UPDATE       0xffff

#define LI_PLCI_B_LAST_FLAG        ((dword) 0x80000000L)
#define LI_PLCI_B_DISC_FLAG        ((dword) 0x40000000L)
#define LI_PLCI_B_SKIP_FLAG        ((dword) 0x20000000L)
#define LI_PLCI_B_FLAG_MASK        ((dword) 0xe0000000L)

#define UDATA_REQUEST_SET_MIXER_COEFS_BRI       24
#define UDATA_REQUEST_SET_MIXER_COEFS_PRI_SYNC  25
#define UDATA_REQUEST_SET_MIXER_COEFS_PRI_ASYN  26
#define UDATA_INDICATION_MIXER_COEFS_SET        24

#define MIXER_FEATURE_ENABLE_TX_DATA        0x0001
#define MIXER_FEATURE_ENABLE_RX_DATA        0x0002

#define MIXER_COEF_LINE_CHANNEL_MASK        0x1f
#define MIXER_COEF_LINE_FROM_PC_FLAG        0x20
#define MIXER_COEF_LINE_TO_PC_FLAG          0x40
#define MIXER_COEF_LINE_ROW_FLAG            0x80

#define UDATA_REQUEST_XCONNECT_FROM         28
#define UDATA_INDICATION_XCONNECT_FROM      28
#define UDATA_REQUEST_XCONNECT_TO           29
#define UDATA_INDICATION_XCONNECT_TO        29

#define XCONNECT_CHANNEL_PORT_B             0x0000
#define XCONNECT_CHANNEL_PORT_PC            0x8000
#define XCONNECT_CHANNEL_PORT_MASK          0x8000
#define XCONNECT_CHANNEL_NUMBER_MASK        0x7fff
#define XCONNECT_CHANNEL_PORT_COUNT         2

#define XCONNECT_SUCCESS           0x0000
#define XCONNECT_ERROR             0x0001


/*------------------------------------------------------------------*/
/* Echo canceller interface to IDI                                  */
/*------------------------------------------------------------------*/


#define PRIVATE_ECHO_CANCELLER         0

#define PRIV_SELECTOR_ECHO_CANCELLER   255

#define EC_ENABLE_OPERATION            1
#define EC_DISABLE_OPERATION           2
#define EC_FREEZE_COEFFICIENTS         3
#define EC_RESUME_COEFFICIENT_UPDATE   4
#define EC_RESET_COEFFICIENTS          5

#define EC_DISABLE_NON_LINEAR_PROCESSING     0x0001
#define EC_DO_NOT_REQUIRE_REVERSALS          0x0002
#define EC_DETECT_DISABLE_TONE               0x0004

#define EC_SUCCESS                           0
#define EC_UNSUPPORTED_OPERATION             1

#define EC_BYPASS_DUE_TO_CONTINUOUS_2100HZ   1
#define EC_BYPASS_DUE_TO_REVERSED_2100HZ     2
#define EC_BYPASS_RELEASED                   3

#define DSP_CTRL_SET_LEC_PARAMETERS          0x05

#define LEC_ENABLE_ECHO_CANCELLER            0x0001
#define LEC_ENABLE_2100HZ_DETECTOR           0x0002
#define LEC_REQUIRE_2100HZ_REVERSALS         0x0004
#define LEC_MANUAL_DISABLE                   0x0008
#define LEC_ENABLE_NONLINEAR_PROCESSING      0x0010
#define LEC_FREEZE_COEFFICIENTS              0x0020
#define LEC_RESET_COEFFICIENTS               0x8000

#define LEC_MAX_SUPPORTED_TAIL_LENGTH        32

#define LEC_UDATA_INDICATION_DISABLE_DETECT  9

#define LEC_DISABLE_TYPE_CONTIGNUOUS_2100HZ  0x00
#define LEC_DISABLE_TYPE_REVERSED_2100HZ     0x01
#define LEC_DISABLE_RELEASED                 0x02


/*------------------------------------------------------------------*/
/* RTP interface to IDI                                             */
/*------------------------------------------------------------------*/


#define B1_RTP                  31
#define B2_RTP                  31
#define B3_RTP                  31

#define PRIVATE_RTP                    1

#define RTP_PRIM_PAYLOAD_PCMU_8000     0
#define RTP_PRIM_PAYLOAD_1016_8000     1
#define RTP_PRIM_PAYLOAD_G726_32_8000  2
#define RTP_PRIM_PAYLOAD_GSM_8000      3
#define RTP_PRIM_PAYLOAD_G723_8000     4
#define RTP_PRIM_PAYLOAD_DVI4_8000     5
#define RTP_PRIM_PAYLOAD_DVI4_16000    6
#define RTP_PRIM_PAYLOAD_LPC_8000      7
#define RTP_PRIM_PAYLOAD_PCMA_8000     8
#define RTP_PRIM_PAYLOAD_G722_16000    9
#define RTP_PRIM_PAYLOAD_QCELP_8000    12
#define RTP_PRIM_PAYLOAD_G728_8000     14
#define RTP_PRIM_PAYLOAD_G729_8000     18
#define RTP_PRIM_PAYLOAD_GSM_HR_8000   30
#define RTP_PRIM_PAYLOAD_GSM_EFR_8000  31

#define RTP_ADD_PAYLOAD_BASE           32
#define RTP_ADD_PAYLOAD_RED            32
#define RTP_ADD_PAYLOAD_CN_8000        33
#define RTP_ADD_PAYLOAD_DTMF           34

#define RTP_SUCCESS                         0
#define RTP_ERR_SSRC_OR_PAYLOAD_CHANGE      1

#define UDATA_REQUEST_RTP_RECONFIGURE       64
#define UDATA_INDICATION_RTP_CHANGE         65
#define BUDATA_REQUEST_QUERY_RTCP_REPORT    1
#define BUDATA_INDICATION_RTCP_REPORT       1

#define RTP_CONNECT_OPTION_DISC_ON_SSRC_CHANGE    0x00000001L
#define RTP_CONNECT_OPTION_DISC_ON_PT_CHANGE      0x00000002L
#define RTP_CONNECT_OPTION_DISC_ON_UNKNOWN_PT     0x00000004L
#define RTP_CONNECT_OPTION_NO_SILENCE_TRANSMIT    0x00010000L

#define RTP_PAYLOAD_OPTION_VOICE_ACTIVITY_DETECT  0x0001
#define RTP_PAYLOAD_OPTION_DISABLE_POST_FILTER    0x0002
#define RTP_PAYLOAD_OPTION_G723_LOW_CODING_RATE   0x0100

#define RTP_PACKET_FILTER_IGNORE_UNKNOWN_SSRC     0x00000001L

#define RTP_CHANGE_FLAG_SSRC_CHANGE               0x00000001L
#define RTP_CHANGE_FLAG_PAYLOAD_TYPE_CHANGE       0x00000002L
#define RTP_CHANGE_FLAG_UNKNOWN_PAYLOAD_TYPE      0x00000004L


/*------------------------------------------------------------------*/
/* T.38 interface to IDI                                            */
/*------------------------------------------------------------------*/


#define B1_T38                  30
#define B2_T38                  30
#define B3_T38                  30

#define PRIVATE_T38                    2


/*------------------------------------------------------------------*/
/* PIAFS interface to IDI                                            */
/*------------------------------------------------------------------*/


#define B1_PIAFS                29
#define B2_PIAFS                29

#define PRIVATE_PIAFS           29 

/*
  B2 configuration for PIAFS:
+---------------------+------+-----------------------------------------+
| PIAFS Protocol      | byte | Bit 1 - Protocol Speed                  |
| Speed configuration |      |         0 - 32K                         |
|                     |      |         1 - 64K (default)               |
|                     |      | Bit 2 - Variable Protocol Speed         |
|                     |      |         0 - Speed is fix                |
|                     |      |         1 - Speed is variable (default) |
+---------------------+------+-----------------------------------------+
| Direction           | word | Enable compression/decompression for    |
|                     |      | 0: All direction                        |
|                     |      | 1: disable outgoing data                |
|                     |      | 2: disable incomming data               |
|                     |      | 3: disable both direction (default)     |
+---------------------+------+-----------------------------------------+
| Number of code      | word | Parameter P1 of V.42bis in accordance   |
| words               |      | with V.42bis                            |
+---------------------+------+-----------------------------------------+
| Maximum String      | word | Parameter P2 of V.42bis in accordance   |
| Length              |      | with V.42bis                            |
+---------------------+------+-----------------------------------------+
| control (UDATA)     | byte | enable PIAFS control communication      |
| abilities           |      |                                         |
+---------------------+------+-----------------------------------------+
*/
#define PIAFS_UDATA_ABILITIES  0x80

/*------------------------------------------------------------------*/
/* FAX SUB/SEP/PWD extension                                        */
/*------------------------------------------------------------------*/


#define PRIVATE_FAX_SUB_SEP_PWD        3



/*------------------------------------------------------------------*/
/* V.18 extension                                                   */
/*------------------------------------------------------------------*/


#define PRIVATE_V18                    4



/*------------------------------------------------------------------*/
/* DTMF TONE extension                                              */
/*------------------------------------------------------------------*/


#define DTMF_GET_SUPPORTED_DETECT_CODES  0xf8
#define DTMF_GET_SUPPORTED_SEND_CODES    0xf9
#define DTMF_LISTEN_TONE_START           0xfa
#define DTMF_LISTEN_TONE_STOP            0xfb
#define DTMF_SEND_TONE                   0xfc
#define DTMF_LISTEN_MF_START             0xfd
#define DTMF_LISTEN_MF_STOP              0xfe
#define DTMF_SEND_MF                     0xff

#define DTMF_MF_DIGIT_TONE_CODE_1               0x10
#define DTMF_MF_DIGIT_TONE_CODE_2               0x11
#define DTMF_MF_DIGIT_TONE_CODE_3               0x12
#define DTMF_MF_DIGIT_TONE_CODE_4               0x13
#define DTMF_MF_DIGIT_TONE_CODE_5               0x14
#define DTMF_MF_DIGIT_TONE_CODE_6               0x15
#define DTMF_MF_DIGIT_TONE_CODE_7               0x16
#define DTMF_MF_DIGIT_TONE_CODE_8               0x17
#define DTMF_MF_DIGIT_TONE_CODE_9               0x18
#define DTMF_MF_DIGIT_TONE_CODE_0               0x19
#define DTMF_MF_DIGIT_TONE_CODE_K1              0x1a
#define DTMF_MF_DIGIT_TONE_CODE_K2              0x1b
#define DTMF_MF_DIGIT_TONE_CODE_KP              0x1c
#define DTMF_MF_DIGIT_TONE_CODE_S1              0x1d
#define DTMF_MF_DIGIT_TONE_CODE_ST              0x1e

#define DTMF_DIGIT_CODE_COUNT                   16
#define DTMF_MF_DIGIT_CODE_BASE                 DSP_DTMF_DIGIT_CODE_COUNT
#define DTMF_MF_DIGIT_CODE_COUNT                15
#define DTMF_TOTAL_DIGIT_CODE_COUNT             (DSP_MF_DIGIT_CODE_BASE + DSP_MF_DIGIT_CODE_COUNT)

#define DTMF_TONE_DIGIT_BASE                    0x80

#define DTMF_SIGNAL_NO_TONE                     (DTMF_TONE_DIGIT_BASE + 0)
#define DTMF_SIGNAL_UNIDENTIFIED_TONE           (DTMF_TONE_DIGIT_BASE + 1)

#define DTMF_SIGNAL_DIAL_TONE                   (DTMF_TONE_DIGIT_BASE + 2)
#define DTMF_SIGNAL_PABX_INTERNAL_DIAL_TONE     (DTMF_TONE_DIGIT_BASE + 3)
#define DTMF_SIGNAL_SPECIAL_DIAL_TONE           (DTMF_TONE_DIGIT_BASE + 4)   /* stutter dial tone */
#define DTMF_SIGNAL_SECOND_DIAL_TONE            (DTMF_TONE_DIGIT_BASE + 5)
#define DTMF_SIGNAL_RINGING_TONE                (DTMF_TONE_DIGIT_BASE + 6)
#define DTMF_SIGNAL_SPECIAL_RINGING_TONE        (DTMF_TONE_DIGIT_BASE + 7)
#define DTMF_SIGNAL_BUSY_TONE                   (DTMF_TONE_DIGIT_BASE + 8)
#define DTMF_SIGNAL_CONGESTION_TONE             (DTMF_TONE_DIGIT_BASE + 9)   /* reorder tone */
#define DTMF_SIGNAL_SPECIAL_INFORMATION_TONE    (DTMF_TONE_DIGIT_BASE + 10)
#define DTMF_SIGNAL_COMFORT_TONE                (DTMF_TONE_DIGIT_BASE + 11)
#define DTMF_SIGNAL_HOLD_TONE                   (DTMF_TONE_DIGIT_BASE + 12)
#define DTMF_SIGNAL_RECORD_TONE                 (DTMF_TONE_DIGIT_BASE + 13)
#define DTMF_SIGNAL_CALLER_WAITING_TONE         (DTMF_TONE_DIGIT_BASE + 14)
#define DTMF_SIGNAL_CALL_WAITING_TONE           (DTMF_TONE_DIGIT_BASE + 15)
#define DTMF_SIGNAL_PAY_TONE                    (DTMF_TONE_DIGIT_BASE + 16)
#define DTMF_SIGNAL_POSITIVE_INDICATION_TONE    (DTMF_TONE_DIGIT_BASE + 17)
#define DTMF_SIGNAL_NEGATIVE_INDICATION_TONE    (DTMF_TONE_DIGIT_BASE + 18)
#define DTMF_SIGNAL_WARNING_TONE                (DTMF_TONE_DIGIT_BASE + 19)
#define DTMF_SIGNAL_INTRUSION_TONE              (DTMF_TONE_DIGIT_BASE + 20)
#define DTMF_SIGNAL_CALLING_CARD_SERVICE_TONE   (DTMF_TONE_DIGIT_BASE + 21)
#define DTMF_SIGNAL_PAYPHONE_RECOGNITION_TONE   (DTMF_TONE_DIGIT_BASE + 22)
#define DTMF_SIGNAL_CPE_ALERTING_SIGNAL         (DTMF_TONE_DIGIT_BASE + 23)
#define DTMF_SIGNAL_OFF_HOOK_WARNING_TONE       (DTMF_TONE_DIGIT_BASE + 24)

#define DTMF_SIGNAL_INTERCEPT_TONE              (DTMF_TONE_DIGIT_BASE + 63)

#define DTMF_SIGNAL_MODEM_CALLING_TONE          (DTMF_TONE_DIGIT_BASE + 64)
#define DTMF_SIGNAL_FAX_CALLING_TONE            (DTMF_TONE_DIGIT_BASE + 65)
#define DTMF_SIGNAL_ANSWER_TONE                 (DTMF_TONE_DIGIT_BASE + 66)
#define DTMF_SIGNAL_REVERSED_ANSWER_TONE        (DTMF_TONE_DIGIT_BASE + 67)
#define DTMF_SIGNAL_ANSAM_TONE                  (DTMF_TONE_DIGIT_BASE + 68)
#define DTMF_SIGNAL_REVERSED_ANSAM_TONE         (DTMF_TONE_DIGIT_BASE + 69)
#define DTMF_SIGNAL_BELL103_ANSWER_TONE         (DTMF_TONE_DIGIT_BASE + 70)
#define DTMF_SIGNAL_FAX_FLAGS                   (DTMF_TONE_DIGIT_BASE + 71)
#define DTMF_SIGNAL_G2_FAX_GROUP_ID             (DTMF_TONE_DIGIT_BASE + 72)
#define DTMF_SIGNAL_HUMAN_SPEECH                (DTMF_TONE_DIGIT_BASE + 73)
#define DTMF_SIGNAL_ANSWERING_MACHINE_390       (DTMF_TONE_DIGIT_BASE + 74)

#define DTMF_MF_LISTEN_ACTIVE_FLAG     0x02
#define DTMF_SEND_MF_FLAG              0x02
#define DTMF_TONE_LISTEN_ACTIVE_FLAG   0x04
#define DTMF_SEND_TONE_FLAG            0x04

#define PRIVATE_DTMF_TONE              5


/*------------------------------------------------------------------*/
/* FAX paper format extension                                       */
/*------------------------------------------------------------------*/


#define PRIVATE_FAX_PAPER_FORMATS      6



/*------------------------------------------------------------------*/
/* V.OWN extension                                                  */
/*------------------------------------------------------------------*/


#define PRIVATE_VOWN                   7



/*------------------------------------------------------------------*/
/* FAX non-standard facilities extension                            */
/*------------------------------------------------------------------*/


#define PRIVATE_FAX_NONSTANDARD        8



/*------------------------------------------------------------------*/
/* Advanced voice                                                   */
/*------------------------------------------------------------------*/

#define ADV_VOICE_WRITE_ACTIVATION    0
#define ADV_VOICE_WRITE_DEACTIVATION  1
#define ADV_VOICE_WRITE_UPDATE        2

#define ADV_VOICE_OLD_COEF_COUNT    6
#define ADV_VOICE_NEW_COEF_BASE     (ADV_VOICE_OLD_COEF_COUNT * sizeof(word))

/*------------------------------------------------------------------*/
/* B1 resource switching                                            */
/*------------------------------------------------------------------*/

#define B1_FACILITY_LOCAL  0x01
#define B1_FACILITY_MIXER  0x02
#define B1_FACILITY_DTMFX  0x04
#define B1_FACILITY_DTMFR  0x08
#define B1_FACILITY_VOICE  0x10
#define B1_FACILITY_EC     0x20

#define ADJUST_B_MODE_SAVE          0x0001
#define ADJUST_B_MODE_REMOVE_L23    0x0002
#define ADJUST_B_MODE_SWITCH_L1     0x0004
#define ADJUST_B_MODE_NO_RESOURCE   0x0008
#define ADJUST_B_MODE_ASSIGN_L23    0x0010
#define ADJUST_B_MODE_USER_CONNECT  0x0020
#define ADJUST_B_MODE_CONNECT       0x0040
#define ADJUST_B_MODE_RESTORE       0x0080

#define ADJUST_B_START                     0
#define ADJUST_B_SAVE_MIXER_1              1
#define ADJUST_B_SAVE_DTMF_1               2
#define ADJUST_B_REMOVE_L23_1              3
#define ADJUST_B_REMOVE_L23_2              4
#define ADJUST_B_SAVE_EC_1                 5
#define ADJUST_B_SAVE_DTMF_PARAMETER_1     6
#define ADJUST_B_SAVE_VOICE_1              7
#define ADJUST_B_SWITCH_L1_1               8
#define ADJUST_B_SWITCH_L1_2               9
#define ADJUST_B_RESTORE_VOICE_1           10
#define ADJUST_B_RESTORE_VOICE_2           11
#define ADJUST_B_RESTORE_DTMF_PARAMETER_1  12
#define ADJUST_B_RESTORE_DTMF_PARAMETER_2  13
#define ADJUST_B_RESTORE_EC_1              14
#define ADJUST_B_RESTORE_EC_2              15
#define ADJUST_B_ASSIGN_L23_1              16
#define ADJUST_B_ASSIGN_L23_2              17
#define ADJUST_B_CONNECT_1                 18
#define ADJUST_B_CONNECT_2                 19
#define ADJUST_B_CONNECT_3                 20
#define ADJUST_B_CONNECT_4                 21
#define ADJUST_B_RESTORE_DTMF_1            22
#define ADJUST_B_RESTORE_DTMF_2            23
#define ADJUST_B_RESTORE_MIXER_1           24
#define ADJUST_B_RESTORE_MIXER_2           25
#define ADJUST_B_RESTORE_MIXER_3           26
#define ADJUST_B_RESTORE_MIXER_4           27
#define ADJUST_B_RESTORE_MIXER_5           28
#define ADJUST_B_RESTORE_MIXER_6           29
#define ADJUST_B_RESTORE_MIXER_7           30
#define ADJUST_B_END                       31

/*------------------------------------------------------------------*/
/* XON Protocol def's                                               */
/*------------------------------------------------------------------*/
#define N_CH_XOFF               0x01
#define N_XON_SENT              0x02
#define N_XON_REQ               0x04
#define N_XON_CONNECT_IND       0x08
#define N_RX_FLOW_CONTROL_MASK  0x3f
#define N_OK_FC_PENDING         0x80
#define N_TX_FLOW_CONTROL_MASK  0xc0

/*------------------------------------------------------------------*/
/* NCPI state                                                       */
/*------------------------------------------------------------------*/
#define NCPI_VALID_CONNECT_B3_IND  0x01
#define NCPI_VALID_CONNECT_B3_ACT  0x02
#define NCPI_VALID_DISC_B3_IND     0x04
#define NCPI_CONNECT_B3_ACT_SENT   0x08
#define NCPI_NEGOTIATE_B3_SENT     0x10
#define NCPI_MDM_CTS_ON_RECEIVED   0x40
#define NCPI_MDM_DCD_ON_RECEIVED   0x80

/*------------------------------------------------------------------*/
