123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- (******************************************************************************
- *
- * Copyright (c) 1997-2000 Palm, Inc. or its subsidiaries.
- * All rights reserved.
- *
- * File: SmsLib.h
- *
- * Release: Palm OS SDK 4.0 (63220)
- *
- * Description:
- * Include file for PalmOS SMS Library
- *
- * History:
- * 1/26/00 Created by Hatem Oueslati
- * 3/01/00 Ludovic Ferrandis - Add API
- * 8/28/00 Ludovic Ferrandis - Update structure
- *
- *****************************************************************************)
- unit smslib;
- interface
- uses palmos, errorbase, exgmgr, telephonymgrui, telephonymgrtypes, telephonymgr;
- // The Sms library is used as an Exchange library. ExgLib.h defines all the
- // primary entrypoints into the library. The rest of this include file defines the
- // specials opCodes used in the ExgControl function and the structure used in the
- // socketRef field of the Exchange Manager Socket structure.
- (****************************************************************************
- *
- * ExgLibControl opcodes
- *
- ****************************************************************************)
- // Those Op codes take SmsPrefType as parameter
- const
- exgLibSmsPrefGetOp = exgLibCtlSpecificOp or 1;
- exgLibSmsPrefGetDefaultOp = exgLibCtlSpecificOp or 2;
- exgLibSmsPrefSetOp = exgLibCtlSpecificOp or 3;
- // This Op code takes a network type constant as parameter kSmsNetworkXxx
- exgLibSmsPrefDisplayOp = exgLibCtlSpecificOp or 4;
- // This Op code takes an UInt16 as parameter
- exgLibSmsIncompleteGetCountOp = exgLibCtlSpecificOp or 5;
- // This OpCode takes a SmsID (UInt16) as parameter
- exgLibSmsIncompleteDeleteOp = exgLibCtlSpecificOp or 6;
- (****************************************************************************
- *
- * Types and Constants
- *
- ****************************************************************************)
- const
- kSmsLibName = 'SMS Library'; // name of Sms library
- // Feature Creators and numbers, for use with the FtrGet() call. This
- // feature can be obtained to get the current version of the Sms Library
- const
- kSmsFtrNumVersion = UInt16(0);
- // $MMmfsbbb, where MM is major version, m is minor version
- // f is bug fix, s is stage: 3-release, 2-beta, 1-alpha, 0-development,
- // bbb is build number for non-releases
- // V1.12b3 would be: $01122003
- // V2.00a2 would be: $02001002
- // V1.01 would be: $01013000
- const
- kSmsMessageRegExtensionType = 'sms';
- kSmsReportRegExtensionType = 'rps';
- kSmsExtensionTypeLength = 3;
- kSmsScheme = '_sms';
- kSmsMaxPhoneSize = kTelMaxPhoneNumberLen + 1; // Max length for Phone number
- kSmsNBSConverter = UInt8(0); // NBS header will be add to the data
- kSmsNoConverter = UInt8(1); // No header will be add to the data.
- kSmsRowDataEncoding = UInt8(0); // 8 bit encoding scheme
- kSmsTextEncoding = UInt8(1); // 7 bit compressed encoding scheme.
- kSmsNetworkAuto = UInt8(-1);
- kSmsNetworkCDMA = UInt8(kTelNwkCDMA);
- kSmsNetworkGSM = UInt8(kTelNwkGSM);
- kSmsNetworkTDMA = UInt8(kTelNwkTDMA);
- kSmsNetworkPDC = UInt8(kTelNwkPDC);
- kSmsMessageType = UInt8(0);
- kSmsIncompleteType = UInt8(1);
- kSmsReportType = UInt8(2);
- (****************************************************************************
- *
- * Sms Error
- *
- ****************************************************************************)
- const kSmsErrMaxSizeExceeded = smsErrorClass or $01; // Message exceeds maximum size supported by network
- (****************************************************************************
- *
- * Data Structures
- *
- ****************************************************************************)
- (****************************************************************************
- * Report parameters
- ****************************************************************************)
- (* Report Parameters Type
- ---------------------- *)
- type
- SmsReportParamsType = record
- timeStamp: UInt32; // TimeStamp of the report (when delivered, or last attempt, ...)
- index: UInt16; // SMS index on the phone storage
- reportType: UInt8; // Delivery report type
- report: UInt8; // Status report indicator
- originatingAddress: PChar; // Phone number to which belong the report (was sent)
- end;
- SmsReportParamsTag = SmsReportParamsType;
- SmsReportParamsPtr = ^SmsReportParamsType;
- (****************************************************************************
- * Send parameters
- ****************************************************************************)
- (* Advanced Parameters Type for TDMA & CDMA network
- ------------------------------------------------ *)
- type
- SmsSendCDMAParamsType = record
- messageType: UInt8; // Message Type
- deferredDate: TelSmsDateTimeType;
- priority: UInt8;
- privacy: UInt8;
- bits: UInt8;
- {
- alertOnDelivery: UInt8 ; //:1
- manualAckRequest: UInt8; //:1
- reserved: UInt8; //:6
- }
- callbackNumber: PChar; // Address to reply
- end;
- SmsSendCDMAParamsTag = SmsSendCDMAParamsType;
- SmsSendCDMAParamsPtr = ^SmsSendCDMAParamsType;
- SmsSendTDMAParamsType = SmsSendCDMAParamsType;
- SmsSendTDMAParamsPtr = ^SmsSendCDMAParamsType;
- (* Advanced Parameters Type for GSM network
- ---------------------------------------- *)
- type
- SmsSendGSMParamsType = record
- protocolId: UInt16; // Reserved - not supported (Fax, paging, . . .)
- serviceCenterNumber: PChar; // SMS Center number - Optionel
- rejectDuplicated: Boolean; // Network must reject msg if the same exists
- replyPath: Boolean; // Use reply specified path
- end;
- SmsSendGSMParamsTag = SmsSendGSMParamsType;
- SmsSendGSMParamsPtr = ^SmsSendGSMParamsType;
- (* SMS Send Parameters Type
- ------------------------ *)
- type
- SmsSendParamsType = record
- validityPeriod: TelSmsDateTimeType; // SMS validity Period
- destinationAddress: PChar; // recipient number -> to send the sms to
- bits: UInt8;
- {
- networkDeliveryRequested: UInt8; // (:1) Sms report wanted
- ignoreDefaultValue: UInt8; // (:1) If false, the field validityPeriod, ackRequested, reportRequested, smsCenter are ignored.
- reserved: UInt8; // (:6)
- }
- partCount: UInt16; // number of parts of the SMS (output)
- lastPart: UInt16; // if error, the last part sent (output)
- converter: UInt8; // How the data are going to be typed (0 = NBS, 1 = None)
- case Integer of // union 'protocol'
- 1: (gsm: SmsSendGSMParamsType);
- 2: (cdma: SmsSendCDMAParamsType);
- 3: (tdma: SmsSendTDMAParamsType);
- end;
- SmsSendParamsTag = SmsSendParamsType;
- SmsSendParamsPtr = ^SmsSendParamsType;
- (****************************************************************************
- * Receive parameters
- ****************************************************************************)
- (* Advanced Parameters Type for TDMA & CDMA network
- ----------------------------------------------- *)
- type
- SmsReceiveCDMAParamsType = record
- messageType: UInt8; // Delivery Message Type
- validityPeriod: TelSmsDateTimeType;
- priority: UInt8;
- privacy: UInt8;
- alertOnDeliveryRequest: Boolean;
- manualAckRequest: Boolean;
- voiceMessageNumber: UInt8;
- languageIndicator: UInt8;
- callbackNumberAddress: PChar; // Store callback address
- end;
- SmsReceiveCDMAParamsTag = SmsReceiveCDMAParamsType;
- SmsReceiveCDMAParamsPtr = ^SmsReceiveCDMAParamsType;
- SmsReceiveTDMAParamsType = SmsReceiveCDMAParamsType;
- SmsReceiveTDMAParamsPtr = ^SmsReceiveCDMAParamsType;
- (* Advanced Parameters Type for GSM network
- ---------------------------------------- *)
- type
- SmsReceiveGSMParamsType = record
- protocolId: UInt16; // reserved - not supported
- serviceCenterNumber: PChar;
- replyPath: Boolean; // Must use specified reply path
- end;
- SmsReceiveGSMParamsTag = SmsReceiveGSMParamsType;
- SmsReceiveGSMParamsPtr = ^SmsReceiveGSMParamsType;
- (* SMS Receive Parameters Type
- --------------------------- *)
- type
- SmsReceiveParamsType = record
- timeStamp: UInt32; // Palm
- originatingAddress: PChar; // originating number -> to send the sms to
- bits: UInt8;
- {
- leaveOnPhone: UInt8 // (:1) Received messages won't be deleted on the phone (Input)
- forceSlotMode: UInt8 // (:1) Force parsing methode to Slot Mode (default is Block mode) (Input)
- reserved: UInt8 // (:6)
- }
- index: UInt16; // Index of the storage in the mobile where the message is stored
- otherToReceive: Boolean;
- reportDeliveryIndicator: Boolean;
- case Integer of // union 'protocol'
- 1: (gsm: SmsReceiveGSMParamsType);
- 2: (cdma: SmsReceiveCDMAParamsType);
- 3: (tdma: SmsReceiveTDMAParamsType);
- end;
- SmsReceiveParamsTag = SmsReceiveParamsType;
- SmsReceiveParamsPtr = ^SmsReceiveParamsType;
- (****************************************************************************
- * Sms parameters
- ****************************************************************************)
- (* SMS Parameters Type
- ------------------- *)
- type
- SmsParamsType = record
- creator: UInt32; // MUST ALWAYS BE SET TO sysFileCSmsLib
- smsID: UInt16; // ID of the SMS (output)
- extension: PChar; // Extension type of the data - Optionel (Output)
- mimeTypes: PChar; // Mime type of object - Optionel (Output)
- appCreator: UInt32; // Application Creator of the target - Optionel (Output)
- dataCodingScheme: UInt8; // How SMS are going to convert the data (0 = 8 bit, 1 = 7 bit)
- networkType: UInt8; // Indicates the type of advanced parameters (input - output)
- dataType: UInt8; // Indicates the kind of message: Sms, incomplete Sms, Report (Output)
- nbsDestPort: UInt16; // NBS port to use to encode the data (input) - port used in received Sms (output)
- nbsSrcPort: UInt16; // NBS port to use to encode the data (input) - port used in received Sms (output)
- case Integer of // union 'data'
- 1: (send: SmsSendParamsType);
- 2: (receive: SmsReceiveParamsType);
- 3: (report: SmsReportParamsType);
- end;
- SmsParamsTag = SmsParamsType;
- SmsParamsPtr = ^SmsParamsType;
- (* Preferences Type
- ------------------- *)
- type
- SmsPrefType = record
- validity: UInt32; // Validity period of SMS (relatif) in seconds
- warnOver: UInt16; // Display an alert if sending more Sms than this value.
- leave: Boolean; // Leave SMS on Phone
- report: Boolean; // Ask for a network delivery report
- autoSMSC: Boolean; // If set, don't use the value stored in smscNumber field
- smscNumber: array [1..kSmsMaxPhoneSize] of Char; // SMS Service Center. Could be null
- end;
- SmsPrefTag = SmsPrefType;
- SmsPrefPtr = ^SmsPrefType;
- implementation
- end.
|