Repository URL to install this package:
|
Version:
3.0.0 ▾
|
{
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.