API Guide Home
(Online version only)

HsPhoneEvent.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  * Copyright (c) 2004 palmOne, Inc. or its subsidiaries.
00003  * All rights reserved.
00004  *****************************************************************************/
00005 /** @ingroup Telephony
00006  *
00007  */
00008 
00009 
00010 /**
00011  *
00012  * @file    HsPhoneEvent.h
00013  *
00014  * @brief  Header file for the phone library (CDMA or GSM)
00015  *
00016  * NOTES:
00017  * Header file for the phone library (CDMA or GSM)
00018  *
00019  * This file defines the Notification Events between the Phone Library
00020  * (either GSM or CDMA) and applications.  These events allow applications
00021  * to react to changes of state in the Phone Library.
00022  *
00023  * Applications wishing to receive notification events from the Phone Library
00024  * must register using the PhnLibRegister call.  The services parameter to
00025  * PhnLibRegister is a bitmap identifying the classes of events that are of
00026  * interest.  To unregister for notifications the app can call PhnLibRegister
00027  * with the services parameter set to zero.
00028  *
00029  * Notifications are sent to applications based on their unique creatorID.
00030  * Confusion may occur if multiple versions of a single app exist with the same
00031  * creatorID.  In this case notifications will be sent to the latest version of
00032  * the app (even if this app was not the one that registered).  In general,
00033  * you should try to avoid this situation where possible.
00034  *
00035  * Each notification event is identified by a unique event code (see PhnEventCode).
00036  * The event code then determines the contents of the remainder of the
00037  * event.
00038  *
00039  * There are three styles of notifications from the Phone Library:
00040  *
00041  *  (1) universal broadcast notifications are sent to all registrants for
00042  *      a given service.  (for example, a change in the network registration
00043  *      status)
00044  *
00045  *  (2) exclusive broadcast notifications are sent to registrations one at a time.
00046  *      The first app that acknowledges the notification by setting the
00047  *      acknowedge flag will be presumed to own that notification.  Only this
00048  *      app should handle and respond to the notification.  For example, an
00049  *      incoming call or incoming SMS message will be acknowleged by an app
00050  *      that wants to answer the call or process the SMS message.
00051  *
00052  *  (3) direct notifications are sent directly to a specific app with a known
00053  *      interest in some occurence in the phone library.  These are typically
00054  *      used after an application has taken ownership of a particular call,
00055  *      message, or dialog.  By sending notifications directly to the owning
00056  *      app we avoid confusion with multiple apps sending competing instructions.
00057  */
00058 
00059 #ifndef HS_PHONEEVENT_H
00060 #define HS_PHONEEVENT_H
00061 #include <PalmOS.h>
00062 #include <PalmTypes.h>
00063 #ifndef __CORE_COMPATIBILITY_H__
00064 #include <PalmCompatibility.h>
00065     // workaround for differing header files in sdk-3.5 and sdk-internal
00066     #ifndef __CORE_COMPATIBILITY_H__
00067     #define __CORE_COMPATIBILITY_H__
00068     #endif
00069 #endif
00070 
00071 // this is not a good struct
00072 //#define USE_PHNSMSMESSAGETYPE
00073 
00074 //Keep it same as defined in HICMSMS.h
00075 #define phnAddressDigitsMax 32
00076 #define phnUserDataMax      255
00077 
00078 // Notification Types
00079 #define phnNotifySubscriber 'CLIP'          /**< GSM notification with caller ID  */
00080 #define phnNotifyEquipMode  'Heqp'      /**< GSM notificaiton for equip mode change  */
00081 
00082 // Notification of a phone event
00083 #define phnLibLaunchCmdEvent        0xabad  /**< Phone Event notification. Used
00084                              to be 0x2bad, which is less than
00085                              Palm's custom base. Have to get
00086                              Palm to allow that.     */
00087 
00088 #define phnLibLaunchCmdRegister     0xabae    /**< Sent to application to register with GSM library  */
00089 
00090 
00091 /**
00092  * unique identifier for Indication notification.   This value will be
00093  * contained in PhnEventType notification events of phnEvtIndication type.
00094  **/
00095 typedef enum {
00096     indicationSIMReady,         /**<        */
00097     indicationSIMMessages,      /**<        */
00098     indicationNetworkSearch,        /**< to display Network search banner */
00099     indicationPasswordAccepted, /**<        */
00100     indicationNetworkAvailable, /**<        */
00101     indicationStartingRadio,        /**< to update UI from radio being off */
00102     indicationPoweringOffRadio,     /**< notify app that the radio is turning off. */
00103     indicationResettingRadio,       /**< tell the app that the radio is resetting. */
00104     indicationAuthFailure,      /**< notify app that network authentication failed. */
00105     indicationSIMChanged,       /**< sent when the GSM library detects that the IMSI value has changed */
00106     indicationInitComplete,     /**< sent when the GSM library is done with it initialization when the radio is powered on */
00107   indicationOtaspMsg            /**< sent otasp msg from network */
00108 } PhnIndicationKind;
00109 
00110 #define isValidPhnIndicationKind(i) ((i >= indicationSIMReady) && (i <= indicationSIMChanged))  /**<        */
00111 
00112 /**
00113  * PhnEventCode is unique identifier for notifications between the Phone Library
00114  * and applications.  It is used in the eventType field in the header of notification
00115  * events (PhnEventType).
00116  **/
00117 typedef enum
00118   {
00119   phnEvtCardInsertion,      /**< 0x0000 < NOT USED.  OBSOLETE */
00120 
00121   /** Network Registration has changed.
00122    *
00123    *  The Phone Library is responsible for registering the device to
00124    *  the carrier network, including handling roaming and losses of service.
00125    *  This notification occurs when the network registration state has changed.
00126    *  See PhnRegistrationStatus for possible state values.
00127    *
00128    *  This notification will be universally broadcast to applications
00129    * registered for any service.
00130    */
00131   phnEvtRegistration,       /**< 0x0001 < Phone able to find service  */
00132 
00133   /** Error detected
00134    *
00135    *  This notification occurs on various error scenarios in the Phone Library.
00136    *  These may occur when unexpected errors are reported from the radio, or when
00137    *  an operation in progress has failed.
00138    *
00139    *  This notification is universally broadcast to applications in the
00140    *  service area where the error was detected (e.g. Voice, SMS, ...).
00141    */
00142   phnEvtError,              /**< 0x0002 < indicator of something important happens to the phone that needs to bring up alert */
00143 
00144   /** phone-related keypress has occured on device
00145    *
00146    *  This notification occurs when the user presses a phone-related key on the device.
00147    *  Currently the only supported key is the headset button that can be used for
00148    *  basic call control.  In general, buttons available will be device dependent.
00149    *
00150    *  This notification is exclusively broadcast to all applications registered for the
00151    *  Voice Service.
00152    */
00153   phnEvtKeyPress,           /**< 0x0003 < Headset button pressed. */
00154 
00155   /** change in power state of radio
00156    *
00157    *  This notification occurs when the power state of the radio is changing.  Applications
00158    *  may want to change their state, and take action based on the expected availability
00159    *  of the radio.
00160    *
00161    *  This notification is universally broadcast to all registered applications.
00162    */
00163   phnEvtPower,              /**< 0x0004  */
00164 
00165   /** Password Dialog Control
00166    *
00167    *  This notification helps an application control the entry of a PIN on a
00168    *  device that is locked.
00169    *
00170    *  This notification is exclusively broadcast to all registered applications.
00171    *  Application that acknowledges the notification is presumed to own handling
00172    *  the password situation.
00173    */
00174   phnEvtPassword,           /**< 0x0005  */
00175 
00176   /** outgoing call progress dialog
00177    *
00178    *  This notification is sent to help applications display the progress of an
00179    *  oubound call operation.
00180    *
00181    *  This notification is exclusively broadcast to all registered applications.
00182    *  Application that acknowledges the notification is presumed to be the only one
00183    *  to take any action on the outgoing call.
00184    */
00185   phnEvtProgress,           /**< 0x0006  */
00186 
00187   /** indication of various changes of state in Phone Library
00188    *
00189    *  This notification is sent on various changes of state in the Phone Library.
00190    *  Most of these are related to activation and registration with the carrier
00191    *  network.  Applications that display gauges with state info will often need
00192    *  to be updated after this notification.
00193    *
00194    *  Indications are often used to direct GUI interactions in applications
00195    *  that interact with the user.  For example, the Network Search notification
00196    *  might cause an app to put up a special Network Search dialog.
00197    *
00198    *  See PhnIndicationKind for list of available indications.
00199    *
00200    *  The broadcast rules for indications vary depending on the type of indication.
00201    */
00202   phnEvtIndication,         /**< 0x0007  */
00203 
00204   /** incoming call received
00205    *
00206    *  This notification is exclusively broadcast to applications registered for
00207    *  the Voice Service.  First application to acknowledge the notification will
00208    *  be presumed to control the call.  Normally application would answer the call,
00209    *  or forward it to another destination.
00210    *
00211    */
00212   phnEvtConnectInd,         /**< 0x0008  */
00213 
00214   /** call has connected
00215    *
00216    *  Despite the name, this event is used BOTH when a call goes into
00217    *  connected state (e.g. is answered), and when a call joins a conference.
00218    *
00219    *  This notification is exclusively broadcast to applications registered for
00220    *  the Voice Service.  First application to acknowledge the notification will
00221    *  be presumed to control the call or conference.
00222    */
00223   phnEvtConnectConf,        /**< 0x0009  */
00224 
00225   /** Number/name of call has changed
00226    *
00227    *  This notification is universally broadcast to all applications registered for
00228    *  the Voice Service.
00229    */
00230   phnEvtSubscriber,         /**< 0x000A  */
00231 
00232   /** call has disconnected
00233    *
00234    *  This notification occurs when the remote party of an active voice call
00235    *  disconnects.  Note that if the call is in conference (or 3-way calling) mode, then
00236    *  a different phnEvtDisconnectConf notification will be sent instead (see below).
00237    *
00238    *  This notification is universally broadcast to all applications registered for
00239    *  the Voice or Data Services.
00240    */
00241   phnEvtDisconnectInd,      /**< 0x000B  */
00242 
00243   /** call in conference (or 3-way calling) mode has disconnected
00244    *
00245    *  This notification occurs when a conference call is in progress, and one of the
00246    *  remote parties disconnects.
00247    *
00248    *  This notification is universally broadcast to all applications registered for
00249    *  the Voice Service.
00250    */
00251   phnEvtDisconnectConf,     /**< 0x000C An ACK for a disconnection command on a specific connection ID is received */
00252 
00253   /** Outbound call attempt failed because remote party (or network) reported busy
00254    *
00255    *  This notification is universally broadcast to all applications registered for
00256    *  the Voice Service.
00257    */
00258   phnEvtBusy,               /**< 0x000D  */
00259 
00260   /** Change in Call Status;  Application may need to update its state
00261    *
00262    *  This notification is sent on various changes in call state in the Phone Library.
00263    *  An application receiving this notification should poll for the connection status
00264    *  of any calls of interest, and update its own state as needed.
00265    *
00266    *  This notification is universally broadcast to all applications registered
00267    *  for the Voice Service.
00268    *********************************************************************/
00269   phnEvtUpdate,             /**< 0x000E  */
00270 
00271   /** 3-way call mode
00272    *
00273    *  This notification occurs when a call goes into conferrence (or 3-way calling) mode.
00274    *
00275    *  This notification is universally broadcast to all applications registered
00276    *  for the Voice Service.
00277    */
00278   phnEvtConference,         /**< 0x000F  */
00279 
00280   /** Incoming VoiceMail Message
00281    *
00282    *  This notification occurs when the Phone Library detects that there are
00283    *  pending VoiceMail messages available.
00284    *
00285    *  This notification is universally broadcast to all applications registered
00286    *  for the Voice Service.
00287    */
00288   phnEvtVoiceMail,          /**< 0x0010  */
00289 
00290   /** Incoming SMS message received
00291    *
00292    * This notification occurs when the Phone Library receives an
00293    * incoming SMS (Simple Message Service) message.
00294    *
00295    * This notification will be exclusively broadcast to applications
00296    * registered for the SMS service.  The Application that acknowledges
00297    * the notification is assumed to own the message, and should take
00298    * any appropriate actions.
00299    */
00300   phnEvtMessageInd,         /**< 0x0011  */
00301 
00302   /** Incoming segment of SMS Message received
00303    *
00304    * This notification occurs when the Phone Library receives a segment
00305    * of a multi-segment SMS (Simple Message Service) message.  Single
00306    * segment SMS messages will generate a MessageInd notification (see
00307    * above).
00308    *
00309    * This notification will be exclusively broadcast to applications
00310    * registered for the SMS service.  The Application that acknowledges
00311    * the notification is assumed to own the segment, and should take
00312    * any appropriate actions.
00313    */
00314   phnEvtSegmentInd,         /**< 0x0012  */
00315 
00316   /** Status of outgoing SMS message has changed
00317    *
00318    * This notification occurs when the status of a particular SMS
00319    * message has changed.  For example, an SMS message might move from
00320    * the pending queue to the sent queue after being successfully
00321    * delivered.
00322    *
00323    * This notification will be sent directly to the application that
00324    * created the message, and is NOT broadcast based on app registrations.
00325    */
00326   phnEvtMessageStat,        /**< 0x0013  */
00327 
00328   /** SMS message deleted from local DB on device
00329    *
00330    * This notification occurs when an SMS message is deleted from the
00331    * local Database on the device.
00332    *
00333    * This notification will be sent directly to the application that
00334    * created the message, and is NOT broadcast based on app registrations.
00335    */
00336   phnEvtMessageDel,         /**< 0x0014  */
00337 
00338   /** SIM Contains SMS Messages
00339    *
00340    *  This notification indicates that the SIM (Subscriber Information
00341    *  Module) on a GSM phone contains SMS (Simple Messaging Service)
00342    *  messages.  This is not an indication of new messages, just that
00343    *  messages are stored.  This notification is typically sent during
00344    *  Phone Library activation.  In many cases, the application may want
00345    *  to move the SMS messages to a local DB on the device, freeing memory
00346    *  for future incoming messages.
00347    *
00348    *  This notification will use exclusive broadcast to applications
00349    *  registered for the SMS service.  The application that acknowledges
00350    *  the notification is responsible for taking any action on moving
00351    *  the SMS messages on the SIM (if desired).
00352    */
00353   phnEvtMessageMoved,       /**< 0x0015  */
00354 
00355   /** SIM Application Toolkit (SAT) event
00356    *
00357    * The SIM Application Toolkit allows for simple applications that
00358    * can be placed on the SIM (Subscriber Identity Module) in a GSM
00359    * phone.  This notification will be sent when a SAT application is
00360    * requesting input/output to/from the user.
00361    *
00362    * This notification will use exclusive broadcast to applications
00363    * registered for the SIM Toolkit Service.  The Application that first
00364    * acknowedges the notification will be presumed to own the SAT session,
00365    * and should handle needed user dialog as appropriate.
00366    */
00367   phnEvtSATNotification,    /**< 0x0016  */
00368 
00369   /** USSD input/output requested from network
00370    *
00371    * USSD (Unstructured Supplementary Services Data) is a supplementary
00372    * service to GSM networks that allows simple text dialogs
00373    * with applications based in the network.  This notification
00374    * is sent when the network is requesting USSD input/output to/from the user.
00375    * (see +CUSD event in radio documentation for more details)
00376    *
00377    * This notification will use exclusive broadcast to applications
00378    * registered for the Voice Service.  The Application that first
00379    * acknowledges the notification will be presumed to own the USSD session.
00380    * Typically, that app will want to display any USSD message to the user,
00381    * and handle any response from the user back to the network.
00382    */
00383   phnEvtUSSDInd,            /**< 0x0017  */
00384 
00385   /** Phone Equipment state has changed
00386    *
00387    * On communicator devices there are pieces of equipment that directly
00388    * impact how the radio is used.  Examples of equipment include headset
00389    * jacks, car kits, lids, etc.  The equipment modes available will vary
00390    * with the model of communicator being used.  This notification will be
00391    * sent when ever the Phone Library detects that an available equipment
00392    * mode has changed.  See the type PhnEquipmentMode for the available
00393    * set of mode values.
00394    *
00395    * This notification will be universally broadcast to all applications
00396    * registered for any service.
00397    */
00398   phnEvtPhoneEquipmentMode, /**< 0x0018  */
00399 
00400   /** GPRS Attach Registration has changed. (GSM/GPRS systems only)
00401    *
00402    *  GPRS (General Packet Radio Services) is an extension to the GSM
00403    *  wireless network that provides higher speed, always on data connections.
00404    *  The radio must attach to the GPRS network before any GPRS sessions
00405    *  can be established.  This notification will be sent when ever the
00406    *  status of the GPRS attach registration changes.   See type
00407    *  PhnRegistrationStatus for available registration states.
00408    *
00409    *  This notification will be universally broadcast to applications
00410    * registered for any service.
00411    */
00412   phnEvtGPRSRegistration,   /**< 0x0019  */
00413 
00414   /** incoming MMS message available
00415    *
00416    *  This notification will be sent when the Phone Library receives an
00417    *  incoming MMS (Multi-media Message Service) message.
00418    *
00419    *  This notification will use exclusive broadcast to applications registered
00420    *  for the MMS service.  Application that first acknowledges the notification
00421    *  will be presumed to own the message.  Typically, that app will want
00422    *  to notify the user that there is a message available, and move the
00423    *  message into a system DB, freeing memory for future messages.
00424    */
00425   phnEvtMMSInd,             /**< 0x001A  */
00426 
00427   /************************************************************
00428   * CDMA Events
00429   *************************************************************/
00430 
00431 
00432   /** SMS Memory Full
00433    *
00434    *  This notification indicates that memory for SMS messages is
00435    *  currently full, and no new SMS messages can be received until
00436    *  some memory is freed.  A phnEvtMemoryOK notification will be sent
00437    *  when memory becomes available.
00438    *
00439    *  CURRENTLY USED BY CDMA PHONE LIBRARY ONLY
00440    */
00441   phnEvtMemoryFull,         /**< 0x001B  */
00442 
00443   /** SMS Memory no longer full
00444    *
00445    *  This notification indicates that memory for SMS messages is
00446    *  no longer full, and new SMS messages can be received.
00447    *
00448    *  CURRENTLY USED BY CDMA PHONE LIBRARY ONLY
00449    */
00450   phnEvtMemoryOK,           /**< 0x001C - < Memory is not full anymore, can receive messages Description  */
00451 
00452   /** WAP Message received via SMS (WAP in IS-637 standard)
00453    *
00454    *  NOT CURRENTLY USED (WAP notifications use standard Palm notifications)
00455    */
00456   phnEvtWAPInd,             /**< 0x001D  */
00457 
00458   /** Radio Debug Info
00459    *
00460    *  Periodically sent from Phone Library to Activation App when
00461    *  in debug mode.
00462    *
00463    *  CURRENTLY USED BY CDMA PHONE LIBRARY ONLY
00464    */
00465   phnEvtDebugReport,        /**< 0x001E  */
00466 
00467   /** System Selection mode has changed
00468    *
00469    *  Radio mode has changed (e.g. to PCS mode)
00470    *
00471    *  CURRENTLY USED BY CDMA PHONE LIBRARY ONLY
00472    */
00473   phnEvtSSModeChanged,      /**< 0x001F  */
00474 
00475   /** Position Info has changed
00476    *
00477    *  indication of change in physical location of device.  This may
00478    *  be determined by GPS, network triangulation (AFLT), or some other
00479    *  technique.
00480    *
00481    *  \TODO - rename this event & some of its data structures to be cleaner.
00482    *
00483    *  CURRENTLY USED BY CDMA PHONE LIBRARY ONLY
00484    */
00485   phnEvtPDDataChanged,      /**< 0x0020  */
00486 
00487   /** 1XRTT Status has changed
00488    *
00489    *  1XRTT is a high speed data protocol used in CDMA radios.  This
00490    *  notification indicates that the status of the 1XRTT connection
00491    *  has changed.
00492    *
00493    *  CURRENTLY USED BY CDMA PHONE LIBRARY ONLY
00494    */
00495   phnEvtOneXStatus,         /**< 0x0021  */
00496 
00497   /** Mobile IP connection failed
00498    *
00499    *  Mobile IP is a flavor of the TCP/IP protocol for use on mobile
00500    *  devices.  It allows applications to use a single IP address while
00501    *  in motion.  This notification occurs when a Mobile IP session
00502    *  fails to be established.
00503    *
00504    *  CURRENTLY USED BY CDMA PHONE LIBRARY ONLY
00505    */
00506   phnEvtMIPFailed,          /**< 0x0022  */
00507 
00508   /** IOTA Status has changed
00509    *
00510    *  Internet Over The Air (IOTA) is a protocol for a network to
00511    *  update the radio using an internet connection (as opposed to
00512    *  Over The Air (OTA)).  This notification occurs as an IOTA
00513    *  session changes (e.g. is established, committed, ended, etc).
00514    *
00515    *  CURRENTLY GENERATED BY CDMA PHONE LIBRARY ONLY
00516    */
00517   phnEvtIOTAStatus,         /**< 0x0023  */
00518 
00519   /** Data Channel availability has changed
00520    *
00521    *  This notification occurs if there is a change in the ability
00522    *  for an application to send/receive data using the radio.  For
00523    *  example on Class B radios, data is not available when a voice
00524    *  call is in progress.
00525    *
00526    * \TODO - this notification should be generated by GSM Phone Library too.
00527    *
00528    *  CURRENTLY GENERATED BY CDMA PHONE LIBRARY ONLY
00529    */
00530   phnEvtDataChannel,        /**< 0x0024  */
00531 
00532   /** Mobile IP Registration successful
00533    *
00534    *  Mobile IP is a flavor of the TCP/IP protocol for use on mobile
00535    *  devices.  It allows applications to use a single IP address while
00536    *  in motion.  This notification occurs when a Mobile IP session
00537    *  is successfully established.  The notification phnEvtMIPFailed
00538    *  will occur if the session fails.
00539    *
00540    *  CURRENTLY GENERATED BY CDMA PHONE LIBRARY ONLY
00541    */
00542   phnEvtOneXMipRRQInd,      /**< 0x0025  */
00543 
00544   /** 1XRTT Session has failed (mid-session)
00545    *
00546    *  1XRTT is a high speed data protocol used in CDMA radios.  This
00547    *  notification indicates that the 1XRTT session has failed, and
00548    *  is not available.  Note that 1XRTT session may be left in Dormant
00549    *  state.
00550    *
00551    *  CURRENTLY GENERATED BY CDMA PHONE LIBRARY ONLY
00552    */
00553   phnEvtOneXDataFail,       /**< 0x0026  */
00554 
00555   /** Start Dialing of Outbound Call
00556    *
00557    *   This notification is sent when an outbound call begins dialing before
00558    *   the call is connected.  This notification is universally broadcast to
00559    *   all applications registered for the Voice service.  Notification
00560    *   uses same notification data as Connect indication.
00561    */
00562   phnEvtStartDial,          /**< 0x0027  */
00563 
00564   /** Start of incoming call
00565    *
00566    *   This notification is sent when an incoming call if first detected.
00567    *   This notification is used to perform special pre-call processing
00568    *   like turning off of MMS playback before a call.  Any processing on
00569    *   this notification must be very quick (less than a few hundred miliseconds)
00570    *   as it could potentially delay an incoming call from being answered.
00571    *
00572    *   APPLICATIONS MUST NOT ANSWER THE CALL OR DO ANY CALL CONTROL BASED
00573    *   ON THIS NOTIFICATION.  A separate phnEvtConnectInd notification will
00574    *   be follow for this purpose.  The phnEvtConnectInd notification is normally
00575    *   processed by the Phone App, and uses exclusive broadcast.  Thus it may
00576    *   not be received by all applications.  The phnEvtStartIncomingCall
00577    *   notification is sent to all applications registered for Voice Service
00578    *   using Universal Broadcast.  The acknowledgement flag is NOT used.
00579    */
00580   phnEvtStartIncomingCall,  /**< 0x0028  */
00581 
00582   /** Alerting/Preconnected of Outbound Call
00583    *
00584    *   This notification is sent when an outbound call is alerting or
00585    *   preconnected.  This notification is universally broadcast to
00586    *   all applications registered for the Voice service.  Notification
00587    *   uses same notification data as Connect indication.
00588    */
00589   phnEvtAlertingPreConnected,   /**< 0x0029  */
00590 
00591   /** Alerting of Outbound Call (NOT USED, for future implementation)
00592    *
00593    *   NOT USED
00594    *   This notification is sent when an outbound call is alerting.
00595    *   This notification is universally broadcast to
00596    *   all applications registered for the Voice service.  Notification
00597    *   uses same notification data as Connect indication.
00598    */
00599   phnEvtAlerting,               /**< 0x002A  */
00600 
00601   /** Preconnected of Outbound Call (NOT USED, for future implementation)
00602    *
00603    *   NOT USED
00604    *   This notification is sent when an outbound call is preconnected.
00605    *   This notification is universally broadcast to
00606    *   all applications registered for the Voice service.  Notification
00607    *   uses same notification data as Connect indication.
00608    */
00609   phnEvtPreConnected,           /**< 0x002B  */
00610 
00611   /** Data session status change
00612    *  This should replace the OneXStatus, as this will encompass more info
00613    *  than OneXStatus
00614    */
00615   phnEvtDataSessionStatus,           /**< 0x002C   */
00616 
00617   /** Data session disconnected
00618    *  This is sent up when the data call is disconnected.
00619    *  We can't use the phnEvtDisconnectInd because the structure uses the
00620    *  Err class.
00621    */
00622   phnEvtDataSessionDisconnected,     /**< 0x002D   */
00623 
00624   /** Returns the network time and DST obtained from network to date time panel
00625    */
00626   
00627   phnEvtNetworkTime, /**< 0x002E   */
00628 
00629   kMaxPhnEvtSupported  /**< Must be at last position*/
00630 } PhnEventCode;
00631 
00632 #define isValidPhnEventCode(e) ((e >= phnEvtCardInsertion) && (e < kMaxPhnEvtSupported)) /**<       */
00633 
00634 
00635 /**
00636  *
00637  */
00638 typedef struct
00639   {
00640     PhoneServiceClassType service;      /**< type of call being disconnected */
00641     Err code;                           /**< cause of disconnect (0 for normal hangup) */
00642   }
00643 PhnDisconnectEventType;
00644 
00645 /**
00646  *
00647  **/
00648 typedef struct
00649   {
00650     PhnAddressHandle caller;        /**<        */
00651     PhoneServiceClassType service;  /**<        */
00652     Int16 lineNumber;               /**<        */
00653   }
00654 PhnSubscriberAddrInfo;
00655 
00656 /**
00657  *
00658  **/
00659 typedef struct
00660   {
00661       PhnConnectionID call1ID;      /**<        */
00662       PhnConnectionID call2ID;      /**<        */
00663       PhnConnectionID conferenceID;     /**<        */
00664   }
00665 PhnConferenceDesc;
00666 
00667 
00668 /**
00669  *
00670  **/
00671 typedef struct
00672   {
00673       Err code;     /**<        */
00674       UInt32 id;        /**<        */
00675       // removed Count from CDMA structure to make GSM and CDMA the same. Must update library.
00676       // dont think we use the count now anyway. That was added to debug CRC errors as far as
00677       // I know
00678       UInt16 networkError;  /**< Error code returned by the network. If this
00679                      field is non-zero it contains that error code
00680                      returned by the network. The 'code' above will be
00681                      the Phone Library version of this error. */
00682   }
00683 PhnError;
00684 
00685 /**
00686  * SMS Replacement types
00687  **/
00688 typedef UInt8 PhnSMSType;
00689 typedef enum
00690 {
00691   defaultType = 0,
00692   discardType0 = 0x40,          /**< Type 0 messages should be discarded. */
00693     replaceType1 = 0x41,        /**< Replace Short Message Type 1. */
00694     replaceType2 = 0x42,        /**< Replace Short Message Type 2. */
00695     replaceType3 = 0x43,        /**< Replace Short Message Type 3. */
00696     replaceType4 = 0x44,        /**< Replace Short Message Type 4. */
00697     replaceType5 = 0x45,        /**< Replace Short Message Type 5. */
00698     replaceType6 = 0x46,        /**< Replace Short Message Type 6. */
00699     replaceType7 = 0x47     /**< Replace Short Message Type 7. */
00700 
00701 } PhnSMSTypeEnum;
00702 
00703 /**
00704  * SMS Class types
00705  **/
00706 typedef UInt8 PhnSMSClass;
00707 typedef enum
00708 {
00709   classUnknown = 0, /**<        */
00710   class0,           /**< immediate display */
00711   class1,           /**<        */
00712   class2,       /**<        */
00713   class3        /**<        */
00714 } PhnSMSClassEnum;
00715 
00716 /**
00717  * Struct that is sent when a new sms message event
00718  *   id                 - Unique id
00719  *   oldStatus          -
00720  *   newStatus          -
00721  *
00722  *   version            - Version number of the struct
00723  *   size               - Size of the struct
00724  *   msgType            - Indicates if message should be discarded or replaced
00725  *   msgClass           - Indicates msg class
00726  *   msgInd             - True if msg contains an indicator msg
00727  *   indicator.store    - True = store msg; False = may delete msg
00728  *   indicator.activate - True then activate indicator; False = deactivate indicator
00729  *   indicator.indType  - Type of indicator to display
00730  *   trasactionID       -
00731  *   timeStamp          - Time in seconds
00732  *   serviceCenterNumber- Service Center Number
00733  *   senderNumber       - Number of sender
00734  *   callbackAddress    - CallBack number
00735  *   destPort           -
00736  *   sourcePort         -
00737  **/
00738 typedef struct PhnSMSParams
00739 {
00740   UInt32 id;            /**<        */
00741   UInt8  oldStatus;     /**<        */
00742   UInt8  newStatus;     /**<        */
00743 
00744   // new params
00745   UInt16  version;      /**<        */
00746   UInt16  size;         /**<        */
00747   PhnSMSType msgType;       /**<        */
00748   PhnSMSClass msgClass;     /**<        */
00749   Boolean moveRequested;    /**<        */
00750   Boolean msgInd;       /**<        */
00751   struct {
00752     Boolean store;      /**<        */
00753     Boolean activate;       /**<        */
00754     PhnMsgBoxType indType;  /**<        */
00755   } indicator;
00756 
00757   UInt8   trasactionID;     /**<        */
00758   UInt32 timeStamp;         /**<        */
00759 
00760   char serviceCenterNumber[kMaxPhoneNumberLen+1];   /**<        */
00761   char senderNumber[kMaxPhoneNumberLen+1];      /**<        */
00762   char callbackAddress[kMaxPhoneNumberLen+1];       /**<        */
00763 
00764   Int32 destPort;       /**<        */
00765   Int32 sourcePort;     /**<        */
00766 
00767   UInt16 networkMsgId;      /**<        */
00768   UInt8 priority;       /**<        */
00769   UInt8 privacy;        /**<        */
00770 
00771 } PhnSMSParams;
00772 
00773 #define PhnSMSParamsVersion 2       /**<        */
00774 
00775 
00776 /**
00777  * Phone buttons
00778  **/
00779 // <chg 11-04-2002 TRS> eliminate phone & data buttons.  These were from VisorPhone.
00780 typedef enum  {
00781     phnButtonHeadset,       /**<        */
00782     phnButtonRedial,        /**<        */
00783     phnButtonAnswerCall,        /**<        */
00784     phnButtonRejectCall,        /**<        */
00785     phnButtonIgnoreCall,        /**<        */
00786     phnButtonHoldCall,      /**<        */
00787     phnButtonConferenceCall,    /**<        */
00788     phnButtonLast           /**<        */
00789 } PhnModuleButtonType;
00790 
00791 #define isValidPhnModuleButtonType(m) (m < phnButtonLast)   /**<        */
00792 
00793 /**
00794  *
00795  **/
00796 typedef struct
00797   {
00798     PhnModuleButtonType key;        /**<        */
00799     UInt16            modifiers;    /**<        */
00800   }
00801 PhnKeyPressedParams;
00802 
00803 /**
00804  *
00805  **/
00806 typedef struct
00807   {
00808     PhnRegistrationStatus status;   /**<        */
00809   }
00810 PhnRegistrationType;
00811 
00812 /**
00813  *
00814  **/
00815 typedef struct
00816   {
00817     PhnPowerType    state;      /**<        */
00818   }
00819 PhnPowerEventType;
00820 
00821 typedef Err (* ContinuePowerOnOffCallback) (UInt16 refNum); /**<        */
00822 
00823 /**
00824  *
00825  **/
00826 typedef struct
00827   {
00828     PhnIndicationKind kind;         /**<        */
00829     char            filler;         /**<        */
00830     union
00831         {
00832         struct
00833             {
00834             Boolean state;      /**<        */
00835             } simReady;
00836         struct
00837             {
00838             GSMSIMMessagesDialogKind dialog;    /**<        */
00839             Boolean moveMessages;           /**<        */
00840         DWord mSIMMessagesAcknowledge;      /**< creator of move msg dialog for subsequent events */
00841             } simMessages;
00842         struct
00843             {
00844             PhnPasswordType type;       /**<        */
00845             } passwordAccepted;
00846         struct
00847             {
00848             Boolean state;          /**<        */
00849             } networkAvailable;
00850         struct
00851             {
00852               ContinuePowerOnOffCallback continuePowerOnOff;    /**<        */
00853             } powerOnOffContinueCallback;
00854     struct
00855         {
00856             UInt32 indicationCode;  /**<        */
00857         } otaspMsg;
00858 
00859     } data;
00860 
00861   }
00862 PhnIndicationType;
00863 
00864 
00865 typedef char PhnPassword[maxPasswordLen+2];     /**<        */
00866 
00867 /**
00868  *
00869  **/
00870 typedef struct  {
00871     PhnPasswordType     type;       /**<        */
00872     PhnPasswordType     prevType;   /**<        */
00873     Err         error;      /**<        */
00874     PhnPassword     pin;        /**<        */
00875     PhnPassword     puk;        /**<        */
00876 } PhnPasswordEventType;
00877 
00878 
00879 /**
00880  *
00881  **/
00882 typedef enum  {
00883     kOpenDialog,        /**<        */
00884     kCloseDialog,       /**<        */
00885     kSetText,       /**<        */
00886     kSetRecipient,      /**<        */
00887     kShowSegment        /**<        */
00888 } PhnProgressType;
00889 
00890 #define isValidPhnProgressType(p) (p <= kShowSegment)       /**<        */
00891 //#define isValidPhnProgressType(p) ((p >= kOpenDialog) && (p <= kShowSegment))
00892 
00893 /**
00894  *
00895  **/
00896 typedef enum  {
00897     kDialogSetBarring,      /**<        */
00898     kDialogGetBarring,      /**<        */
00899     kDialogSetForwarding,       /**<        */
00900     kDialogGetForwarding,       /**<        */
00901     kDialogSetCallWaiting,      /**<        */
00902     kDialogGetCallWaiting,      /**<        */
00903     kDialogGetOperatorList,     /**<        */
00904     kDialogSetOperator,     /**<        */
00905     kDialogOperatorSelection,   /**<        */
00906     kDialogImmediateSend,       /**<        */
00907     kDialogDeferredSend,        /**<        */
00908     kDialogSendUSSD         /**<        */
00909 } PhnOpenDialogType;
00910 
00911 #define isValidPhnOpenDialogType(o) (o <= kDialogSendUSSD)      /**<        */
00912 //#define isValidPhnOpenDialogType(o) ((o >= kDialogSetBarring) && (o <= kDialogSendUSSD))
00913 
00914 /**
00915  *
00916  **/
00917 typedef struct {
00918     PhnProgressType     progress;   /**<        */
00919     PhnOpenDialogType   dialog;     /**<        */
00920     DWord           data;       /**< only for SMS progress */
00921 } PhnProgressEventType;
00922 
00923 /**
00924  *
00925  **/
00926 typedef struct {
00927     PhnDatabaseID msgID;    /**<        */
00928     DWord msgOwner;     /**<        */
00929     Err error;      /**<        */
00930     UInt8 event;        /**<        */
00931 } PhnMovedMsgDescType;
00932 
00933 /**
00934  *
00935  **/
00936 typedef struct {
00937     UInt16 count;           /**<        */
00938     PhnMovedMsgDescType* list;  /**<        */
00939 } PhnMovedMsgsParamsType;
00940 
00941 /**
00942  *
00943  **/
00944 typedef struct {
00945     long    result;     /**<        */
00946     CharPtr string;     /**<        */
00947 } PhnUSSDEventType;
00948 
00949 /**
00950  *
00951  **/
00952 typedef struct {
00953     MemHandle   dataH;          /**<        */
00954     UInt32      notificationType;   /**<        */
00955 } PhnSATEventType;
00956 
00957 // for notificationType = kSATDisplayText
00958 /**
00959  *
00960  **/
00961 typedef struct {
00962     UInt32  signature;      /**<        */
00963     UInt32  notificationType;   /**<        */
00964 
00965     UInt32  textOffset;     /**<        */
00966     UInt16  priority;       /**<        */
00967     UInt16  clearMode;      /**<        */
00968 } PhnSATEventDisplayText;
00969 
00970 // for notificationType = kSATGetInkey
00971 /**
00972  *
00973  **/
00974 typedef struct {
00975     UInt32  signature;      /**<        */
00976     UInt32  notificationType;   /**<        */
00977 
00978     UInt32  textOffset;     /**<        */
00979     UInt16  format;         /**< See GSMSATEventInputFormatEnum */
00980     UInt16  helpInfo;       /**<        */
00981 } PhnSATEventGetInkey;
00982 
00983 // header for all SATEvents
00984 /**
00985  *
00986  **/
00987 typedef struct PhnSATEventHeader        PhnSATEventHeader;  /**<        */
00988 struct PhnSATEventHeader {
00989     UInt32  signature;      /**<        */
00990     UInt32  notificationType;   /**<        */
00991 };
00992 
00993 // for notificationType = kSATGetInput
00994 /**
00995  *
00996  **/
00997 typedef struct {
00998     UInt32  signature;      /**<        */
00999     UInt32  notificationType;   /**<        */
01000 
01001     UInt32  textOffset;     /**<        */
01002     UInt16  format;         /**< See GSMSATEventInputFormatEnum */
01003     UInt16  helpInfo;       /**<        */
01004     UInt16  echoMode;       /**<        */
01005     UInt16  minSize;        /**<        */
01006     UInt32  defaultOffset;      /**< offset of default value string at end of cmd block (0 if none) <chg 05-13-2002 TRS> bug # 13829 */
01007     UInt16  maxSize;        /**<        */
01008     UInt16 pad;
01009 } PhnSATEventGetInput;
01010 
01011 // for notificationType = kSATSetupCall
01012 /**
01013  *
01014  **/
01015 typedef struct {
01016     UInt32  signature;      /**<        */
01017     UInt32  notificationType;   /**<        */
01018 
01019     UInt32  numberOffset;       /**<        */
01020     UInt32  promptOffset;       /**<        */
01021     UInt16  type;           /**<        */
01022     UInt16  callType;
01023 } PhnSATEventSetupCall;
01024 
01025 // for notificationType = kSATPlayTone
01026 /**
01027  *
01028  **/
01029 typedef struct {
01030     UInt32  signature;      /**<        */
01031     UInt32  notificationType;   /**<        */
01032 
01033     UInt32  textOffset;     /**<        */
01034     UInt16  toneType;       /**<        */
01035     UInt16  timeUnit;       /**< valid only if timeInterval > 0 */
01036     UInt16  timeInterval;       /**<        */
01037     UInt16  pad;
01038 } PhnSATEventPlayTone;
01039 
01040 // contain info for one menu item
01041 /**
01042  *
01043  **/
01044 typedef struct {
01045     UInt32  labelOffset;    /**<        */
01046     UInt32  features;   /**<        */
01047     UInt16  id;     /**<        */
01048     UInt16  nextAction; /**<        */
01049 } PhnSATEventMenuRec;
01050 
01051 // for notificationType = kSATDisplaySubmenus
01052 /**
01053  *
01054  **/
01055 typedef struct {
01056     UInt32  signature;      /**<        */
01057     UInt32  notificationType;   /**<        */
01058 
01059     UInt32  titleOffset;        /**<        */
01060     UInt32  defaultItem;        /**< only valid in submenu */
01061     UInt32  recordCount;        /**<        */
01062     PhnSATEventMenuRec  record[1];  /**<        */
01063 } PhnSATEventMenu;
01064 
01065 
01066 // for notificationType = kSATSendSS, kSATSendSMS, and kSATSendUSSD
01067 /**
01068  *
01069  **/
01070 typedef struct {
01071     UInt32  signature;      /**<        */
01072     UInt32  notificationType;   /**<        */
01073 
01074     UInt32  textOffset;     /**<        */
01075 } PhnSATEventSendSMS;
01076 
01077 
01078 // for notificationType = kSATRefresh
01079 /**
01080  *
01081  **/
01082 typedef struct {
01083     UInt32  signature;      /**<        */
01084     UInt32  notificationType;   /**<        */
01085     UInt32  EFList;       /**< This is a bitmap of the efs to be refreshed*/
01086     UInt16  refreshType;  /**<        */
01087     UInt16  pad;
01088   } PhnSATEventRefresh;
01089 
01090 
01091 // for notificationType = kSATLaunchBrowser
01092 /**
01093  *
01094  **/
01095 typedef struct {
01096     UInt32  signature;      /**<        */
01097     UInt32  notificationType;   /**<        */
01098     UInt32  action;         /**<        */
01099     UInt32  urlOffset;          /**<        */
01100     UInt32  bearerOffset;       /**<        */
01101     UInt32  provOffset;         /**<        */
01102     UInt32  gatewayProxyOffset;     /**<        */
01103     UInt32  alphaIdOffset;      /**<        */
01104   } PhnSATEventLaunchBrowser;
01105 
01106 // for notificationType = kSATIdleModeText
01107 /**
01108  *
01109  **/
01110 typedef struct {
01111     UInt32  signature;
01112     UInt32  notificationType;
01113 
01114     UInt32  alphaIdOffset;
01115 } PhnSATEventIdleModeText;
01116 
01117 // for notificationType = kSATIdleRunAT
01118 /**
01119  *
01120  **/
01121 typedef struct {
01122     UInt32  signature;
01123     UInt32  notificationType;
01124 
01125     UInt32  alphaIdOffset;
01126 } PhnSATEventRunAT;
01127 
01128 
01129 // for notificationType = kSATDataSvc
01130 /**
01131  *
01132  **/
01133 typedef struct {
01134   UInt32  signature;
01135   UInt32  notificationType;
01136   
01137   UInt8   chanId;
01138   UInt8   serviceType;      /** See GSMSATDataSvcType */
01139   UInt8 loginNeeded;
01140   UInt8 passwdNeeded;
01141   UInt32  alphaIdOffset;
01142 } PhnSATEventDataSvc;
01143 
01144 // for notificationType = kSATSendDTMF
01145 /**
01146  *
01147  **/
01148 typedef struct {
01149   UInt32  signature;
01150   UInt32  notificationType;
01151   
01152   UInt32  alphaIdOffset;
01153   UInt32  dtmfChar;
01154 } PhnSATEventSendDTMF;
01155 
01156 
01157 /**
01158  *
01159  **/
01160 typedef struct {
01161     long    mode;       /**<        */
01162 } PhnPhoneEquipmentMode;
01163 
01164 
01165 /**
01166  *
01167  **/
01168 typedef enum
01169   {
01170     eDbgUpdateNone,     /**<        */
01171     eDbgUpdateYes,      /**<        */
01172     eDbgUpdateQuit      /**<        */
01173   }
01174 PhnMiscDbgUpdateKind;
01175 
01176 #define isValidPhnMiscDbgUpdateKind(x) ((x >= eDbgUpdateNone) && (x <= eDbgUpdateQuit)) /**<        */
01177 
01178 /**
01179  *
01180  **/
01181 typedef struct
01182   {
01183     PhnMiscDbgUpdateKind miscUpdate;    /**<        */
01184   }
01185 PhnMiscDbgRptType;
01186 
01187 
01188 /**
01189  *
01190  **/
01191 typedef enum
01192   {
01193     kMsgIdReserved,     /**<        */
01194     kMsgIdDeliverMT,        /**<        */
01195     kMsgIdSubmitMO,     /**<        */
01196     kMsgIdcancelMO,     /**<        */
01197     kMsgIdDeliveryMTAck,    /**<        */
01198     kMsgIdUserAck       /**<        */
01199   }
01200 PhnMsgIDType;
01201 
01202 #define isValidPhnMsgIDType(m) ((m >= kMsgIdReserved) && (m <= kMsgIdUserAck))  /**<        */
01203 
01204 
01205 /**
01206  *
01207  **/
01208 typedef enum
01209   {
01210     phnDataAvailable,       /**<        */
01211     phnDataNotAvailable     /**< Used by apps that need to know when they can use the data channel */
01212   }
01213 PhnDataChannelType;
01214 
01215 #define isValidPhnDataChannelType(x) ((x == phnDataAvailable) || (x == phnDataNotAvailable))    /**<        */
01216 
01217 
01218 /**
01219  *
01220  **/
01221 typedef struct
01222   {
01223     Boolean init_rrq;           /**< true if initial registration, false if reregistration */
01224     DWord   life_timer;         /**< new lifetime value in seconds */
01225     DWord   rrq_timer;          /**< new reregistration time value in seconds */
01226     DWord   traffic_ck_delay_timer; /**< time in seconds to delay checking for data to trigger re-registration */
01227   }
01228 PhnOnexMipRRQType, *PhnOnexMipRRQPtr;
01229 
01230 
01231 /**
01232  * @name Palm Notifications
01233  *
01234  **/
01235 /*@{*/
01236 #define NAITextLength       72              /**<        */
01237 #define NAITextSize         (NAITextLength + 1)     /**<        */
01238 #define PasswordLength      16              /**<        */
01239 #define PasswordSize        (PasswordLength + 1)    /**<        */
01240 /*@}*/
01241 
01242 /**
01243  * @name WAP defines
01244  *       Text Header elements
01245  *
01246  **/
01247 /*@{*/
01248 #define phnWAPEvent         'Hwap'      /**<        */
01249 
01250 #define WAPMsgLength        160         /**<        */
01251 #define WAPMsgSize          (WAPMsgLength + 1)  /**<        */
01252 /*@}*/
01253 
01254 /**
01255  * @name WakeUp notification
01256  *
01257  **/
01258 /*@{*/
01259 #define WUHeaderEscapeSeq     "//"              /**< start sequence of the header */
01260 #define WUTextHeader          "//WU"            /**< beginning of an wakeup header */
01261 #define WUTextHeaderLength    4                 /**< length of the header */
01262 
01263 #define WUFieldDelimiter     ';'                /**< wakeup message fields are separated by a semi-colon */
01264 
01265 #define phnWUEvent         'Hwak'           /**<        */
01266 /*@}*/
01267 
01268 /**
01269  * @name UP stuff
01270  * Text Header elements
01271  **/
01272 /*@{*/
01273 #define UPHeaderEscapeSeq     "//"              /**< start sequence of the header */
01274 #define UPTextHeader          "//UP"            /**< beginning of an UP header */
01275 #define UPTextHeaderLength    4                 /**< length of the header */
01276 
01277 #define phnUPEvent         'Hsup'       /**<        */
01278 
01279 #define UPDataSize            160               /**< maximum size of the data sent from this message */
01280 /*@}*/
01281 
01282 /**
01283   *  Network Wakeup Stuff
01284   *  Text Header elements
01285   **/
01286 
01287 /** Structure passed to the callbacks registered for incoming wakeup notifications */
01288 struct WUNotificationEventType
01289 {
01290     UInt16 version;     /**< version number to provide future backwards compatibility */
01291 
01292     void *headerP;      /**< pointer to raw header */
01293     UInt8 headerLen;    /**< length of headerP */
01294 
01295     /** Network wakeup fields */
01296     char  NAI[NAITextSize];       /**< stores the NAI */
01297     char  _filler1_;              /**< for 16 bit allignment */
01298     UInt32 netTimeStamp;          /**< timestamp from the message */
01299     UInt8 reasonCode;             /**< a reason code from the message */
01300     char  _filler2_;              /**< for 16 bit allignment */
01301     char  password[PasswordSize]; /**< the password (encrypted) */
01302     char  _filler3_;              /**< for 16 bit allignment */
01303 
01304     /** SMS related fields */
01305     UInt32 msgID; /**< ID into the SMS database to reference this
01306                   * message this ID is not gauranteed to be
01307                   * valid once the notification callback
01308                   * returns.  Users should make a copy of the
01309                   * msg if they want to work on it after the
01310                   * callback returns.
01311                   */
01312     UInt32 datetime;   /**< date/time stamp */
01313     Int32  reserved2;  /**< reserved*/
01314     Int32  reserved3;  /**< reserved*/
01315 };
01316 
01317 #ifndef _cplusplus
01318 typedef struct WUNotificationEventType WUNotificationEventType; /**<        */
01319 #endif
01320 
01321 
01322 // UP Stuff
01323 
01324 
01325 
01326 /** Structure passed to the callbacks registered for incoming UP notifications */
01327 struct UPNotificationEventType
01328 {
01329     UInt16 version;  /**< version number to provide future backwards compatibility */
01330 
01331     void *headerP;    /**< pointer to raw header */
01332     UInt8 headerLen;  /**< length of headerP */
01333 
01334     /** Network wakeup fields */
01335     char  UPData[UPDataSize + 1];        /**< stores the raw data */
01336     UInt8 _filler100_;
01337 
01338     /** SMS related fields */
01339     UInt32 msgID; /**< ID into the SMS database to reference this
01340                   * message this ID is not gauranteed to be
01341                   * valid once the notification callback
01342                   * returns.  Users should make a copy of the
01343                   * msg if they want to work on it after the
01344                   * callback returns.
01345                   */
01346     UInt32 datetime;   /**< date/time stamp */
01347     Int32  reserved2;  /**< reserved*/
01348     Int32  reserved3;  /**< reserved*/
01349 };
01350 
01351 #ifndef _cplusplus
01352 typedef struct UPNotificationEventType UPNotificationEventType; /**<        */
01353 #endif
01354 
01355 
01356 // WAP Stuff
01357 
01358 /**
01359  * WAP push message - message content type
01360  **/
01361 typedef enum {
01362   kWAPContentTypeUnknown = 0,       /**<        */
01363   kWAPContentTypeIOTA,          /**<        */
01364   kWAPContentTypeMMS,           /**<        */
01365   kWAPContentTypeMMSText,       /**<        */
01366   kWAPContentTypeServiceLoad,       /**<        */
01367   kWAPContentTypeServiceLoadText,   /**<        */
01368   kWAPContentTypeServiceIndicator,  /**<        */
01369   kWAPContentTypeServiceIndicatorText   /**<        */
01370 } PhnWAPPushContentType;
01371 
01372 typedef UInt8 PhnWAPPushContent;
01373 /**
01374  * WAP push message - message type
01375  * http://www.wapforum.org/wina/push-app-id.htm
01376  **/
01377 typedef enum {
01378   //URN                   //Number  //  Description
01379   kWAPAnyApp              = 0x00,   /**< Any Application */
01380   kWAPPushSIA             = 0x01,   /**< WAP Push SIA  */
01381   kWAPWmlUa               = 0x02,   /**< WML User Agent  */
01382   kWAPWtaUa               = 0x03,   /**< WTA User Agent  */
01383   kWAPMmsUa               = 0x04,   /**< This ID will used for application dispatching  to MMS User Agent in the handling of MMS notfication using WAP Push. See WAP-206-MMSCTR for more detail.  */
01384   kWAPPushSyncml          = 0x05,   /**< SyncML PUSH Application ID: used to push a SyncML Alert from a SyncML server side. The SyncML Alert is an indication for starting a SyncML session e.g., for data synchronization. Requested by the WAP WAG Synchronisation Drafting Committee.  */
01385   kWAPLocUa               = 0x06,   /**< This ID is used for application dispatching to Location User Agent in the handling of Location Invocation document. See WAP-257-LOCPROT for details. Requested by the WAP WAG Location Drafting Committee.   */
01386   kWAPSyncmlDm            = 0x07,   /**< This ID is used for SyncML Device Management. Requested by the SyncML Device Management Expert Group.   */
01387   kWAPDrmUa               = 0x08,   /**< This ID is used for DRM User Agent. Requested by the WAP WAG Download DC.   */
01388   kWAPEmnUa               = 0x09,   /**< This ID is used for Email Notification (EMN) User Agent. Requested by the WAP WAG PUSH DC.   */
01389   kWAPWvUa                = 0x0A,   /**< This ID is used for Wireless Village (EMN) User Agent. Requested by Wireless Village.   */
01390 
01391   // Registered Values -----------------------------
01392   kWAPMsLocalcontentUa    = 0x8000, /**< An application to receive pages to be stored and access locally. These are not wta channels. Usually the pages will be downloaded as multi-part mime.   */
01393   kWAPMsIMclientUa        = 0x8001, /**< An application which will act as an instant messaging client on a phone.   */
01394   kWAPdocomoImodeMailUa   = 0x8002, /**< Used to identify the i-mode mail application user agent on a mobile device.   */
01395   kWAPdocomoImodeMrUa     = 0x8003, /**< Used to identify the i-mode message request application user agent on a mobile device.   */
01396   kWAPdocomoImodeMfUa     = 0x8004, /**< Used to identify the i-mode message free application user agent on a mobile device.   */
01397   kWAPMotorolaLocationUa  = 0x8005, /**< An application that receives message notifications from the location server.   */
01398   kWAPMotorolaNowUa       = 0x8006, /**< An application that presents personalized information to the user.   */
01399   kWAPMotorolaOtaprovUa   = 0x8007, /**< An application that receives provisioning messages from the server.   */
01400   kWAPMotorolaBrowserUa   = 0x8008, /**< A web browsing application.   */
01401   kWAPMotorolaSplashUa    = 0x8009, /**< An application that receives splash screen content from the server.   */
01402   kWAPUnused              = 0x800A, /**<        */
01403   kWAPNaiMvswCommand      = 0x800B, /**< Used by administrators to issue commands to individual devices.   */
01404   // unused  0x800C through 0x800F  /**<        */
01405   kWAPopenwaveIotaUa      = 0x8010  /**< Used for application dispatching to the IP-based OTA Provisioning Service Agent in the handling of IOTA notfications using WAP Push.   */
01406 } PhnWAPPushAppIdType;
01407 
01408 
01409 typedef UInt16 PhnWAPPushAppId;
01410 
01411 /**
01412  * Structure passed to the callbacks registered for WAP notifications
01413  **/
01414 #define WAPNotificationTypeVersion   3      /**<        */
01415 struct WAPNotificationEventType
01416 {
01417     UInt16 version;         /**< version number to provide future backwards compatibility */
01418 
01419     /** Network wakeup fields */
01420     char  *wapMsg;
01421     char  _filler1_;                    /**< for 16 bit allignment */
01422 
01423     /** SMS related fields */
01424     UInt32 length;                      /**< originally the msgID, now it stores the length of the wapMsg */
01425     UInt32 datetime;                    /**< date/time stamp */
01426 
01427     /** VERSION 3 ADDITION */
01428     UInt32 id;                      /**< msgID */
01429     PhnWAPPushContent contentType;  /**< WAP push message content type */
01430     PhnWAPPushAppId   appId;        /**< WAP push message application id */
01431 };
01432 
01433 #ifndef _cplusplus
01434 typedef struct WAPNotificationEventType WAPNotificationEventType;   /**<        */
01435 #endif
01436 
01437 
01438 /**
01439  *  Phone Event Structure
01440  **/
01441 typedef struct
01442 {
01443   UInt8    eventType;     /**< PhnEventCode */
01444   Boolean  acknowledge;   /**<              */
01445   UInt16   connectionID;  /**<              */
01446   UInt16   launchCode;    /**<              */
01447   Ptr      launchParams;  /**<              */
01448   union Data
01449     {
01450       PhnDisconnectEventType   disconnect;              /**<        */
01451       PhnSubscriberAddrInfo    info;                    /**<        */
01452       PhnConferenceDesc        conference;              /**<        */
01453       PhnError                 error;                   /**<        */
01454       PhnSMSParams             params;                  /**<        */
01455       PhnKeyPressedParams      keyPressed;              /**<        */
01456       PhnRegistrationType      registration;            /**<        */
01457       PhnMsgBoxDataType        msgBox;                  /**<        */
01458       PhnPowerEventType        power;                   /**<        */
01459       PhnPasswordEventType     password;                /**<        */
01460       PhnProgressEventType     progress;                /**<        */
01461       PhnIndicationType        indication;              /**<        */
01462       PhnMovedMsgsParamsType   moved;                   /**<        */
01463       PhnUSSDEventType         ussd;                    /**<        */
01464       PhnSATEventType          sat;                     /**<        */
01465       PhnPhoneEquipmentMode    phoneEquipmentMode;      /**<        */
01466       PhnMiscDbgRptType        miscDbgRpt;              /**<        */
01467       PhnPDDataType            PDDataInfo;              /**< sent asynchronously by the modem */
01468       PhnOneXStatus            oneXStatus;              /**<        */
01469       PhnMIPFailType           mipSessionFailReason;    /**<        */
01470       PhnIOTAReportType        iotaInfo;                /**<        */
01471       PhnDataChannelType       dataChannelAvailability; /**< phnEvtDataChannel event <currently not used> */
01472       PhnOnexMipRRQType        PhnOnxMipRRQ;            /**<        */
01473       PhnOneXDataFailType      oneXFailReason;          /**<        */
01474       WAPNotificationEventType wapEvtParams;            /**<        */
01475       PhnDataSessionStateType  dataSesstionStatus;      /**< Sent when the data session state changes */
01476       PhnNetworkTime           networkTime;  /**< GSM Only, phnEvtNetworkTime */
01477       
01478     }
01479   data;
01480 }
01481 PhnEventType, * PhnEventPtr;
01482 
01483 #define PhnEventRecord PhnEventType
01484 
01485 #endif

Top Palm Developer Network
© 2004-2008, Palm, Inc. All rights reserved.
Generated on Fri Jun 13 10:06:53 2008 for Palm API Guide