123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2009 Free Pascal development team.
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- ********************************************************************* }
- unit tsp;
- interface
- {$mode objfpc}
- {$calling cdecl}
- uses
- Windows;
- //***************************************************************
- //
- // consts
- //
- //***************************************************************
- const
- CELLTSP_PROVIDERINFO_STRING = 'Cellular TAPI Service Provider';
- CELLTSP_LINENAME_STRING = 'Cellular Line';
- CELLTSP_PHONENAME_STRING = 'Cellular Phone';
- //Maximum length constants
- CELLDEVCONFIG_MAXLENGTH_GPRSACCESSPOINTNAME = 64;
- CELLDEVCONFIG_MAXLENGTH_GPRSADDRESS = 64;
- CELLDEVCONFIG_MAXLENGTH_GPRSPARAMETERS = 32;
- //LINEBEARERMODE_ constant to identify GPRS calls
- LINEBEARERMODE_GPRS = (8 shl 16);
- //When using RAS, the following string MUST be used as the destination address for all GPRS calls
- GPRS_DEST_ADDRESS = '~GPRS!';
- //LINEDISCONNECTMODE_ constants to provide more detailed error reporting
- LINEDISCONNECTMODE_PHONECONNECTIONFAILURE = (1 or ($d0 shl 16));
- LINEDISCONNECTMODE_INVALIDSIMCARD = (1 or ($d1 shl 16));
- LINEDISCONNECTMODE_SIMCARDBUSY = (1 or ($d2 shl 16));
- LINEDISCONNECTMODE_NETWORKSERVICENOTAVAILABLE = (1 or ($d3 shl 16));
- LINEDISCONNECTMODE_EMERGENCYONLY = (1 or ($d4 shl 16));
- //Bearer Service CE constants define bearer service connection elements for CELLBEARERINFO structure
- CELLDEVCONFIG_CONNELEM_UNKNOWN = $00000000; //Bearer service unknown
- CELLDEVCONFIG_CONNELEM_TRANSPARENT = $00000001; //Link layer correction enabled
- CELLDEVCONFIG_CONNELEM_NONTRANSPARENT = $00000002; //No link layer correction present
- CELLDEVCONFIG_CONNELEM_BOTH_TRANSPARENT = $00000003; //Both available, transparent preferred
- CELLDEVCONFIG_CONNELEM_BOTH_NONTRANSPARENT = $00000004; //Both available, non-transparent preferred
- //Telephony service type constants for CELLBEARERINFO structure
- //These flags only apply for data access. When a voice call is being
- //placed, this flag is ignored
- CELLDEVCONFIG_SERVICE_UNKNOWN = $00000000; //Unknown service
- CELLDEVCONFIG_SERVICE_MODEM_ASYNC = $00000001; //Asynchronous modem
- CELLDEVCONFIG_SERVICE_MODEM_SYNC = $00000002; //Synchronous modem
- CELLDEVCONFIG_SERVICE_PADACCESS_ASYNC = $00000003; //PAD Access (asynchronous)
- CELLDEVCONFIG_SERVICE_PACKETACCESS_SYNC = $00000004; //Packet Access (synchronous)
- //Data rate constants define protocol dependent data rates for CELLBEARERINFO structure
- CELLDEVCONFIG_SPEED_UNKNOWN = $00000000; //Unknown speed
- CELLDEVCONFIG_SPEED_AUTO = $00000001; //Automatic selection of speed
- CELLDEVCONFIG_SPEED_300_V21 = $00000002; //300 bps (V.21)
- CELLDEVCONFIG_SPEED_300_V110 = $00000003; //300 bps (V.100)
- CELLDEVCONFIG_SPEED_1200_V22 = $00000004; //1200 bps (V.22)
- CELLDEVCONFIG_SPEED_1200_75_V23 = $00000005; //1200/75 bps (V.23)
- CELLDEVCONFIG_SPEED_1200_V110 = $00000006; //1200 bps (V.100)
- CELLDEVCONFIG_SPEED_1200_V120 = $00000007; //1200 bps (V.120)
- CELLDEVCONFIG_SPEED_2400_V22BIS = $00000008; //2400 bps (V.22bis)
- CELLDEVCONFIG_SPEED_2400_V26TER = $00000009; //2400 bps (V.26ter)
- CELLDEVCONFIG_SPEED_2400_V110 = $0000000a; //2400 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_2400_V120 = $0000000b; //2400 bps (V.120)
- CELLDEVCONFIG_SPEED_4800_V32 = $0000000c; //4800 bps (V.32)
- CELLDEVCONFIG_SPEED_4800_V110 = $0000000d; //4800 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_4800_V120 = $0000000e; //4800 bps (V.120)
- CELLDEVCONFIG_SPEED_9600_V32 = $0000000f; //9600 bps (V.32)
- CELLDEVCONFIG_SPEED_9600_V34 = $00000010; //9600 bps (V.34)
- CELLDEVCONFIG_SPEED_9600_V110 = $00000011; //9600 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_9600_V120 = $00000012; //9600 bps (V.120)
- CELLDEVCONFIG_SPEED_14400_V34 = $00000013; //14400 bps (V.34)
- CELLDEVCONFIG_SPEED_14400_V110 = $00000014; //14400 bps (V.100 or X.31 flag stuffing
- CELLDEVCONFIG_SPEED_14400_V120 = $00000015; //14400 bps (V.120
- CELLDEVCONFIG_SPEED_19200_V34 = $00000016; //9200 bps (V.34)
- CELLDEVCONFIG_SPEED_19200_V110 = $00000017; //19200 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_19200_V120 = $00000018; //19200 bps (V.120)
- CELLDEVCONFIG_SPEED_28800_V34 = $00000019; //28800 bps (V.34)
- CELLDEVCONFIG_SPEED_28800_V110 = $0000001a; //28800 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_28800_V120 = $0000001b; //28800 bps (V.120)
- CELLDEVCONFIG_SPEED_38400_V110 = $0000001c; //38400 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_38400_V120 = $0000001d; //38400 bps (V.120)
- CELLDEVCONFIG_SPEED_48000_V110 = $0000001e; //48000 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_48000_V120 = $0000001f; //48000 bps (V.120)
- CELLDEVCONFIG_SPEED_56000_V110 = $00000020; //56000 bps (V.110 or X.31 flag stuffing)
- CELLDEVCONFIG_SPEED_56000_V120 = $00000021; //56000 bps (V.120)
- CELLDEVCONFIG_SPEED_56000_TRANSP = $00000022; //56000 bps (bit transparent)
- CELLDEVCONFIG_SPEED_64000_TRANSP = $00000023; //64000 bps (bit transparent)
- CELLDEVCONFIG_SPEED_32000_PIAFS32K = $00000024; //32000 bps (PIAFS32k)
- CELLDEVCONFIG_SPEED_64000_PIAFS64K = $00000025; //64000 bps (PIAFS64k)
- CELLDEVCONFIG_SPEED_28800_MULTIMEDIA = $00000026; //28800 bps (MultiMedia)
- CELLDEVCONFIG_SPEED_32000_MULTIMEDIA = $00000027; //32000 bps (MultiMedia)
- CELLDEVCONFIG_SPEED_33600_MULTIMEDIA = $00000028; //33600 bps (MultiMedia)
- CELLDEVCONFIG_SPEED_56000_MULTIMEDIA = $00000029; //56000 bps (MultiMedia)
- CELLDEVCONFIG_SPEED_64000_MULTIMEDIA = $0000002a; //64000 bps (MultiMedia)
- //Data compression directions constants for CELLDATACOMPINFO structure
- CELLDEVCONFIG_DATACOMPDIR_UNKNOWN = $00000000; //Unknown direction
- CELLDEVCONFIG_DATACOMPDIR_NONE = $00000001; //No compression
- CELLDEVCONFIG_DATACOMPDIR_TRANSMIT = $00000002; //Transmit only
- CELLDEVCONFIG_DATACOMPDIR_RECEIVE = $00000003; //Receive only
- CELLDEVCONFIG_DATACOMPDIR_BOTH = $00000004; //Both directions, accept any direction
- //GPRS data compression settings constants for CELLGPRSCONNECTIONINFO structure
- CELLDEVCONFIG_GPRSCOMPRESSION_UNKNOWN = $00000000; //Compression unknown
- CELLDEVCONFIG_GPRSCOMPRESSION_OFF = $00000001; //Compression off
- CELLDEVCONFIG_GPRSCOMPRESSION_ON = $00000002; //Compression on
- //GPRS protocol identifier constants for CELLGPRSCONNECTIONINFO structure
- CELLDEVCONFIG_GPRSPROTOCOL_UNKNOWN = $00000000; //Unknown
- CELLDEVCONFIG_GPRSPROTOCOL_X25 = $00000001; //Unsupported
- CELLDEVCONFIG_GPRSPROTOCOL_IP = $00000002; //IP (Radio acts as PPP server)
- CELLDEVCONFIG_GPRSPROTOCOL_IHOSP = $00000003; //Unsupported
- CELLDEVCONFIG_GPRSPROTOCOL_PPP = $00000004; //Point to Point protocol (PPP frames forwarded to end server)
- //GPRS L2 protocol identifier constants for CELLGPRSCONNECTIONINFO structure
- CELLDEVCONFIG_GPRSL2PROTOCOL_UNKNOWN = $00000000; //Unknown
- CELLDEVCONFIG_GPRSL2PROTOCOL_NULL = $00000001; //Unsupported
- CELLDEVCONFIG_GPRSL2PROTOCOL_PPP = $00000002; //WinCE uses PPP
- CELLDEVCONFIG_GPRSL2PROTOCOL_PAD = $00000003; //Unsupported
- CELLDEVCONFIG_GPRSL2PROTOCOL_X25 = $00000004; //Unsupported
- //GPRS precedence classes for CELLGPRSQOSSETTINGS structure
- CELLDEVCONFIG_GPRSPRECEDENCECLASS_UNKNOWN = $00000000; //Unknown
- CELLDEVCONFIG_GPRSPRECEDENCECLASS_SUBSCRIBED = $00000001; //Subscribed value stored in network
- CELLDEVCONFIG_GPRSPRECEDENCECLASS_HIGH = $00000002; //High priority
- CELLDEVCONFIG_GPRSPRECEDENCECLASS_NORMAL = $00000003; //Normal priority
- CELLDEVCONFIG_GPRSPRECEDENCECLASS_LOW = $00000004; //Low priority
- //GPRS delay classes for CELLGPRSQOSSETTINGS structure
- CELLDEVCONFIG_GPRSDELAYCLASS_UNKNOWN = $00000000; //Unknown
- CELLDEVCONFIG_GPRSDELAYCLASS_SUBSCRIBED = $00000001;
- CELLDEVCONFIG_GPRSDELAYCLASS_PREDICTIVE1 = $00000002;
- CELLDEVCONFIG_GPRSDELAYCLASS_PREDICTIVE2 = $00000003;
- CELLDEVCONFIG_GPRSDELAYCLASS_PREDICTIVE3 = $00000004;
- CELLDEVCONFIG_GPRSDELAYCLASS_BESTEFFORT = $00000005;
- //GPRS reliability classes for CELLGPRSQOSSETTINGS structure
- CELLDEVCONFIG_GPRSRELIABILITYCLASS_UNKNOWN = $00000000; //Unknown
- CELLDEVCONFIG_GPRSRELIABILITYCLASS_SUBSCRIBED = $00000001;
- CELLDEVCONFIG_GPRSRELIABILITYCLASS_1 = $00000002;
- CELLDEVCONFIG_GPRSRELIABILITYCLASS_2 = $00000003;
- CELLDEVCONFIG_GPRSRELIABILITYCLASS_3 = $00000004;
- CELLDEVCONFIG_GPRSRELIABILITYCLASS_4 = $00000005;
- CELLDEVCONFIG_GPRSRELIABILITYCLASS_5 = $00000006;
- //GPRS peak throughput classes for CELLGPRSQOSSETTINGS structure
- CELLDEVCONFIG_PEAKTHRUCLASS_UNKNOWN = $00000000; //Unknown
- CELLDEVCONFIG_PEAKTHRUCLASS_SUBSCRIBED = $00000001;
- CELLDEVCONFIG_PEAKTHRUCLASS_8000 = $00000002; //kbit/second
- CELLDEVCONFIG_PEAKTHRUCLASS_16000 = $00000003;
- CELLDEVCONFIG_PEAKTHRUCLASS_32000 = $00000004;
- CELLDEVCONFIG_PEAKTHRUCLASS_64000 = $00000005;
- CELLDEVCONFIG_PEAKTHRUCLASS_128000 = $00000006;
- CELLDEVCONFIG_PEAKTHRUCLASS_256000 = $00000007;
- CELLDEVCONFIG_PEAKTHRUCLASS_512000 = $00000008;
- CELLDEVCONFIG_PEAKTHRUCLASS_1024000 = $00000009;
- CELLDEVCONFIG_PEAKTHRUCLASS_2048000 = $0000000a;
- //GPRS mean throughput classes for CELLGPRSQOSSETTINGS structure
- CELLDEVCONFIG_MEANTHRUCLASS_UNKNOWN = $00000000; //Unknown
- CELLDEVCONFIG_MEANTHRUCLASS_SUBSCRIBED = $00000001;
- CELLDEVCONFIG_MEANTHRUCLASS_100 = $00000002; //octets/hour
- CELLDEVCONFIG_MEANTHRUCLASS_500 = $00000004;
- CELLDEVCONFIG_MEANTHRUCLASS_1000 = $00000005;
- CELLDEVCONFIG_MEANTHRUCLASS_2000 = $00000006;
- CELLDEVCONFIG_MEANTHRUCLASS_5000 = $00000007;
- CELLDEVCONFIG_MEANTHRUCLASS_10000 = $00000008;
- CELLDEVCONFIG_MEANTHRUCLASS_20000 = $00000009;
- CELLDEVCONFIG_MEANTHRUCLASS_50000 = $0000000a;
- CELLDEVCONFIG_MEANTHRUCLASS_100000 = $0000000b;
- CELLDEVCONFIG_MEANTHRUCLASS_200000 = $0000000c;
- CELLDEVCONFIG_MEANTHRUCLASS_500000 = $0000000d;
- CELLDEVCONFIG_MEANTHRUCLASS_1000000 = $0000000e;
- CELLDEVCONFIG_MEANTHRUCLASS_2000000 = $0000000f;
- CELLDEVCONFIG_MEANTHRUCLASS_5000000 = $00000010;
- CELLDEVCONFIG_MEANTHRUCLASS_10000000 = $00000011;
- CELLDEVCONFIG_MEANTHRUCLASS_20000000 = $00000012;
- CELLDEVCONFIG_MEANTHRUCLASS_50000000 = $00000013;
- CELLDEVCONFIG_MEANTHRUCLASS_DONTCARE = $00000014; //Best effort
- //Flags for the CELLDEVCONFIG structure
- CELLDEVCONFIG_FLAG_TERMINALAFTERDIALING = $00000001; //(Only valid when used with lineSetDevConfig)
- //***********************************************************
- //
- // types
- //
- //***********************************************************
- type
- CALLER_ID_OPTIONS = (CALLER_ID_DEFAULT); //Accept the default behavior
- //Structure that can be passed as data for LINECALLPARAMS.dwDevSpecific[Size, Offset]
- linecallparamsdevspecific_tag = record
- cidoOptions: CALLER_ID_OPTIONS;
- end; //linecallparamsdevspecific_tag
- LINECALLPARAMSDEVSPECIFIC = linecallparamsdevspecific_tag;
- PLINECALLPARAMSDEVSPECIFIC = ^linecallparamsdevspecific_tag;
- //Structure containing bearer information
- //Used to set different bearers, specifically to enable quick connect.
- CELLBEARERINFO_tag = record
- dwSpeed : LongInt; //One of the CELLDEVCONFIG_SPEED_* constants
- dwService : LongInt; //One of the CELLDEVCONFIG_SERVICE_* constants
- dwConnectionElement: LongInt; //One of the CELLDEVCONFIG_CONNELEM_* constants
- end; //CELLBEARERINFO_tag
- CELLBEARERINFO = CELLBEARERINFO_tag;
- PCELLBEARERINFO = ^CELLBEARERINFO_tag;
- //Structure containing data compression information
- //Used for v.42bis compression settings.
- CELLDATACOMPINFO_tag = record
- dwDirection : LongInt; //One of the CELLDEVCONFIG_DATACOMPDIR_* constants
- dwRequired : Boolean; //Data compression required
- dwMaxDictEntries : LongInt; //Maximum number of dictionary entries
- dwMaxStringLength: LongInt; //Maximum string length
- end; //CELLDATACOMPINFO_tag
- CELLDATACOMPINFO = CELLDATACOMPINFO_tag;
- PCELLDATACOMPINFO = ^CELLDATACOMPINFO_tag;
- //Structure containing radio link protocol settings
- //Radio link protocol is a link layer correction protocol that increases
- //the perceived reliability of the air link.
- CELLRADIOLINKINFO_tag = record
- dwVersion : LongInt; //Version number
- dwIws : LongInt; //IWF to MS window size
- dwMws : LongInt; //MS to IWF window size
- dwAckTimer : LongInt; //Acknowledgement timer [T1] (milliseconds)
- dwRetransmitAttempts: LongInt; //Retransmit attempts [N2]
- dwResequenceTimer : LongInt; //Resequence timer [T4] (milliseconds)
- end; //CELLRADIOLINKINFO_tag
- CELLRADIOLINKINFO = CELLRADIOLINKINFO_tag;
- PCELLRADIOLINKINFO = ^CELLRADIOLINKINFO_tag;
- //Structure containing GPRS Quality Of Service (QOS) settings
- //Used to specify minimum and requested QOS settings
- CELLGPRSQOSSETTINGS_tag = record
- dwPrecedenceClass : LongInt; //One of the CELLDEVCONFIG_GPRSPRECEDENCECLASS_* constants }
- dwDelayClass : LongInt; //One of the CELLDEVCONFIG_GPRSDELAYCLASS_* constants }
- dwReliabilityClass: LongInt; //One of the CELLDEVCONFIG_GPRSRELIABILITYCLASS_* constants }
- dwPeakThruClass : LongInt; //One of the CELLDEVCONFIG_GPRSPEAKTHRUCLASS_* constants }
- dwMeanThruClass : LongInt; //One of the CELLDEVCONFIG_GPRSMEANTHRUCLASS_* constants }
- end; //CELLGPRSQOSSETTINGS_tag
- CELLGPRSQOSSETTINGS = CELLGPRSQOSSETTINGS_tag;
- PCELLGPRSQOSSETTINGS = ^CELLGPRSQOSSETTINGS_tag;
- //Structure containing GPRS connection information }
- //Used in the initiation of GPRS calls. }
- CELLGPRSCONNECTIONINFO_tag = record
- dwProtocolType : LongInt; //One of the CELLDEVCONFIG_GPRSPROTOCOL_* constants
- dwL2ProtocolType : LongInt; //One of the CELLDEVCONFIG_GPRSL2PROTOCOL_* constants
- wszAccessPointName : array[0..CELLDEVCONFIG_MAXLENGTH_GPRSACCESSPOINTNAME-1] of WCHAR;//Logical name to select the GPRS gateway
- wszAddress : array[0..CELLDEVCONFIG_MAXLENGTH_GPRSADDRESS-1] of WCHAR;//The packet address to use (if empty, then a dynamic address will be requested)
- dwDataCompression : LongInt; //One of the CELLDEVCONFIG_GPRSCOMPRESSION_* constants
- dwHeaderCompression : LongInt; //One of the CELLDEVCONFIG_GPRSCOMPRESSION_* constants
- szParameters : array[0..CELLDEVCONFIG_MAXLENGTH_GPRSPARAMETERS-1] of Char; //Prococol-specific parameters (NULL terminated)
- bRequestedQOSSettingsValid: Boolean; //TRUE iff sgqsRequestedQOSSettings is valid
- cgqsRequestedQOSSettings : CELLGPRSQOSSETTINGS;//GPRS QOS settings structure
- bMinimumQOSSettingsValid : Boolean; //TRUE iff sgqsMinimumQOSSettings is valid
- cgqsMinimumQOSSettings : CELLGPRSQOSSETTINGS; //GPRS QOS settings structure
- end; //CELLGPRSCONNECTIONINFO_tag
- CELLGPRSCONNECTIONINFO = CELLGPRSCONNECTIONINFO_tag;
- PCELLGPRSCONNECTIONINFO = ^CELLGPRSCONNECTIONINFO_tag;
- //A service-provider-specific configuration structure }
- //This structure is specific to this version of this TSP. Future versions }
- //may append additional data elements to the end of this structure. }
- CELLDEVCONFIG_tag = record
- dwTotalSize : LongInt; //Standard TAPI structure variable }
- dwNeededSize : LongInt; //Standard TAPI structure variable }
- dwUsedSize : LongInt; //Standard TAPI structure variable }
- bBearerInfoValid : Boolean; //TRUE iff sbiBearerInfo is valid }
- cbiBearerInfo : CELLBEARERINFO; //Bearer structure }
- bDataCompInfoValid : Boolean; //TRUE iff sdciDataCompInfo is valid }
- cdciDataCompInfo : CELLDATACOMPINFO; //Data compression structure }
- bRadioLinkInfoValid : Boolean; //TRUE iff srliRadioLinkInfo is valid }
- crliRadioLinkInfo : CELLRADIOLINKINFO; //RLP structure }
- bGPRSConnectionInfoValid: Boolean; //TRUE iff sgciGPRSConnectionInfo is valid }
- cgciGPRSConnectionInfo : CELLGPRSCONNECTIONINFO; //GPRS connection structure }
- dwFlags : LongInt; //Bit-mask of CELLDEVCONFIG_FLAG_* constants }
- end; //CELLDEVCONFIG_tag
- CELLDEVCONFIG = CELLDEVCONFIG_tag;
- PCELLDEVCONFIG = ^CELLDEVCONFIG_tag;
- implementation
- end.
|