12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361 |
- /*
- *
- 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, incoming */
- #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, incoming */
- #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 incoming 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
- /*------------------------------------------------------------------*/
|