aboutsummaryrefslogtreecommitdiffstats
path: root/gobi-api/fixed-GobiAPI-1.0.40/GobiConnectionMgmt/GobiConnectionMgmtExports.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gobi-api/fixed-GobiAPI-1.0.40/GobiConnectionMgmt/GobiConnectionMgmtExports.cpp')
-rwxr-xr-xgobi-api/fixed-GobiAPI-1.0.40/GobiConnectionMgmt/GobiConnectionMgmtExports.cpp5030
1 files changed, 5030 insertions, 0 deletions
diff --git a/gobi-api/fixed-GobiAPI-1.0.40/GobiConnectionMgmt/GobiConnectionMgmtExports.cpp b/gobi-api/fixed-GobiAPI-1.0.40/GobiConnectionMgmt/GobiConnectionMgmtExports.cpp
new file mode 100755
index 0000000..acee0b7
--- /dev/null
+++ b/gobi-api/fixed-GobiAPI-1.0.40/GobiConnectionMgmt/GobiConnectionMgmtExports.cpp
@@ -0,0 +1,5030 @@
+/*===========================================================================
+FILE:
+ GobiConnectionMgmtExports.cpp
+
+DESCRIPTION:
+ QUALCOMM Gobi 3000 Connection Management API exports
+
+Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of Code Aurora Forum nor
+ the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+==========================================================================*/
+
+//---------------------------------------------------------------------------
+// Include Files
+//---------------------------------------------------------------------------
+#include "GobiConnectionMgmt.h"
+#include "GobiConnectionMgmtAPI.h"
+
+//---------------------------------------------------------------------------
+// Definitions
+//---------------------------------------------------------------------------
+
+// Maximum length for adapter device path
+const ULONG MAX_AI_DEVICE_PATH = 256;
+
+// Maximum length for adapter key
+const ULONG MAX_AI_KEY = 16;
+
+//---------------------------------------------------------------------------
+// Pragmas (pack structs)
+//---------------------------------------------------------------------------
+#pragma pack( push, 1 )
+
+/*=========================================================================*/
+// Struct sAdapterInfo
+// Struct to represent Gobi adapter info
+/*=========================================================================*/
+struct sAdapterInfo
+{
+ public:
+ CHAR mPath[MAX_AI_DEVICE_PATH];
+ CHAR mKey[MAX_AI_KEY];
+};
+
+//---------------------------------------------------------------------------
+// Pragmas
+//---------------------------------------------------------------------------
+#pragma pack( pop )
+
+/*=========================================================================*/
+// Exported Methods
+/*=========================================================================*/
+
+/* Returns the type of the connected device */
+GobiType GetDeviceType()
+{
+ cGobiConnectionMgmt *pAPI = gConnectionDLL.GetAPI();
+ if (!pAPI)
+ return GOBITYPE_UNKNOWN;
+ return pAPI->GetDeviceType();
+}
+
+/*===========================================================================
+METHOD:
+ QCWWANEnumerateDevices
+
+DESCRIPTION:
+ This function enumerates the Gobi devices currently attached to the
+ system
+
+PARAMETERS:
+ pDevicesSize [I/O] - Upon input the maximum number of elements that the
+ device array can contain. Upon successful output
+ the actual number of elements in the device array
+ pDevices [ O ] - The device array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG QCWWANEnumerateDevices(
+ BYTE * pDevicesSize,
+ BYTE * pDevices )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ // Validate arguments
+ if (pDevicesSize == 0 || pDevices == 0)
+ {
+ return (ULONG)eGOBI_ERR_INVALID_ARG;
+ }
+
+ // Assume failure
+ BYTE maxInstances = *pDevicesSize;
+ *pDevicesSize = 0;
+
+ // Obtain adapter info
+ std::vector <cGobiConnectionMgmt::tDeviceID> adapters;
+ adapters = pAPI->GetAvailableDevices();
+
+ ULONG sz = (ULONG)adapters.size();
+ if (sz > (ULONG)maxInstances)
+ {
+ sz = (ULONG)maxInstances;
+ }
+
+ sAdapterInfo * pOutput = (sAdapterInfo *)pDevices;
+ for (ULONG a = 0; a < sz; a++)
+ {
+ const cGobiConnectionMgmt::tDeviceID & id = adapters[a];
+
+ memset( &pOutput->mPath[0], 0, (SIZE_T)MAX_AI_DEVICE_PATH );
+ memset( &pOutput->mKey[0], 0, (SIZE_T)MAX_AI_KEY );
+
+ ULONG len = id.first.size();
+ if (len > 0)
+ {
+ if (len >= MAX_AI_DEVICE_PATH)
+ {
+ len = MAX_AI_DEVICE_PATH - 1;
+ }
+
+ memcpy( (LPVOID)&pOutput->mPath[0],
+ (LPVOID)id.first.c_str(),
+ (SIZE_T)len );
+ }
+
+ len = id.second.size();
+ if (len > 0)
+ {
+ if (len >= MAX_AI_KEY)
+ {
+ len = MAX_AI_KEY - 1;
+ }
+
+ memcpy( (LPVOID)&pOutput->mKey[0],
+ (LPCVOID)id.second.c_str(),
+ (SIZE_T)len );
+ }
+
+ pOutput++;
+ }
+
+ *pDevicesSize = (BYTE)sz;
+ return eGOBI_ERR_NONE;
+}
+
+/*===========================================================================
+METHOD:
+ QCWWANConnect
+
+DESCRIPTION:
+ This function connects the CM API library to the specified Gobi
+ device
+
+ Both device node and key are case sensitive
+
+PARAMETERS:
+ pDeviceNode [ I ] - The device node
+ pDeviceKey [ I ] - The device key (unique, stored on-device)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG QCWWANConnect(
+ CHAR * pDeviceNode,
+ CHAR * pDeviceKey )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ // Validate arguments
+ if (pDeviceNode == 0 && pDeviceKey != 0)
+ {
+ // If you specify a device key then you have to specify a device ID
+ return (ULONG)eGOBI_ERR_INVALID_ARG;
+ }
+
+ bool bConnect = pAPI->Connect( (LPCSTR)pDeviceNode,
+ (LPCSTR)pDeviceKey );
+ if (bConnect == false)
+ {
+ return (ULONG)pAPI->GetCorrectedLastError();
+ }
+
+ return (ULONG)eGOBI_ERR_NONE;
+}
+
+/*===========================================================================
+METHOD:
+ QCWWANCancel
+
+DESCRIPTION:
+ This function cancels the most recent outstanding request
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG QCWWANCancel()
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->CancelSend();
+}
+
+/*===========================================================================
+METHOD:
+ QCWWANDisconnect
+
+DESCRIPTION:
+ This function disconnects the CM API library from the currently
+ connected Gobi device
+
+PARAMETERS:
+ pState [ O ] - State of the current packet session
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG QCWWANDisconnect()
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ bool bDisco = pAPI->Disconnect();
+ if (bDisco == false)
+ {
+ return (ULONG)pAPI->GetCorrectedLastError();
+ }
+
+ return (ULONG)eGOBI_ERR_NONE;
+}
+
+/*===========================================================================
+METHOD:
+ QCWWANGetConnectedDeviceID
+
+DESCRIPTION:
+ This function returns the Node/key of the device the Gobi CM API library
+ is currently connected to
+
+PARAMETERS:
+ deviceNodeSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the device Node array can contain
+ pDeviceNode [ O ] - Device Node (NULL terminated string)
+ deviceKeySize [ I ] - The maximum number of characters (including NULL
+ terminator) that the device key array can contain
+ pDeviceKey [ O ] - Device key (NULL terminated string)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG QCWWANGetConnectedDeviceID(
+ ULONG deviceNodeSize,
+ CHAR * pDeviceNode,
+ ULONG deviceKeySize,
+ CHAR * pDeviceKey )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ // Validate arguments
+ if ( (deviceNodeSize == 0)
+ || (pDeviceNode == 0)
+ || (deviceKeySize == 0)
+ || (pDeviceKey == 0) )
+ {
+ return (ULONG)eGOBI_ERR_INVALID_ARG;
+ }
+
+ *pDeviceNode = 0;
+ *pDeviceKey = 0;
+
+ std::string devNode = "";
+ std::string devKey = "";
+ bool bOK = pAPI->GetConnectedDeviceID( devNode, devKey );
+ if (bOK == false)
+ {
+ return (ULONG)pAPI->GetCorrectedLastError();
+ }
+
+ ULONG lenNode = (ULONG)devNode.size();
+
+ // Space to perform the copy?
+ if (deviceNodeSize < lenNode + 1)
+ {
+ return eGOBI_ERR_BUFFER_SZ;
+ }
+
+ memcpy( (LPVOID)pDeviceNode, (LPVOID)devNode.c_str(), lenNode );
+
+ // Enforce null termination
+ pDeviceNode[lenNode] = 0;
+
+ ULONG lenKey = (ULONG)devKey.size();
+
+ // Space to perform the copy?
+ if (deviceKeySize < lenKey + 1)
+ {
+ return eGOBI_ERR_BUFFER_SZ;
+ }
+
+ memcpy( (LPVOID)pDeviceKey, (LPVOID)devKey.c_str(), lenKey );
+
+ // Enforce null termination
+ devKey[lenKey] = 0;
+
+ return eGOBI_ERR_NONE;
+}
+
+/*===========================================================================
+METHOD:
+ GetSessionState
+
+DESCRIPTION:
+ This function returns the state of the current packet data session
+
+PARAMETERS:
+ pState [ O ] - State of the current packet session
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSessionState( ULONG * pState )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSessionState( pState );
+}
+
+/*===========================================================================
+METHOD:
+ GetSessionDuration
+
+DESCRIPTION:
+ This function returns the duration of the current packet data session
+
+PARAMETERS:
+ pDuration [ O ] - Duration of the current packet session
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSessionDuration( ULONGLONG * pDuration )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSessionDuration( pDuration );
+}
+
+/*===========================================================================
+METHOD:
+ GetDormancyState
+
+DESCRIPTION:
+ This function returns the dormancy state of the current packet
+ data session (when connected)
+
+PARAMETERS:
+ pState [ O ] - Dormancy state of the current packet session
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetDormancyState( ULONG * pState )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetDormancyState( pState );
+}
+
+/*===========================================================================
+METHOD:
+ GetAutoconnect (Deprecated)
+
+DESCRIPTION:
+ This function returns the current autoconnect data session setting
+
+PARAMETERS:
+ pSetting [ O ] - NDIS autoconnect setting
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetAutoconnect( ULONG * pSetting )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ ULONG dummy;
+ return (ULONG)pAPI->GetEnhancedAutoconnect( pSetting, &dummy );
+}
+
+/*===========================================================================
+METHOD:
+ SetAutoconnect (Deprecated)
+
+DESCRIPTION:
+ This function sets the autoconnect data session setting
+
+PARAMETERS:
+ setting [ I ] - NDIS autoconnect disabled (0) or enabled (non-zero)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetAutoconnect( ULONG setting )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetEnhancedAutoconnect( setting, 0 );
+}
+
+/*===========================================================================
+METHOD:
+ GetEnhancedAutoconnect
+
+DESCRIPTION:
+ This function returns the current autoconnect data session setting
+
+PARAMETERS:
+ pSetting [ O ] - NDIS autoconnect setting
+ pRoamSetting [ O ] - NDIS autoconnect roam setting
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetEnhancedAutoconnect(
+ ULONG * pSetting,
+ ULONG * pRoamSetting )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetEnhancedAutoconnect( pSetting, pRoamSetting );
+}
+
+/*===========================================================================
+METHOD:
+ SetEnhancedAutoconnect
+
+DESCRIPTION:
+ This function sets the autoconnect data session setting
+
+PARAMETERS:
+ setting [ I ] - NDIS autoconnect setting
+ pRoamSetting [ I ] - (Optional) NDIS autoconnect roam setting
+
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetEnhancedAutoconnect(
+ ULONG setting,
+ ULONG * pRoamSetting )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetEnhancedAutoconnect( setting, pRoamSetting );
+}
+
+
+/*===========================================================================
+METHOD:
+ SetDefaultProfile
+
+DESCRIPTION:
+ This function writes the default profile settings to the device, the
+ default profile is used during autoconnect
+
+PARAMETERS:
+ profileType [ I ] - Profile type being written
+ pPDPType [ I ] - (Optional) PDP type
+ pIPAddress [ I ] - (Optional) Preferred assigned IPv4 address
+ pPrimaryDNS [ I ] - (Optional) Primary DNS IPv4 address
+ pSecondaryDNS [ I ] - (Optional) Secondary DNS IPv4 address
+ pAuthentication [ I ] - (Optional) Authentication algorithm bitmap
+ pName [ I ] - (Optional) The profile name or description
+ pAPNName [ I ] - (Optional) Access point name
+ pUsername [ I ] - (Optional) Username used during authentication
+ pPassword [ I ] - (Optional) Password used during authentication
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetDefaultProfile(
+ ULONG profileType,
+ ULONG * pPDPType,
+ ULONG * pIPAddress,
+ ULONG * pPrimaryDNS,
+ ULONG * pSecondaryDNS,
+ ULONG * pAuthentication,
+ CHAR * pName,
+ CHAR * pAPNName,
+ CHAR * pUsername,
+ CHAR * pPassword )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetDefaultProfile( profileType,
+ pPDPType,
+ pIPAddress,
+ pPrimaryDNS,
+ pSecondaryDNS,
+ pAuthentication,
+ pName,
+ pAPNName,
+ pUsername,
+ pPassword );
+}
+
+/*===========================================================================
+METHOD:
+ GetDefaultProfile
+
+DESCRIPTION:
+ This function reads the default profile settings from the device, the
+ default profile is used during autoconnect
+
+PARAMETERS:
+ profileType [ I ] - Profile type being read
+ pPDPType [ O ] - PDP type
+ pIPAddress [ O ] - Preferred assigned IPv4 address
+ pPrimaryDNS [ O ] - Primary DNS IPv4 address
+ pSecondaryDNS [ O ] - Secondary DNS IPv4 address
+ pAuthentication [ O ] - Authentication algorithm bitmap
+ nameSize [ I ] - The maximum number of characters (including
+ NULL terminator) that the profile name array
+ can contain
+ pName [ O ] - The profile name or description
+ apnSize [ I ] - The maximum number of characters (including
+ NULL terminator) that the APN name array
+ can contain
+ pAPNName [ O ] - Access point name represented as a NULL
+ terminated string (empty string returned when
+ unknown)
+ userSize [ I ] - The maximum number of characters (including
+ NULL terminator) that the username array
+ can contain
+ pUsername [ O ] - Username used during authentication
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetDefaultProfile(
+ ULONG profileType,
+ ULONG * pPDPType,
+ ULONG * pIPAddress,
+ ULONG * pPrimaryDNS,
+ ULONG * pSecondaryDNS,
+ ULONG * pAuthentication,
+ BYTE nameSize,
+ CHAR * pName,
+ BYTE apnSize,
+ CHAR * pAPNName,
+ BYTE userSize,
+ CHAR * pUsername )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetDefaultProfile( profileType,
+ pPDPType,
+ pIPAddress,
+ pPrimaryDNS,
+ pSecondaryDNS,
+ pAuthentication,
+ nameSize,
+ pName,
+ apnSize,
+ pAPNName,
+ userSize,
+ pUsername );
+}
+
+/*===========================================================================
+METHOD:
+ StartDataSession
+
+DESCRIPTION:
+ This function activates a packet data session
+
+PARAMETERS:
+ pTechnology [ I ] - (Optional) Technology bitmap
+ pPrimaryDNS [ I ] - (Optional) Primary DNS IPv4 address
+ pSecondaryDNS [ I ] - (Optional) Secondary DNS IPv4 address
+ pPrimaryNBNS [ I ] - (Optional) Primary NetBIOS NS IPv4 address
+ pSecondaryNBNS [ I ] - (Optional) Secondary NetBIOS NS IPv4 address
+ pAPNName [ I ] - (Optional) Access point name
+ pIPAddress [ I ] - (Optional) Preferred assigned IPv4 address
+ pAuthentication [ I ] - (Optional) Authentication algorithm bitmap
+ pUsername [ I ] - (Optional) Username used during authentication
+ pPassword [ I ] - (Optional) Password used during authentication
+ pSessionId [ O ] - The assigned session ID
+ pFailureReason [ O ] - Upon call failure the failure reason provided
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG StartDataSession(
+ ULONG * pTechnology,
+ ULONG * pPrimaryDNS,
+ ULONG * pSecondaryDNS,
+ ULONG * pPrimaryNBNS,
+ ULONG * pSecondaryNBNS,
+ CHAR * pAPNName,
+ ULONG * pIPAddress,
+ ULONG * pAuthentication,
+ CHAR * pUsername,
+ CHAR * pPassword,
+ ULONG * pSessionId,
+ ULONG * pFailureReason )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->StartDataSession( pTechnology,
+ pPrimaryDNS,
+ pSecondaryDNS,
+ pPrimaryNBNS,
+ pSecondaryNBNS,
+ pAPNName,
+ pIPAddress,
+ pAuthentication,
+ pUsername,
+ pPassword,
+ pSessionId,
+ pFailureReason );
+}
+
+/*===========================================================================
+METHOD:
+ CancelDataSession
+
+DESCRIPTION:
+ This function cancels an in-progress packet data session activation
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG CancelDataSession()
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->CancelDataSession();
+}
+
+/*===========================================================================
+METHOD:
+ StopDataSession
+
+DESCRIPTION:
+ This function stops the current data session
+
+PARAMETERS:
+ sessionId [ I ] - The ID of the session to terminate
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG StopDataSession( ULONG sessionId )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->StopDataSession( sessionId );
+}
+
+/*===========================================================================
+METHOD:
+ GetIPAddress
+
+DESCRIPTION:
+ This function returns the current packet data session IP address
+
+PARAMETERS:
+ pIPAddress [ O ] - Assigned IPv4 address
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetIPAddress( ULONG * pIPAddress )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->GetIPAddress( pIPAddress );
+}
+
+/*===========================================================================
+METHOD:
+ GetConnectionRate
+
+DESCRIPTION:
+ This function returns connection rate information for the packet data
+ connection
+
+PARAMETERS:
+ pCurrentChannelTXRate [ O ] - Current channel TX rate (bps)
+ pCurrentChannelRXRate [ O ] - Current channel RX rate (bps)
+ pMaxChannelTXRate [ O ] - Maximum channel TX rate (bps)
+ pMaxChannelRXRate [ O ] - Maximum channel RX rate (bps)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetConnectionRate(
+ ULONG * pCurrentChannelTXRate,
+ ULONG * pCurrentChannelRXRate,
+ ULONG * pMaxChannelTXRate,
+ ULONG * pMaxChannelRXRate )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetConnectionRate( pCurrentChannelTXRate,
+ pCurrentChannelRXRate,
+ pMaxChannelTXRate,
+ pMaxChannelRXRate );
+}
+
+/*===========================================================================
+METHOD:
+ GetPacketStatus
+
+DESCRIPTION:
+ This function returns the packet data transfer statistics since the start
+ of the current packet data session
+
+PARAMETERS:
+ pTXPacketSuccesses [ O ] - Packets transmitted without error
+ pRXPacketSuccesses [ O ] - Packets received without error
+ pTXPacketErrors [ O ] - Outgoing packets with framing errors
+ pRXPacketErrors [ O ] - Incoming packets with framing errors
+ pTXPacketOverflows [ O ] - Packets dropped because TX buffer overflowed
+ pRXPacketOverflows [ O ] - Packets dropped because RX buffer overflowed
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPacketStatus(
+ ULONG * pTXPacketSuccesses,
+ ULONG * pRXPacketSuccesses,
+ ULONG * pTXPacketErrors,
+ ULONG * pRXPacketErrors,
+ ULONG * pTXPacketOverflows,
+ ULONG * pRXPacketOverflows )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetPacketStatus( pTXPacketSuccesses,
+ pRXPacketSuccesses,
+ pTXPacketErrors,
+ pRXPacketErrors,
+ pTXPacketOverflows,
+ pRXPacketOverflows );
+}
+
+/*===========================================================================
+METHOD:
+ GetByteTotals
+
+DESCRIPTION:
+ This function returns the RX/TX byte counts since the start of the
+ current packet data session
+
+PARAMETERS:
+ pTXTotalBytes [ O ] - Bytes transmitted without error
+ pRXTotalBytes [ O ] - Bytes received without error
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetByteTotals(
+ ULONGLONG * pTXTotalBytes,
+ ULONGLONG * pRXTotalBytes )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetByteTotals( pTXTotalBytes, pRXTotalBytes );
+}
+
+/*===========================================================================
+METHOD:
+ SetMobileIP
+
+DESCRIPTION:
+ This function sets the current mobile IP setting
+
+PARAMETERS:
+ mode [ I ] - Desired mobile IP setting
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetMobileIP( ULONG mode )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->SetMobileIP( mode );
+}
+
+/*===========================================================================
+METHOD:
+ GetMobileIP
+
+DESCRIPTION:
+ This function gets the current mobile IP setting
+
+PARAMETERS:
+ pMode [ O ] - Current mobile IP setting
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetMobileIP( ULONG * pMode )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetMobileIP( pMode );
+}
+
+/*===========================================================================
+METHOD:
+ SetActiveMobileIPProfile
+
+DESCRIPTION:
+ This function sets the active mobile IP profile index
+
+PARAMETERS:
+ pSPC [ I ] - Six digit service programming code
+ index [ I ] - Desired mobile IP profile index
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetActiveMobileIPProfile(
+ CHAR * pSPC,
+ BYTE index )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetActiveMobileIPProfile( pSPC, index );
+}
+
+/*===========================================================================
+METHOD:
+ GetActiveMobileIPProfile
+
+DESCRIPTION:
+ This function gets the the active mobile IP profile index
+
+PARAMETERS:
+ pIndex [ O ] - Active mobile IP profile index
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetActiveMobileIPProfile( BYTE * pIndex )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetActiveMobileIPProfile( pIndex );
+}
+
+/*===========================================================================
+METHOD:
+ SetMobileIPProfile
+
+DESCRIPTION:
+ This function sets the specified mobile IP profile settings
+
+PARAMETERS:
+ pSPC [ I ] - Six digit service programming code
+ index [ I ] - Mobile IP profile ID
+ pEnabled [ I ] - (Optional) Enable MIP profile?
+ pAddress [ I ] - (Optional) Home IPv4 address
+ pPrimaryHA [ I ] - (Optional) Primary home agent IPv4 address
+ pSecondaryHA [ I ] - (Optional) Secondary home agent IPv4 address
+ bRevTunneling [ I ] - (Optional) Enable reverse tunneling?
+ pNAI [ I ] - (Optional) Network access identifier string
+ pHASPI [ I ] - (Optional) HA security parameter index
+ pAAASPI [ I ] - (Optional) AAA security parameter index
+ pMNHA [ I ] - (Optional) MN-HA string
+ pMNAAA [ I ] - (Optional) MN-AAA string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetMobileIPProfile(
+ CHAR * pSPC,
+ BYTE index,
+ BYTE * pEnabled,
+ ULONG * pAddress,
+ ULONG * pPrimaryHA,
+ ULONG * pSecondaryHA,
+ BYTE * pRevTunneling,
+ CHAR * pNAI,
+ ULONG * pHASPI,
+ ULONG * pAAASPI,
+ CHAR * pMNHA,
+ CHAR * pMNAAA )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetMobileIPProfile( pSPC,
+ index,
+ pEnabled,
+ pAddress,
+ pPrimaryHA,
+ pSecondaryHA,
+ pRevTunneling,
+ pNAI,
+ pHASPI,
+ pAAASPI,
+ pMNHA,
+ pMNAAA );
+}
+
+/*===========================================================================
+METHOD:
+ GetMobileIPProfile
+
+DESCRIPTION:
+ This function gets the specified mobile IP profile settings
+
+PARAMETERS:
+ index [ I ] - Mobile IP profile ID
+ pEnabled [ O ] - Mobile IP profile enabled?
+ pAddress [ O ] - Home IPv4 address
+ pPrimaryHA [ O ] - Primary home agent IPv4 address
+ pSecondaryHA [ O ] - Secondary home agent IPv4 address
+ pRevTunneling [ O ] - Reverse tunneling enabled?
+ naiSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the NAI array can contain
+ pNAI [ O ] - Network access identifier string
+ pHASPI [ O ] - HA security parameter index
+ pAAASPI [ O ] - AAA security parameter index
+ pHAState [ O ] - HA key state
+ pAAAState [ O ] - AAA key state
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetMobileIPProfile(
+ BYTE index,
+ BYTE * pEnabled,
+ ULONG * pAddress,
+ ULONG * pPrimaryHA,
+ ULONG * pSecondaryHA,
+ BYTE * pRevTunneling,
+ BYTE naiSize,
+ CHAR * pNAI,
+ ULONG * pHASPI,
+ ULONG * pAAASPI,
+ ULONG * pHAState,
+ ULONG * pAAAState )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetMobileIPProfile( index,
+ pEnabled,
+ pAddress,
+ pPrimaryHA,
+ pSecondaryHA,
+ pRevTunneling,
+ naiSize,
+ pNAI,
+ pHASPI,
+ pAAASPI,
+ pHAState,
+ pAAAState );
+}
+
+/*===========================================================================
+METHOD:
+ SetMobileIPParameters
+
+DESCRIPTION:
+ This function sets the specified mobile IP parameters
+
+PARAMETERS:
+ pSPC [ I ] - Six digit service programming code
+ pMode [ I ] - (Optional) Desired mobile IP setting
+ pRetryLimit [ I ] - (Optional) Retry attempt limit
+ pRetryInterval [ I ] - (Optional) Retry attempt interval
+ pReRegPeriod [ I ] - (Optional) Re-registration period
+ pReRegTraffic [ I ] - (Optional) Re-registration only with traffic?
+ pHAAuthenticator [ I ] - (Optional) MH-HA authenticator calculator?
+ pHA2002bis [ I ] - (Optional) MH-HA RFC 2002bis authentication?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetMobileIPParameters(
+ CHAR * pSPC,
+ ULONG * pMode,
+ BYTE * pRetryLimit,
+ BYTE * pRetryInterval,
+ BYTE * pReRegPeriod,
+ BYTE * pReRegTraffic,
+ BYTE * pHAAuthenticator,
+ BYTE * pHA2002bis )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetMobileIPParameters( pSPC,
+ pMode,
+ pRetryLimit,
+ pRetryInterval,
+ pReRegPeriod,
+ pReRegTraffic,
+ pHAAuthenticator,
+ pHA2002bis );
+}
+
+/*===========================================================================
+METHOD:
+ GetMobileIPParameters
+
+DESCRIPTION:
+ This function gets the mobile IP parameters
+
+PARAMETERS:
+ pMode [ O ] - Current mobile IP setting
+ pRetryLimit [ O ] - Retry attempt limit
+ pRetryInterval [ O ] - Retry attempt interval
+ pReRegPeriod [ O ] - Re-registration period
+ pReRegTraffic [ O ] - Re-registration only with traffic?
+ pHAAuthenticator [ O ] - MH-HA authenticator calculator?
+ pHA2002bis [ O ] - MH-HA RFC 2002bis authentication?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetMobileIPParameters(
+ ULONG * pMode,
+ BYTE * pRetryLimit,
+ BYTE * pRetryInterval,
+ BYTE * pReRegPeriod,
+ BYTE * pReRegTraffic,
+ BYTE * pHAAuthenticator,
+ BYTE * pHA2002bis )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetMobileIPParameters( pMode,
+ pRetryLimit,
+ pRetryInterval,
+ pReRegPeriod,
+ pReRegTraffic,
+ pHAAuthenticator,
+ pHA2002bis );
+}
+
+/*===========================================================================
+METHOD:
+ GetLastMobileIPError
+
+DESCRIPTION:
+ This function gets the last mobile IP error
+
+PARAMETERS:
+ pError [ O ] - Last mobile IP error
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetLastMobileIPError( ULONG * pError )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetLastMobileIPError( pError );
+}
+
+/*===========================================================================
+METHOD:
+ SetDNSSettings
+
+DESCRIPTION:
+ This function sets the DNS settings for the device
+
+PARAMETERS:
+ pPrimaryDNS [ I ] - (Optional) Primary DNS IPv4 address
+ pSecondaryDNS [ I ] - (Optional) Secondary DNS IPv4 address
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetDNSSettings(
+ ULONG * pPrimaryDNS,
+ ULONG * pSecondaryDNS )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetDNSSettings( pPrimaryDNS, pSecondaryDNS );
+}
+
+/*===========================================================================
+METHOD:
+ GetDNSSettings
+
+DESCRIPTION:
+ This function gets the DNS settings for the device
+
+PARAMETERS:
+ pPrimaryDNS [ O ] - Primary DNS IPv4 address
+ pSecondaryDNS [ O ] - Secondary DNS IPv4 address
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetDNSSettings(
+ ULONG * pPrimaryDNS,
+ ULONG * pSecondaryDNS )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetDNSSettings( pPrimaryDNS, pSecondaryDNS );
+}
+
+/*===========================================================================
+METHOD:
+ GetANAAAAuthenticationStatus
+
+DESCRIPTION:
+ This function gets the AN-AAA authentication status
+
+PARAMETERS:
+ pStatus [ O ] - AN-AAA authentication status
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetANAAAAuthenticationStatus( ULONG * pStatus )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetANAAAAuthenticationStatus( pStatus );
+}
+
+/*===========================================================================
+METHOD:
+ GetSignalStrengths
+
+DESCRIPTION:
+ This function gets the current available signal strengths (in dBm)
+ as measured by the device
+
+PARAMETERS:
+ pArraySizes [I/O] - Upon input the maximum number of elements
+ that each array can contain can contain.
+ Upon successful output the actual number
+ of elements in each array
+ pSignalStrengths [ O ] - Received signal strength array (dBm)
+ pRadioInterfaces [ O ] - Radio interface technology array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSignalStrengths(
+ ULONG * pArraySizes,
+ INT8 * pSignalStrengths,
+ ULONG * pRadioInterfaces )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSignalStrengths( pArraySizes,
+ pSignalStrengths,
+ pRadioInterfaces );
+}
+
+/*===========================================================================
+METHOD:
+ GetRFInfo
+
+DESCRIPTION:
+ This function gets the current RF information
+
+PARAMETERS:
+ pInstanceSize [I/O] - Upon input the maximum number of elements that the
+ RF info instance array can contain. Upon success
+ the actual number of elements in the RF info
+ instance array
+ pInstances [ O ] - The RF info instance array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetRFInfo(
+ BYTE * pInstanceSize,
+ BYTE * pInstances )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetRFInfo( pInstanceSize, pInstances );
+}
+
+
+
+/*===========================================================================
+METHOD:
+ PerformNetworkScan
+
+DESCRIPTION:
+ This function performs a scan for available networks
+
+PARAMETERS:
+ pInstanceSize [I/O] - Upon input the maximum number of elements that the
+ network info instance array can contain. Upon
+ success the actual number of elements in the
+ network info instance array
+ pInstances [ O ] - The network info instance array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG PerformNetworkScan(
+ BYTE * pInstanceSize,
+ BYTE * pInstances )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->PerformNetworkScan( pInstanceSize, pInstances );
+}
+
+/*===========================================================================
+METHOD:
+ PerformNetworkRATScan
+
+DESCRIPTION:
+ This function performs a scan for available networks (includes RAT)
+
+PARAMETERS:
+ pInstanceSize [I/O] - Upon input the maximum number of elements that the
+ network info instance array can contain. Upon
+ success the actual number of elements in the
+ network info instance array
+ pInstances [ O ] - The network info instance array
+ pRATSize [I/O] - Upon input the maximum number of elements that the
+ RAT info instance array can contain. Upon success
+ the actual number of elements in the RAT info
+ instance array
+ pRATInstances [ O ] - The RAT info instance array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG PerformNetworkRATScan(
+ BYTE * pInstanceSize,
+ BYTE * pInstances,
+ BYTE * pRATSize,
+ BYTE * pRATInstances )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->PerformNetworkRATScan( pInstanceSize,
+ pInstances,
+ pRATSize,
+ pRATInstances );
+}
+
+/*===========================================================================
+METHOD:
+ InitiateNetworkRegistration
+
+DESCRIPTION:
+ This function initiates a network registration
+
+PARAMETERS:
+ regType [ I ] - Registration type
+ mcc [ I ] - Mobile country code (ignored for auto registration)
+ mnc [ I ] - Mobile network code (ignored for auto registration)
+ rat [ I ] - Radio access type (ignored for auto registration)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG InitiateNetworkRegistration(
+ ULONG regType,
+ WORD mcc,
+ WORD mnc,
+ ULONG rat )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->InitiateNetworkRegistration( regType,
+ mcc,
+ mnc,
+ rat );
+}
+
+/*===========================================================================
+METHOD:
+ InitiateDomainAttach
+
+DESCRIPTION:
+ This function initiates a domain attach (or detach)
+
+PARAMETERS:
+ action [ I ] - PS attach action (attach or detach)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG InitiateDomainAttach( ULONG action )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->InitiateDomainAttach( action );
+}
+
+/*===========================================================================
+METHOD:
+ GetServingNetwork
+
+DESCRIPTION:
+ Gets information regarding the system that currently provides service
+ to the device
+
+PARAMETERS:
+ pRegistrationState [ O ] - Registration state
+ pCSDomain [ O ] - Circuit switch domain status
+ pPSDomain [ O ] - Packet switch domain status
+ pRAN [ O ] - Radio access network
+ pRadioIfacesSize [I/O] - Upon input the maximum number of elements
+ that the radio interfaces can contain. Upon
+ successful output the actual number of elements
+ in the radio interface array
+ pRadioIfaces [ O ] - The radio interface array
+ pRoaming [ O ] - Roaming indicator (0xFFFFFFFF - Unknown)
+ pMCC [ O ] - Mobile country code (0xFFFF - Unknown)
+ pMNC [ O ] - Mobile network code (0xFFFF - Unknown)
+ nameSize [ I ] - The maximum number of characters (including
+ NULL terminator) that the network name array
+ can contain
+ pName [ O ] - The network name or description represented
+ as a NULL terminated string (empty string
+ returned when unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetServingNetwork(
+ ULONG * pRegistrationState,
+ ULONG * pCSDomain,
+ ULONG * pPSDomain,
+ ULONG * pRAN,
+ BYTE * pRadioIfacesSize,
+ BYTE * pRadioIfaces,
+ ULONG * pRoaming,
+ WORD * pMCC,
+ WORD * pMNC,
+ BYTE nameSize,
+ CHAR * pName )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetServingNetwork( pRegistrationState,
+ pCSDomain,
+ pPSDomain,
+ pRAN,
+ pRadioIfacesSize,
+ pRadioIfaces,
+ pRoaming,
+ pMCC,
+ pMNC,
+ nameSize,
+ pName );
+}
+
+/*===========================================================================
+METHOD:
+ GetServingNetworkCapabilities
+
+DESCRIPTION:
+ Gets information regarding the data capabilities of the system that
+ currently provides service to the device
+
+PARAMETERS:
+ pDataCapsSize [I/O] - Upon input the maximum number of elements that the
+ data capabilities array can contain. Upon success
+ the actual number of elements in the data
+ capabilities array
+ pDataCaps [ O ] - The data capabilities array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetServingNetworkCapabilities(
+ BYTE * pDataCapsSize,
+ BYTE * pDataCaps )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetServingNetworkCapabilities( pDataCapsSize,
+ pDataCaps );
+}
+
+/*===========================================================================
+METHOD:
+ GetDataBearerTechnology
+
+DESCRIPTION:
+ This function retrieves the current data bearer technology (only
+ valid when connected)
+
+PARAMETERS:
+ pDataCaps [ O ] - The data bearer technology
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetDataBearerTechnology( ULONG * pDataBearer )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetDataBearerTechnology( pDataBearer );
+}
+
+/*===========================================================================
+METHOD:
+ GetHomeNetwork
+
+DESCRIPTION:
+ This function retrieves information about the home network of the device
+
+PARAMETERS:
+ pMCC [ O ] - Mobile country code
+ pMNC [ O ] - Mobile network code
+ nameSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the network name array can contain
+ pName [ O ] - The network name or description represented as a NULL
+ terminated string (empty string returned when unknown)
+ pSID [ O ] - Home network system ID (0xFFFF - Unknown)
+ pNID [ O ] - Home network ID (0xFFFF - Unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetHomeNetwork(
+ WORD * pMCC,
+ WORD * pMNC,
+ BYTE nameSize,
+ CHAR * pName,
+ WORD * pSID,
+ WORD * pNID )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetHomeNetwork( pMCC,
+ pMNC,
+ nameSize,
+ pName,
+ pSID,
+ pNID );
+}
+
+/*===========================================================================
+METHOD:
+ SetNetworkPreference
+
+DESCRIPTION:
+ This function sets the network registration preference
+
+PARAMETERS:
+ technologyPref [ I ] - Technology preference bitmap
+ duration [ I ] - Duration of active preference
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetNetworkPreference(
+ ULONG technologyPref,
+ ULONG duration )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->SetNetworkPreference( technologyPref, duration );
+}
+
+/*===========================================================================
+METHOD:
+ GetNetworkPreference
+
+DESCRIPTION:
+ This function returns the network registration preference
+
+PARAMETERS:
+ pTechnologyPref [ O ] - Technology preference bitmap
+ pDuration [ O ] - Duration of active preference
+ pPersistentTechnologyPref [ O ] - Persistent technology preference bitmap
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetNetworkPreference(
+ ULONG * pTechnologyPref,
+ ULONG * pDuration,
+ ULONG * pPersistentTechnologyPref )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetNetworkPreference( pTechnologyPref,
+ pDuration,
+ pPersistentTechnologyPref );
+}
+
+/*===========================================================================
+METHOD:
+ SetCDMANetworkParameters
+
+DESCRIPTION:
+ This function sets the desired CDMA network parameters
+
+PARAMETERS:
+ pSPC [ I ] - Six digit service programming code
+ pForceRev0 [ I ] - (Optional) Force CDMA 1x-EV-DO Rev. 0 mode?
+ pCustomSCP [ I ] - (Optional) Use a custom config for CDMA 1x-EV-DO SCP?
+ pProtocol [ I ] - (Optional) Protocol mask for custom SCP config
+ pBroadcast [ I ] - (Optional) Broadcast mask for custom SCP config
+ pApplication [ I ] - (Optional) Application mask for custom SCP config
+ pRoaming [ I ] - (Optional) Roaming preference
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetCDMANetworkParameters(
+ CHAR * pSPC,
+ BYTE * pForceRev0,
+ BYTE * pCustomSCP,
+ ULONG * pProtocol,
+ ULONG * pBroadcast,
+ ULONG * pApplication,
+ ULONG * pRoaming )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->SetCDMANetworkParameters( pSPC,
+ pForceRev0,
+ pCustomSCP,
+ pProtocol,
+ pBroadcast,
+ pApplication,
+ pRoaming );
+}
+
+/*===========================================================================
+METHOD:
+ GetEVDONetworkParameters
+
+DESCRIPTION:
+ This function gets the current CDMA network parameters
+
+PARAMETERS:
+ pSCI [ O ] - Slot cycle index
+ pSCM [ O ] - Station class mark
+ pRegHomeSID [ O ] - Register on home SID?
+ pRegForeignSID [ O ] - Register on foreign SID?
+ pRegForeignNID [ O ] - Register on foreign NID?
+ pForceRev0 [ O ] - Force CDMA 1x-EV-DO Rev. 0 mode?
+ pCustomSCP [ O ] - Use a custom config for CDMA 1x-EV-DO SCP?
+ pProtocol [ O ] - Protocol mask for custom SCP config
+ pBroadcast [ O ] - Broadcast mask for custom SCP config
+ pApplication [ O ] - Application mask for custom SCP config
+ pRoaming [ O ] - Roaming preference
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetCDMANetworkParameters(
+ BYTE * pSCI,
+ BYTE * pSCM,
+ BYTE * pRegHomeSID,
+ BYTE * pRegForeignSID,
+ BYTE * pRegForeignNID,
+ BYTE * pForceRev0,
+ BYTE * pCustomSCP,
+ ULONG * pProtocol,
+ ULONG * pBroadcast,
+ ULONG * pApplication,
+ ULONG * pRoaming )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->GetCDMANetworkParameters( pSCI,
+ pSCM,
+ pRegHomeSID,
+ pRegForeignSID,
+ pRegForeignNID,
+ pForceRev0,
+ pCustomSCP,
+ pProtocol,
+ pBroadcast,
+ pApplication,
+ pRoaming );
+}
+
+/*===========================================================================
+METHOD:
+ GetACCOLC
+
+DESCRIPTION:
+ This function returns the Access Overload Class (ACCOLC) of the device
+
+PARAMETERS:
+ pACCOLC [ O ] - The ACCOLC
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetACCOLC( BYTE * pACCOLC )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetACCOLC( pACCOLC );
+}
+
+/*===========================================================================
+METHOD:
+ SetACCOLC
+
+DESCRIPTION:
+ This function sets the Access Overload Class (ACCOLC) of the device
+
+PARAMETERS:
+ pSPC [ I ] - NULL terminated string representing the six digit
+ service programming code
+ accolc [ I ] - The ACCOLC
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetACCOLC(
+ CHAR * pSPC,
+ BYTE accolc )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->SetACCOLC( pSPC, accolc );
+}
+
+/*===========================================================================
+METHOD:
+ GetPLMNMode
+
+DESCRIPTION:
+ This function returns the PLMN mode from the CSP
+
+PARAMETERS:
+ pMode [ O ] - PLMN mode
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPLMNMode( ULONG * pMode )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->GetPLMNMode( pMode );
+}
+
+/*===========================================================================
+METHOD:
+ GetPLMNName
+
+DESCRIPTION:
+ This function returns PLMN name information for the given MCC/MNC
+
+PARAMETERS:
+ mcc [ I ] - Mobile country code
+ mnc [ I ] - Mobile network code
+ pNamesSize [I/O] - Upon input the size in BYTEs of the name structure
+ array. Upon success the actual number of BYTEs
+ copied to the name structure array
+ pNames [ O ] - The name structure array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPLMNName(
+ USHORT mcc,
+ USHORT mnc,
+ ULONG * pNamesSize,
+ BYTE * pNames )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->GetPLMNName( mcc, mnc, pNamesSize, pNames );
+}
+
+/*===========================================================================
+METHOD:
+ GetDeviceCapabilities
+
+DESCRIPTION:
+ This function gets device capabilities
+
+PARAMETERS:
+ pMaxTXChannelRate [ O ] - Maximum transmission rate (bps)
+ pMaxRXChannelRate [ O ] - Maximum reception rate (bps)
+ pDataServiceCapability [ O ] - CS/PS data service capability
+ pSimCapability [ O ] - Device SIM support
+ pRadioIfacesSize [I/O] - Upon input the maximum number of elements
+ that the radio interfaces can contain.
+ Upon successful output the actual number
+ of elements in the radio interface array
+ pRadioIfaces [ O ] - The radio interface array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetDeviceCapabilities(
+ ULONG * pMaxTXChannelRate,
+ ULONG * pMaxRXChannelRate,
+ ULONG * pDataServiceCapability,
+ ULONG * pSimCapability,
+ ULONG * pRadioIfacesSize,
+ BYTE * pRadioIfaces )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetDeviceCapabilities( pMaxTXChannelRate,
+ pMaxRXChannelRate,
+ pDataServiceCapability,
+ pSimCapability,
+ pRadioIfacesSize,
+ pRadioIfaces );
+}
+
+/*===========================================================================
+METHOD:
+ GetManufacturer
+
+DESCRIPTION:
+ This function returns the device manufacturer name
+
+PARAMETERS:
+ stringSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the string array can contain
+ pString [ O ] - NULL terminated string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetManufacturer(
+ BYTE stringSize,
+ CHAR * pString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetManufacturer( stringSize, pString );
+}
+
+/*===========================================================================
+METHOD:
+ GetModelID
+
+DESCRIPTION:
+ This function returns the device model ID
+
+PARAMETERS:
+ stringSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the string array can contain
+ pString [ O ] - NULL terminated string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetModelID(
+ BYTE stringSize,
+ CHAR * pString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetModelID( stringSize, pString );
+}
+
+/*===========================================================================
+METHOD:
+ GetFirmwareRevision
+
+DESCRIPTION:
+ This function returns the device firmware revision
+
+PARAMETERS:
+ stringSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the string array can contain
+ pString [ O ] - NULL terminated string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetFirmwareRevision(
+ BYTE stringSize,
+ CHAR * pString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetFirmwareRevision( stringSize, pString );
+}
+
+/*===========================================================================
+METHOD:
+ GetFirmwareRevisions
+
+DESCRIPTION:
+ This function returns the device firmware (AMSS, boot, and PRI)
+ revisions
+
+PARAMETERS:
+ amssSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the AMSS string array can contain
+ pAMSSString [ O ] - NULL terminated AMSS revision string
+ bootSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the boot string array can contain
+ pBootString [ O ] - NULL terminated boot code revision string
+ priSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the PRI string array can contain
+ pPRIString [ O ] - NULL terminated PRI revision string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetFirmwareRevisions(
+ BYTE amssSize,
+ CHAR * pAMSSString,
+ BYTE bootSize,
+ CHAR * pBootString,
+ BYTE priSize,
+ CHAR * pPRIString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetFirmwareRevisions( amssSize,
+ pAMSSString,
+ bootSize,
+ pBootString,
+ priSize,
+ pPRIString );
+}
+
+/*===========================================================================
+METHOD:
+ GetFirmwareInfo
+
+DESCRIPTION:
+ Returns image information obtained from the current device firmware
+
+PARAMETERS:
+ pFirmwareID [ O ] - Firmware ID obtained from the firmware image
+ pTechnology [ O ] - Technology (0xFFFFFFFF if unknown)
+ pCarrier [ O ] - Carrier (0xFFFFFFFF if unknown)
+ pRegion [ O ] - Region (0xFFFFFFFF if unknown)
+ pGPSCapability [ O ] - GPS capability (0xFFFFFFFF if unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetFirmwareInfo(
+ ULONG * pFirmwareID,
+ ULONG * pTechnology,
+ ULONG * pCarrier,
+ ULONG * pRegion,
+ ULONG * pGPSCapability )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetFirmwareInfo( pFirmwareID,
+ pTechnology,
+ pCarrier,
+ pRegion,
+ pGPSCapability );
+}
+
+/*===========================================================================
+METHOD:
+ GetVoiceNumber
+
+DESCRIPTION:
+ This function returns the voice number in use by the device
+
+PARAMETERS:
+ voiceNumberSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the voice number array can
+ contain
+ pVoiceNumber [ O ] - Voice number (MDN or ISDN) string
+ minSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the MIN array can contain
+ pMIN [ O ] - MIN string (empty string returned when MIN is
+ not supported/programmed)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetVoiceNumber(
+ BYTE voiceNumberSize,
+ CHAR * pVoiceNumber,
+ BYTE minSize,
+ CHAR * pMIN )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetVoiceNumber( voiceNumberSize,
+ pVoiceNumber,
+ minSize,
+ pMIN );
+}
+
+/*===========================================================================
+METHOD:
+ GetIMSI
+
+DESCRIPTION:
+ This function returns the device IMSI
+
+PARAMETERS:
+ stringSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the string array can contain
+ pString [ O ] - NULL terminated string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetIMSI(
+ BYTE stringSize,
+ CHAR * pString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetIMSI( stringSize, pString );
+}
+
+/*===========================================================================
+METHOD:
+ GetSerialNumbers
+
+DESCRIPTION:
+ This command returns all serial numbers assigned to the device
+
+PARAMETERS:
+ esnSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the ESN array can contain
+ pESNString [ O ] - ESN string (empty string returned when ESN is
+ not supported/programmed)
+ imeiSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the IMEI array can contain
+ pIMEIString [ O ] - IMEI string (empty string returned when IMEI is
+ not supported/programmed)
+ meidSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the MEID array can contain
+ pMEIDString [ O ] - MEID string (empty string returned when MEID is
+ not supported/programmed)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSerialNumbers(
+ BYTE esnSize,
+ CHAR * pESNString,
+ BYTE imeiSize,
+ CHAR * pIMEIString,
+ BYTE meidSize,
+ CHAR * pMEIDString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSerialNumbers( esnSize,
+ pESNString,
+ imeiSize,
+ pIMEIString,
+ meidSize,
+ pMEIDString );
+}
+
+/*===========================================================================
+METHOD:
+ SetLock
+
+DESCRIPTION:
+ This function sets the user lock state maintained by the device
+
+PARAMETERS:
+ state [ I ] - Desired lock state
+ pCurrentPIN [ I ] - Current four digit PIN string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetLock(
+ ULONG state,
+ CHAR * pCurrentPIN )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->SetLock( state, pCurrentPIN );
+}
+
+/*===========================================================================
+METHOD:
+ QueryLock
+
+DESCRIPTION:
+ This function sets the user lock state maintained by the device
+
+PARAMETERS:
+ pState [ O ] - Current lock state
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG QueryLock( ULONG * pState )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->QueryLock( pState );
+}
+
+/*===========================================================================
+METHOD:
+ ChangeLockPIN
+
+DESCRIPTION:
+ This command sets the user lock code maintained by the device
+
+PARAMETERS:
+ pCurrentPIN [ O ] - Current four digit PIN string
+ pDesiredPIN [ O ] - New four digit PIN string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ChangeLockPIN(
+ CHAR * pCurrentPIN,
+ CHAR * pDesiredPIN )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->ChangeLockPIN( pCurrentPIN, pDesiredPIN );
+}
+
+/*===========================================================================
+METHOD:
+ GetHardwareRevision
+
+DESCRIPTION:
+ This function returns the device hardware revision
+
+PARAMETERS:
+ stringSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the string array can contain
+ pString [ O ] - NULL terminated string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetHardwareRevision(
+ BYTE stringSize,
+ CHAR * pString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetHardwareRevision( stringSize, pString );
+}
+
+/*===========================================================================
+METHOD:
+ GetPRLVersion
+
+DESCRIPTION:
+ This function returns the version of the active Preferred Roaming List
+ (PRL) in use by the device
+
+PARAMETERS:
+ pPRLVersion [ O ] - The PRL version number
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPRLVersion( WORD * pPRLVersion )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetPRLVersion( pPRLVersion );
+}
+
+/*===========================================================================
+METHOD:
+ GetERIFile
+
+DESCRIPTION:
+ This command returns the ERI file that is stored in EFS on the device
+
+PARAMETERS:
+ pFileSize [I/O] - Upon input the maximum number of bytes that the file
+ contents array can contain. Upon successful output
+ the actual number of bytes written to the file contents
+ array
+ pFile [ O ] - The file contents
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetERIFile(
+ ULONG * pFileSize,
+ BYTE * pFile )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetERIFile( pFileSize, pFile );
+}
+
+/*===========================================================================
+METHOD:
+ ActivateAutomatic
+
+DESCRIPTION:
+ This function requests the device to perform automatic service activation
+
+PARAMETERS:
+ pActivationCode [ I ] - Activation code (maximum string length of 12)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ActivateAutomatic( CHAR * pActivationCode )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->ActivateAutomatic( pActivationCode );
+}
+
+/*===========================================================================
+METHOD:
+ ActivateManual
+
+DESCRIPTION:
+ This function requests the device perform manual service activation
+
+PARAMETERS:
+ pSPC [ I ] - NULL terminated string representing the six digit
+ service programming code
+ sid [ I ] - System identification number
+ pMDN [ I ] - Mobile Directory Number string
+ pMIN [ I ] - Mobile Identification Number string
+ prlSize [ I ] - (Optional) Size of PRL file array
+ pPRL [ I ] - (Optional) The PRL file contents
+ pMNHA [ I ] - (Optional) MN-HA string
+ pMNAAA [ I ] - (Optional) MN-AAA string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ActivateManual(
+ CHAR * pSPC,
+ WORD sid,
+ CHAR * pMDN,
+ CHAR * pMIN,
+ ULONG prlSize,
+ BYTE * pPRL,
+ CHAR * pMNHA,
+ CHAR * pMNAAA )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->ActivateManual( pSPC,
+ sid,
+ pMDN,
+ pMIN,
+ prlSize,
+ pPRL,
+ pMNHA,
+ pMNAAA );
+}
+
+/*===========================================================================
+METHOD:
+ ResetToFactoryDefaults
+
+DESCRIPTION:
+ This function requests the device reset configuration to factory defaults
+
+PARAMETERS:
+ pSPC [ I ] - NULL terminated string representing the six digit
+ service programming code
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ResetToFactoryDefaults( CHAR * pSPC )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->ResetToFactoryDefaults( pSPC );
+}
+
+/*===========================================================================
+METHOD:
+ GetActivationState
+
+DESCRIPTION:
+ This function returns the device activation state
+
+PARAMETERS:
+ pActivationState [ O ] - Service activation state
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetActivationState( ULONG * pActivationState )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetActivationState( pActivationState );
+}
+
+/*===========================================================================
+METHOD:
+ SetPower
+
+DESCRIPTION:
+ This function sets the operating mode of the device
+
+PARAMETERS:
+ powerMode [ I ] - Selected operating mode
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetPower( ULONG powerMode )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->SetPower( powerMode );
+}
+
+/*===========================================================================
+METHOD:
+ GetPower
+
+DESCRIPTION:
+ This function returns the operating mode of the device
+
+PARAMETERS:
+ pPowerMode [ O ] - Current operating mode
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPower( ULONG * pPowerMode )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetPower( pPowerMode );
+}
+
+/*===========================================================================
+METHOD:
+ GetOfflineReason
+
+DESCRIPTION:
+ This function returns the reason why the operating mode of the device
+ is currently offline
+
+PARAMETERS:
+ pReasonMask [ O ] - Bitmask of offline reasons
+ pbPlatform [ O ] - Offline due to being platform retricted?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetOfflineReason(
+ ULONG * pReasonMask,
+ ULONG * pbPlatform )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetOfflineReason( pReasonMask, pbPlatform );
+}
+
+/*===========================================================================
+METHOD:
+ GetNetworkTime
+
+DESCRIPTION:
+ This function returns the current time of the device
+
+PARAMETERS:
+ pTimeStamp [ O ] - Count of 1.25ms that have elapsed from the start
+ of GPS time (Jan 6, 1980)
+ pTimeSource [ O ] - Source of the timestamp
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetNetworkTime(
+ ULONGLONG * pTimeCount,
+ ULONG * pTimeSource )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetNetworkTime( pTimeCount, pTimeSource );
+}
+
+/*===========================================================================
+METHOD:
+ ValidateSPC
+
+DESCRIPTION:
+ This function validates the service programming code
+
+PARAMETERS:
+ pSPC [ I ] - Six digit service programming code
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ValidateSPC( CHAR * pSPC )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->ValidateSPC( pSPC );
+}
+
+/*===========================================================================
+METHOD:
+ DeleteSMS
+
+DESCRIPTION:
+ This function deletes one or more SMS messages from device memory
+
+PARAMETERS:
+ storageType [ I ] - SMS message storage type
+ pMessageIndex [ I ] - (Optional) message index
+ pMessageTag [ I ] - (Optional) message tag
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG DeleteSMS(
+ ULONG storageType,
+ ULONG * pMessageIndex,
+ ULONG * pMessageTag )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->DeleteSMS( storageType, pMessageIndex, pMessageTag );
+}
+
+/*===========================================================================
+METHOD:
+ GetSMSList
+
+DESCRIPTION:
+ This function returns the list of SMS messages stored on the device
+
+PARAMETERS:
+ storageType [ I ] - SMS message storage type
+ pRequestedTag [ I ] - Message index
+ pMessageListSize [I/O] - Upon input the maximum number of elements that the
+ message list array can contain. Upon successful
+ output the actual number of elements in the message
+ list array
+ pMessageList [ O ] - The message list array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSMSList(
+ ULONG storageType,
+ ULONG * pRequestedTag,
+ ULONG * pMessageListSize,
+ BYTE * pMessageList )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSMSList( storageType,
+ pRequestedTag,
+ pMessageListSize,
+ pMessageList );
+}
+
+/*===========================================================================
+METHOD:
+ GetSMS
+
+DESCRIPTION:
+ This function returns an SMS message from device memory
+
+PARAMETERS:
+ storageType [ I ] - SMS message storage type
+ messageIndex [ I ] - Message index
+ pMessageTag [ O ] - Message tag
+ pMessageFormat [ O ] - Message format
+ pMessageSize [I/O] - Upon input the maximum number of bytes that can be
+ written to the message array. Upon successful
+ output the actual number of bytes written to the
+ message array
+ pMessage [ I ] - The message contents array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSMS(
+ ULONG storageType,
+ ULONG messageIndex,
+ ULONG * pMessageTag,
+ ULONG * pMessageFormat,
+ ULONG * pMessageSize,
+ BYTE * pMessage )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSMS( storageType,
+ messageIndex,
+ pMessageTag,
+ pMessageFormat,
+ pMessageSize,
+ pMessage );
+}
+
+/*===========================================================================
+METHOD:
+ ModifySMSStatus
+
+DESCRIPTION:
+ This function modifies the status of an SMS message saved in storage on
+ the device
+
+PARAMETERS:
+ storageType [ I ] - SMS message storage type
+ messageIndex [ I ] - Message index
+ messageTag [ I ] - Message tag
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ModifySMSStatus(
+ ULONG storageType,
+ ULONG messageIndex,
+ ULONG messageTag )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return pAPI->ModifySMSStatus( storageType, messageIndex, messageTag );
+}
+
+/*===========================================================================
+METHOD:
+ SaveSMS
+
+DESCRIPTION:
+ This function saves an SMS message to device memory
+
+PARAMETERS:
+ storageType [ I ] - SMS message storage type
+ messageFormat [ I ] - Message format
+ messageSize [ I ] - The length of the message contents in bytes
+ pMessage [ I ] - The message contents
+ pMessageIndex [ O ] - The message index assigned by the device
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SaveSMS(
+ ULONG storageType,
+ ULONG messageFormat,
+ ULONG messageSize,
+ BYTE * pMessage,
+ ULONG * pMessageIndex )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SaveSMS( storageType,
+ messageFormat,
+ messageSize,
+ pMessage,
+ pMessageIndex );
+}
+
+/*===========================================================================
+METHOD:
+ SendSMS
+
+DESCRIPTION:
+ This function sends an SMS message for immediate over the air transmission
+
+PARAMETERS:
+ messageFormat [ I ] - Message format
+ messageSize [ I ] - The length of the message contents in bytes
+ pMessage [ I ] - The message contents
+ pMessageFailureCode [ O ] - When the function fails due to an error sending
+ the message this parameter may contain the
+ message failure cause code (see 3GPP2 N.S0005
+ Section 6.5.2.125). If the cause code is not
+ provided then the value will be 0xFFFFFFFF
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SendSMS(
+ ULONG messageFormat,
+ ULONG messageSize,
+ BYTE * pMessage,
+ ULONG * pMessageFailureCode )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SendSMS( messageFormat,
+ messageSize,
+ pMessage,
+ pMessageFailureCode );
+}
+
+/*===========================================================================
+METHOD:
+ GetSMSCAddress
+
+DESCRIPTION:
+ This function returns the SMS center address
+
+PARAMETERS:
+ addressSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the SMS center address array
+ can contain
+ pSMSCAddress [ 0 ] - The SMS center address represented as a NULL
+ terminated string
+ typeSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the SMS center address type array
+ can contain
+ pSMSCType [ 0 ] - The SMS center address type represented as a NULL
+ terminated string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSMSCAddress(
+ BYTE addressSize,
+ CHAR * pSMSCAddress,
+ BYTE typeSize,
+ CHAR * pSMSCType )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSMSCAddress( addressSize,
+ pSMSCAddress,
+ typeSize,
+ pSMSCType );
+}
+
+/*===========================================================================
+METHOD:
+ SetSMSCAddress
+
+DESCRIPTION:
+ This function sets the SMS center address
+
+PARAMETERS:
+ pSMSCAddress [ 0 ] - The SMS center address represented as a NULL
+ terminated string
+ pSMSCType [ 0 ] - The SMS center address type represented as a NULL
+ terminated string (optional)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetSMSCAddress(
+ CHAR * pSMSCAddress,
+ CHAR * pSMSCType )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetSMSCAddress( pSMSCAddress, pSMSCType );
+}
+
+/*===========================================================================
+METHOD:
+ GetSMSRoutes
+
+DESCRIPTION:
+ This function gets the current incoming SMS routing information
+
+PARAMETERS:
+ pRouteSize [I/O] - Upon input the maximum number of elements that the
+ SMS route array can contain. Upon succes the actual
+ number of elements in the SMS route array
+ pRoutes [ O ] - The SMS route array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSMSRoutes(
+ BYTE * pRouteSize,
+ BYTE * pRoutes )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSMSRoutes( pRouteSize, pRoutes );
+}
+
+/*===========================================================================
+METHOD:
+ SetSMSRoutes
+
+DESCRIPTION:
+ This function sets the desired incoming SMS routing information
+
+PARAMETERS:
+ pRouteSize [ I ] - The number of elements in the SMS route array
+ pRoutes [ I ] - The SMS route array
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetSMSRoutes(
+ BYTE * pRouteSize,
+ BYTE * pRoutes )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetSMSRoutes( pRouteSize, pRoutes );
+}
+
+/*===========================================================================
+METHOD:
+ UIMSetPINProtection
+
+DESCRIPTION:
+ This function enables or disables protection of UIM contents by a
+ given PIN
+
+PARAMETERS:
+ id [ I ] - PIN ID (1/2)
+ bEnable [ I ] - Enable/disable PIN protection (0 = disable)?
+ pValue [ I ] - PIN value of the PIN to be enabled/disabled
+ pVerifyRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of retries left, after which the
+ PIN will be blocked (0xFFFFFFFF = unknown)
+ pUnblockRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of unblock retries left, after
+ which the PIN will be permanently blocked,
+ i.e. UIM is unusable (0xFFFFFFFF = unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMSetPINProtection(
+ ULONG id,
+ ULONG bEnable,
+ CHAR * pValue,
+ ULONG * pVerifyRetriesLeft,
+ ULONG * pUnblockRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMSetPINProtection( id,
+ bEnable,
+ pValue,
+ pVerifyRetriesLeft,
+ pUnblockRetriesLeft );
+}
+
+/*===========================================================================
+METHOD:
+ UIMVerifyPIN
+
+DESCRIPTION:
+ This function verifies the PIN before accessing the UIM contents
+
+PARAMETERS:
+ id [ I ] - PIN ID (1/2)
+ pValue [ I ] - PIN value of the PIN to verify
+ pVerifyRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of retries left, after which the
+ PIN will be blocked (0xFFFFFFFF = unknown)
+ pUnblockRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of unblock retries left, after
+ which the PIN will be permanently blocked,
+ i.e. UIM is unusable (0xFFFFFFFF = unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMVerifyPIN(
+ ULONG id,
+ CHAR * pValue,
+ ULONG * pVerifyRetriesLeft,
+ ULONG * pUnblockRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMVerifyPIN( id,
+ pValue,
+ pVerifyRetriesLeft,
+ pUnblockRetriesLeft );
+}
+
+/*===========================================================================
+METHOD:
+ UIMUnblockPIN
+
+DESCRIPTION:
+ This function unblocks a blocked PIN
+
+PARAMETERS:
+ id [ I ] - PIN ID (1/2)
+ pPUKValue [ I ] - PUK value of the PIN to unblock
+ pNewValue [ I ] - New PIN value of the PIN to unblock
+ pVerifyRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of retries left, after which the
+ PIN will be blocked (0xFFFFFFFF = unknown)
+ pUnblockRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of unblock retries left, after
+ which the PIN will be permanently blocked,
+ i.e. UIM is unusable (0xFFFFFFFF = unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMUnblockPIN(
+ ULONG id,
+ CHAR * pPUKValue,
+ CHAR * pNewValue,
+ ULONG * pVerifyRetriesLeft,
+ ULONG * pUnblockRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMUnblockPIN( id,
+ pPUKValue,
+ pNewValue,
+ pVerifyRetriesLeft,
+ pUnblockRetriesLeft );
+}
+
+/*===========================================================================
+METHOD:
+ UIMChangePIN
+
+DESCRIPTION:
+ This function change the PIN value
+
+PARAMETERS:
+ id [ I ] - PIN ID (1/2)
+ pOldValue [ I ] - Old PIN value of the PIN to change
+ pNewValue [ I ] - New PIN value of the PIN to change
+ pVerifyRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of retries left, after which the
+ PIN will be blocked (0xFFFFFFFF = unknown)
+ pUnblockRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of unblock retries left, after
+ which the PIN will be permanently blocked,
+ i.e. UIM is unusable (0xFFFFFFFF = unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMChangePIN(
+ ULONG id,
+ CHAR * pOldValue,
+ CHAR * pNewValue,
+ ULONG * pVerifyRetriesLeft,
+ ULONG * pUnblockRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMChangePIN( id,
+ pOldValue,
+ pNewValue,
+ pVerifyRetriesLeft,
+ pUnblockRetriesLeft );
+}
+
+/*===========================================================================
+METHOD:
+ UIMGetPINStatus
+
+DESCRIPTION:
+ This function returns the status of the pin
+
+PARAMETERS:
+ id [ I ] - PIN ID (1/2)
+ pStatus [ O ] - PIN status (0xFFFFFFFF = unknown)
+ pVerifyRetriesLeft [ O ] - The number of retries left, after which the
+ PIN will be blocked (0xFFFFFFFF = unknown)
+ pUnblockRetriesLeft [ O ] - The number of unblock retries left, after
+ which the PIN will be permanently blocked,
+ i.e. UIM is unusable (0xFFFFFFFF = unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMGetPINStatus(
+ ULONG id,
+ ULONG * pStatus,
+ ULONG * pVerifyRetriesLeft,
+ ULONG * pUnblockRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMGetPINStatus( id,
+ pStatus,
+ pVerifyRetriesLeft,
+ pUnblockRetriesLeft );
+}
+
+/*===========================================================================
+METHOD:
+ UIMGetICCID
+
+DESCRIPTION:
+ This function returns the UIM ICCID
+
+PARAMETERS:
+ stringSize [ I ] - The maximum number of characters (including NULL
+ terminator) that the string array can contain
+ pString [ O ] - NULL terminated string
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMGetICCID(
+ BYTE stringSize,
+ CHAR * pString )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMGetICCID( stringSize, pString );
+}
+
+/*===========================================================================
+METHOD:
+ UIMGetControlKeyStatus
+
+DESCRIPTION:
+ This function returns the status of the specified facility control key
+
+PARAMETERS:
+ id [ I ] - Facility ID
+ pStatus [ O ] - Control key status
+ pVerifyRetriesLeft [ O ] - The number of retries left, after which the
+ control key will be blocked
+ pUnblockRetriesLeft [ O ] - The number of unblock retries left, after
+ which the control key will be permanently
+ blocked
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMGetControlKeyStatus(
+ ULONG id,
+ ULONG * pStatus,
+ ULONG * pVerifyRetriesLeft,
+ ULONG * pUnblockRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMGetControlKeyBlockingStatus( id,
+ pStatus,
+ pVerifyRetriesLeft,
+ pUnblockRetriesLeft,
+ 0 );
+}
+
+/*===========================================================================
+METHOD:
+ UIMGetControlKeyBlockingStatus
+
+DESCRIPTION:
+ This function returns the blocking status of the specified facility
+ control key
+
+PARAMETERS:
+ id [ I ] - Facility ID
+ pStatus [ O ] - Control key status
+ pVerifyRetriesLeft [ O ] - The number of retries left, after which the
+ control key will be blocked
+ pUnblockRetriesLeft [ O ] - The number of unblock retries left, after
+ which the control key will be permanently
+ blocked
+ pbBlocking [ O ] - (Optional) Is the facility blocking?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMGetControlKeyBlockingStatus(
+ ULONG id,
+ ULONG * pStatus,
+ ULONG * pVerifyRetriesLeft,
+ ULONG * pUnblockRetriesLeft,
+ ULONG * pbBlocking )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMGetControlKeyBlockingStatus( id,
+ pStatus,
+ pVerifyRetriesLeft,
+ pUnblockRetriesLeft,
+ pbBlocking);
+}
+
+/*===========================================================================
+METHOD:
+ UIMSetControlKeyProtection
+
+DESCRIPTION:
+ This function changes the specified facility control key
+
+PARAMETERS:
+ id [ I ] - Facility ID
+ status [ I ] - Control key status
+ pValue [ I ] - Control key de-personalization string
+ pVerifyRetriesLeft [ O ] - Upon operational failure this will indicate
+ the number of retries left, after which the
+ control key will be blocked
+ (0xFFFFFFFF = unknown)
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMSetControlKeyProtection(
+ ULONG id,
+ ULONG status,
+ CHAR * pValue,
+ ULONG * pVerifyRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMSetControlKeyProtection( id,
+ status,
+ pValue,
+ pVerifyRetriesLeft );
+}
+
+/*===========================================================================
+METHOD:
+ UIMUnblockControlKey
+
+DESCRIPTION:
+ This function unblocks the specified facility control key
+
+PARAMETERS:
+ id [ I ] - Facility ID
+ pValue [ I ] - Control key de-personalization string
+ pUnblockRetriesLeft [ O ] - The number of unblock retries left, after
+ which the control key will be permanently
+ blocked
+ (0xFFFFFFFF = unknown)
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UIMUnblockControlKey(
+ ULONG id,
+ CHAR * pValue,
+ ULONG * pUnblockRetriesLeft )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UIMUnblockControlKey( id,
+ pValue,
+ pUnblockRetriesLeft );
+}
+
+/*===========================================================================
+METHOD:
+ GetPDSState
+
+DESCRIPTION:
+ This function returns the current PDS state
+
+PARAMETERS:
+ pEnabled [ O ] - Current PDS state (0 = disabled)
+ pTracking [ O ] - Current PDS tracking session state
+
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPDSState(
+ ULONG * pEnabled,
+ ULONG * pTracking )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetPDSState( pEnabled, pTracking );
+}
+
+/*===========================================================================
+METHOD:
+ SetPDSState
+
+DESCRIPTION:
+ This function sets the PDS state
+
+PARAMETERS:
+ enable [ I ] - Desired PDS state (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetPDSState( ULONG enable )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetPDSState( enable );
+}
+
+/*===========================================================================
+METHOD:
+ PDSInjectTimeReference
+
+DESCRIPTION:
+ This function injects a system time into the PDS engine
+
+PARAMETERS:
+ sysTime [ I ] - System time
+ sysDiscontinuities [ I ] - Number of system time discontinuities
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG PDSInjectTimeReference(
+ ULONGLONG systemTime,
+ USHORT systemDiscontinuities )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->PDSInjectTimeReference( systemTime,
+ systemDiscontinuities );
+}
+
+/*===========================================================================
+METHOD:
+ GetPDSDefaults
+
+DESCRIPTION:
+ This function returns the default tracking session configuration
+
+PARAMETERS:
+ pOperation [ O ] - Current session operating mode
+ pTimeout [ O ] - Maximum amount of time (seconds) to work on each fix
+ pInterval [ O ] - Interval (milliseconds) between fix requests
+ pAccuracy [ O ] - Current accuracy threshold (meters)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPDSDefaults(
+ ULONG * pOperation,
+ BYTE * pTimeout,
+ ULONG * pInterval,
+ ULONG * pAccuracy )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetPDSDefaults( pOperation,
+ pTimeout,
+ pInterval,
+ pAccuracy );
+}
+
+/*===========================================================================
+METHOD:
+ SetPDSDefaults
+
+DESCRIPTION:
+ This function sets the default tracking session configuration
+
+PARAMETERS:
+ operation [ I ] - Desired session operating mode
+ timeout [ I ] - Maximum amount of time (seconds) to work on each fix
+ interval [ I ] - Interval (milliseconds) between fix requests
+ accuracy [ I ] - Desired accuracy threshold (meters)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetPDSDefaults(
+ ULONG operation,
+ BYTE timeout,
+ ULONG interval,
+ ULONG accuracy )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetPDSDefaults( operation,
+ timeout,
+ interval,
+ accuracy );
+}
+
+/*===========================================================================
+METHOD:
+ GetXTRAAutomaticDownload
+
+DESCRIPTION:
+ This function returns the XTRA automatic download configuration
+
+PARAMETERS:
+ pbEnabled [ O ] - Automatic download enabled?
+ pInterval [ O ] - Interval (hours) between XTRA downloads
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetXTRAAutomaticDownload(
+ ULONG * pbEnabled,
+ USHORT * pInterval )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetXTRAAutomaticDownload( pbEnabled, pInterval );
+}
+
+/*===========================================================================
+METHOD:
+ SetXTRAAutomaticDownload
+
+DESCRIPTION:
+ This function sets the XTRA automatic download configuration
+
+PARAMETERS:
+ bEnabled [ I ] - Automatic download enabled?
+ interval [ I ] - Interval (hours) between XTRA downloads
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetXTRAAutomaticDownload(
+ ULONG bEnabled,
+ USHORT interval )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetXTRAAutomaticDownload( bEnabled, interval );
+}
+
+/*===========================================================================
+METHOD:
+ GetXTRANetwork
+
+DESCRIPTION:
+ This function returns the XTRA WWAN network preference
+
+PARAMETERS:
+ pPreference [ O ] - XTRA WWAN network preference
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetXTRANetwork( ULONG * pPreference )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetXTRANetwork( pPreference );
+}
+
+/*===========================================================================
+METHOD:
+ SetXTRANetwork
+
+DESCRIPTION:
+ This function sets the XTRA WWAN network preference
+
+PARAMETERS:
+ preference [ I ] - XTRA WWAN network preference
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetXTRANetwork( ULONG preference )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetXTRANetwork( preference );
+}
+
+/*===========================================================================
+METHOD:
+ GetXTRAValidity
+
+DESCRIPTION:
+ This function returns the XTRA database validity period
+
+PARAMETERS:
+ pGPSWeek [ O ] - Starting GPS week of validity period
+ pGPSWeekOffset [ O ] - Starting GPS week offset (minutes) of validity period
+ pDuration [ O ] - Length of validity period (hours)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetXTRAValidity(
+ USHORT * pGPSWeek,
+ USHORT * pGPSWeekOffset,
+ USHORT * pDuration )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetXTRAValidity( pGPSWeek,
+ pGPSWeekOffset,
+ pDuration );
+}
+
+/*===========================================================================
+METHOD:
+ ForceXTRADownload
+
+DESCRIPTION:
+ This function forces the XTRA database to be downloaded to the device
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ForceXTRADownload()
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->ForceXTRADownload();
+}
+
+/*===========================================================================
+METHOD:
+ GetXTRADataState
+
+DESCRIPTION:
+ This function returns the XTRA data positioning state
+
+PARAMETERS:
+ pState [ O ] - XTRA data positioning state
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetXTRADataState( ULONG * pState )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetXTRADataState( pState );
+}
+
+/*===========================================================================
+METHOD:
+ SetXTRADataState
+
+DESCRIPTION:
+ This function sets the XTRA data positioning state
+
+PARAMETERS:
+ state [ I ] - XTRA data positioning state
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetXTRADataState( ULONG state )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetXTRADataState( state );
+}
+
+/*===========================================================================
+METHOD:
+ GetXTRATimeState
+
+DESCRIPTION:
+ This function returns the XTRA time positioning state
+
+PARAMETERS:
+ pState [ O ] - XTRA time positioning state
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetXTRATimeState( ULONG * pState )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetXTRATimeState( pState );
+}
+
+/*===========================================================================
+METHOD:
+ SetXTRATimeState
+
+DESCRIPTION:
+ This function sets the XTRA time positioning state
+
+PARAMETERS:
+ state [ I ] - XTRA time positioning state
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetXTRATimeState( ULONG state )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetXTRATimeState( state );
+}
+
+/*===========================================================================
+METHOD:
+ GetAGPSConfig
+
+DESCRIPTION:
+ This function returns the PDS AGPS configuration
+
+PARAMETERS:
+ pServerAddress [ O ] - IPv4 address of AGPS server
+ pServerPort [ O ] - Port number of AGPS server
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetAGPSConfig(
+ ULONG * pServerAddress,
+ ULONG * pServerPort )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetAGPSConfig( pServerAddress, pServerPort );
+}
+
+/*===========================================================================
+METHOD:
+ SetAGPSConfig
+
+DESCRIPTION:
+ This function sets the PDS AGPS configuration
+
+PARAMETERS:
+ serverAddress [ I ] - IPv4 address of AGPS server
+ serverPort [ I ] - Port number of AGPS server
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetAGPSConfig(
+ ULONG serverAddress,
+ ULONG serverPort )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetAGPSConfig( serverAddress, serverPort );
+}
+
+/*===========================================================================
+METHOD:
+ GetServiceAutomaticTracking
+
+DESCRIPTION:
+ This function returns the automatic tracking state for the service
+
+PARAMETERS:
+ pbAuto [ O ] - Automatic tracking session started for service?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetServiceAutomaticTracking( ULONG * pbAuto )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetServiceAutomaticTracking( pbAuto );
+}
+
+/*===========================================================================
+METHOD:
+ SetServiceAutomaticTracking
+
+DESCRIPTION:
+ This function sets the automatic tracking state for the service
+
+PARAMETERS:
+ pbAuto [ I ] - Start automatic tracking session for service?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetServiceAutomaticTracking( ULONG bAuto )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetServiceAutomaticTracking( bAuto );
+}
+
+/*===========================================================================
+METHOD:
+ GetPortAutomaticTracking
+
+DESCRIPTION:
+ This function returns the automatic tracking configuration for the NMEA
+ COM port
+
+PARAMETERS:
+ pbAuto [ O ] - Automatic tracking enabled for NMEA COM port?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetPortAutomaticTracking( ULONG * pbAuto )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetPortAutomaticTracking( pbAuto );
+}
+
+/*===========================================================================
+METHOD:
+ SetPortAutomaticTracking
+
+DESCRIPTION:
+ This function sets the automatic tracking configuration for the NMEA
+ COM port
+
+PARAMETERS:
+ pbAuto [ I ] - Enable automatic tracking for NMEA COM port?
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetPortAutomaticTracking( ULONG bAuto )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetPortAutomaticTracking( bAuto );
+}
+
+/*===========================================================================
+METHOD:
+ ResetPDSData
+
+DESCRIPTION:
+ This function resets the specified PDS data
+
+PARAMETERS:
+ pGPSDataMask [ I ] - Bitmask of GPS data to clear (optional)
+ pCellDataMask [ I ] - Bitmask of cell data to clear (optional)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG ResetPDSData(
+ ULONG * pGPSDataMask,
+ ULONG * pCellDataMask )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->ResetPDSData( pGPSDataMask, pCellDataMask );
+}
+
+/*===========================================================================
+METHOD:
+ CATSendTerminalResponse
+
+DESCRIPTION:
+ This function sends the terminal response to the device
+
+PARAMETERS:
+ refID [ I ] - UIM reference ID (from CAT event)
+ dataLen [ I ] - Terminal response data length
+ pData [ I ] - Terminal response data
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG CATSendTerminalResponse(
+ ULONG refID,
+ ULONG dataLen,
+ BYTE * pData )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->CATSendTerminalResponse( refID, dataLen, pData );
+}
+
+/*===========================================================================
+METHOD:
+ CATSendEnvelopeCommand
+
+DESCRIPTION:
+ This function sends the envelope command to the device
+
+PARAMETERS:
+ cmdID [ I ] - Envelope command ID
+ dataLen [ I ] - Envelope command data length
+ pData [ I ] - Envelope command data
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG CATSendEnvelopeCommand(
+ ULONG cmdID,
+ ULONG dataLen,
+ BYTE * pData )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->CATSendEnvelopeCommand( cmdID, dataLen, pData );
+}
+
+/*===========================================================================
+METHOD:
+ GetSMSWake
+
+DESCRIPTION:
+ This function queries the state of the SMS wake functionality
+
+PARAMETERS:
+ pbEnabled [ O ] - SMS wake functionality enabled?
+ pWakeMask [ O ] - SMS wake mask (only relevant when enabled)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetSMSWake(
+ ULONG * pbEnabled,
+ ULONG * pWakeMask )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetSMSWake( pbEnabled, pWakeMask );
+}
+
+/*===========================================================================
+METHOD:
+ SetSMSWake
+
+DESCRIPTION:
+ This function enables/disables the SMS wake functionality
+
+PARAMETERS:
+ bEnable [ I ] - Enable SMS wake functionality?
+ wakeMask [ I ] - SMS wake mask (only relevant when enabling)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetSMSWake(
+ ULONG bEnable,
+ ULONG wakeMask )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetSMSWake( bEnable, wakeMask );
+}
+
+/*===========================================================================
+METHOD:
+ OMADMStartSession
+
+DESCRIPTION:
+ This function starts an OMA-DM session
+
+PARAMETERS:
+ sessionType [ I ] - Type of session to initiate
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMStartSession( ULONG sessionType )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMStartSession( sessionType );
+}
+
+/*===========================================================================
+METHOD:
+ OMADMCancelSession
+
+DESCRIPTION:
+ This function cancels an ongoing OMA-DM session
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMCancelSession()
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMCancelSession();
+}
+
+/*===========================================================================
+METHOD:
+ OMADMGetSessionInfo
+
+DESCRIPTION:
+ This function returns information related to the current (or previous
+ if no session is active) OMA-DM session
+
+PARAMETERS:
+ pSessionState [ O ] - State of session
+ pSessionType [ O ] - Type of session
+ pFailureReason [ O ] - Session failure reason (when state indicates failure)
+ pRetryCount [ O ] - Session retry count (when state indicates retrying)
+ pSessionPause [ O ] - Session pause timer (when state indicates retrying)
+ pTimeRemaining [ O ] - Pause time remaining (when state indicates retrying)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMGetSessionInfo(
+ ULONG * pSessionState,
+ ULONG * pSessionType,
+ ULONG * pFailureReason,
+ BYTE * pRetryCount,
+ WORD * pSessionPause,
+ WORD * pTimeRemaining )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMGetSessionInfo( pSessionState,
+ pSessionType,
+ pFailureReason,
+ pRetryCount,
+ pSessionPause,
+ pTimeRemaining );
+}
+
+/*===========================================================================
+METHOD:
+ OMADMGetPendingNIA
+
+DESCRIPTION:
+ This function returns information about the pending network initiated
+ alert
+
+PARAMETERS:
+ pSessionType [ O ] - Type of session
+ pSessionID [ O ] - Unique session ID
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMGetPendingNIA(
+ ULONG * pSessionType,
+ USHORT * pSessionID )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMGetPendingNIA( pSessionType, pSessionID );
+}
+
+/*===========================================================================
+METHOD:
+ OMADMSendSelection
+
+DESCRIPTION:
+ This function sends the specified OMA-DM selection for the current
+ network initiated session
+
+PARAMETERS:
+ selection [ I ] - Selection
+ sessionID [ I ] - Unique session ID
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMSendSelection(
+ ULONG selection,
+ USHORT sessionID )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMSendSelection( selection, sessionID );
+}
+
+/*===========================================================================
+METHOD:
+ OMADMGetFeatureSettings
+
+DESCRIPTION:
+ This function returns the OMA-DM feature settings
+
+PARAMETERS:
+ pbProvisioning [ O ] - Device provisioning service update enabled
+ pbPRLUpdate [ O ] - PRL service update enabled
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMGetFeatureSettings(
+ ULONG * pbProvisioning,
+ ULONG * pbPRLUpdate )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMGetFeatureSettings( pbProvisioning,
+ pbPRLUpdate );
+}
+
+/*===========================================================================
+METHOD:
+ OMADMSetProvisioningFeature
+
+DESCRIPTION:
+ This function sets the OMA-DM device provisioning service
+ update feature setting
+
+PARAMETERS:
+ bProvisioning [ I ] - Device provisioning service update enabled
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMSetProvisioningFeature(
+ ULONG bProvisioning )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMSetProvisioningFeature( bProvisioning );
+}
+
+/*===========================================================================
+METHOD:
+ OMADMSetPRLUpdateFeature
+
+DESCRIPTION:
+ This function sets the OMA-DM PRL service update feature setting
+
+PARAMETERS:
+ bPRLUpdate [ I ] - PRL service update enabled
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OMADMSetPRLUpdateFeature(
+ ULONG bPRLUpdate )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OMADMSetPRLUpdateFeature( bPRLUpdate );
+}
+
+/*===========================================================================
+METHOD:
+ OriginateUSSD
+
+DESCRIPTION:
+ This function initiates a USSD operation
+
+PARAMETERS:
+ pInfo [ I ] - USSD information
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG OriginateUSSD( BYTE * pInfo )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->OriginateUSSD( pInfo );
+}
+
+/*===========================================================================
+METHOD:
+ AnswerUSSD
+
+DESCRIPTION:
+ This function responds to a USSD request from the network
+
+PARAMETERS:
+ pInfo [ I ] - USSD information
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG AnswerUSSD( BYTE * pInfo )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->AnswerUSSD( pInfo );
+}
+
+/*===========================================================================
+METHOD:
+ CancelUSSD
+
+DESCRIPTION:
+ This function cancels an in-progress USSD operation
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG CancelUSSD()
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->CancelUSSD();
+}
+
+/*===========================================================================
+METHOD:
+ UpgradeFirmware
+
+DESCRIPTION:
+ This function performs the following set of steps:
+ a) Verifies arguments
+ b) Updates firmware ID on device
+ c) Resets the device
+
+ NOTE: Upon successful completion the above steps will have been completed,
+ however the actual upgrade of the firmware will necessarily then
+ follow.
+
+PARAMETERS:
+ pDestinationPath [ I ] - The fully qualified path to the destination folder
+ that the firmware download service will use
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG UpgradeFirmware( CHAR * pDestinationPath )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->UpgradeFirmware( pDestinationPath );
+}
+
+/*===========================================================================
+METHOD:
+ GetImageInfo
+
+DESCRIPTION:
+ Returns image information obtained from the firmware image located at the
+ provided path
+
+PARAMETERS:
+ pPath [ I ] - Location of the firmware image
+ pFirmwareID [ O ] - Firmware ID obtained from the firmware image
+ pTechnology [ O ] - Technology (0xFFFFFFFF if unknown)
+ pCarrier [ O ] - Carrier (0xFFFFFFFF if unknown)
+ pRegion [ O ] - Region (0xFFFFFFFF if unknown)
+ pGPSCapability [ O ] - GPS capability (0xFFFFFFFF if unknown)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetImageInfo(
+ CHAR * pPath,
+ ULONG * pFirmwareID,
+ ULONG * pTechnology,
+ ULONG * pCarrier,
+ ULONG * pRegion,
+ ULONG * pGPSCapability )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetImageInfo( pPath,
+ pFirmwareID,
+ pTechnology,
+ pCarrier,
+ pRegion,
+ pGPSCapability );
+}
+
+/*===========================================================================
+METHOD:
+ GetImageStore
+
+DESCRIPTION:
+ Returns the image store folder, i.e. the folder co-located with the
+ QDL Service executable which (by default) contains one or more carrier
+ specific image subfolders
+
+PARAMETERS:
+ pathSize [ I ] - Maximum number of characters (including NULL
+ terminator) that can be copied to the image
+ store path array
+ pImageStorePath [ O ] - The path to the image store
+
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG GetImageStore(
+ WORD pathSize,
+ CHAR * pImageStorePath )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->GetImageStore( pathSize, pImageStorePath );
+}
+
+/*===========================================================================
+METHOD:
+ SetSessionStateCallback
+
+DESCRIPTION:
+ This function enables/disables the session state callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetSessionStateCallback( tFNSessionState pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetSessionStateCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetByteTotalsCallback
+
+DESCRIPTION:
+ This function enables/disables the RX/TX byte counts callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+ interval [ I ] - Interval in seconds (ignored when disabling)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetByteTotalsCallback(
+ tFNByteTotals pCallback,
+ BYTE interval )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetByteTotalsCallback( pCallback, interval );
+}
+
+/*===========================================================================
+METHOD:
+ SetDataCapabilitiesCallback
+
+DESCRIPTION:
+ This function enables/disables the serving system data capabilities
+ callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetDataCapabilitiesCallback(
+ tFNDataCapabilities pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetDataCapabilitiesCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetDataBearerCallback
+
+DESCRIPTION:
+ This function enables/disables the data bearer status callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetDataBearerCallback( tFNDataBearer pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetDataBearerCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetDormancyStatusCallback
+
+DESCRIPTION:
+ This function enables/disables the dormancy status callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetDormancyStatusCallback(
+ tFNDormancyStatus pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetDormancyStatusCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetMobileIPStatusCallback
+
+DESCRIPTION:
+ This function enables/disables the mobile IP status callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetMobileIPStatusCallback(
+ tFNMobileIPStatus pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetMobileIPStatusCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetActivationStatusCallback
+
+DESCRIPTION:
+ This function enables/disables the activation status callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetActivationStatusCallback(
+ tFNActivationStatus pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetActivationStatusCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetPowerCallback
+
+DESCRIPTION:
+ Enable/disable power operating mode callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetPowerCallback( tFNPower pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetPowerCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetWirelessDisableCallback
+
+DESCRIPTION:
+ Enable/disable wireless disable state callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetWirelessDisableCallback(
+ tFNWirelessDisable pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetWirelessDisableCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetRoamingIndicatorCallback
+
+DESCRIPTION:
+ This function enables/disables the roaming indicator callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetRoamingIndicatorCallback(
+ tFNRoamingIndicator pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetRoamingIndicatorCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetSignalStrengthCallback
+
+DESCRIPTION:
+ This function enables/disables the signal strength callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+ thresholdsSize [ I ] - Number of elements the threshold array contain
+ (a maximum of 5 thresholds is supported), must
+ be 0 when disabling the callback
+ pThresholds [ I ] - Signal threshold array (each entry in dBm),
+ must be 0 when disabling the callback
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetSignalStrengthCallback(
+ tFNSignalStrength pCallback,
+ BYTE thresholdsSize,
+ INT8 * pThresholds )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ if (thresholdsSize > 0 && pThresholds == 0)
+ {
+ return (ULONG)eGOBI_ERR_INVALID_ARG;
+ }
+
+ std::list <INT8> thresholdsList;
+ for (BYTE t = 0; t < thresholdsSize; t++)
+ {
+ thresholdsList.push_back( pThresholds[t] );
+ }
+
+ return (ULONG)pAPI->SetSignalStrengthCallback( pCallback, thresholdsList );
+}
+
+/*===========================================================================
+METHOD:
+ SetRFInfoCallback
+
+DESCRIPTION:
+ This function enables/disables the RF information callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetRFInfoCallback( tFNRFInfo pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetRFInfoCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetLURejectCallback
+
+DESCRIPTION:
+ This function enables/disables the LU reject callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetLURejectCallback( tFNLUReject pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetLURejectCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetPLMNModeCallback
+
+DESCRIPTION:
+ Enable/disable PLMN mode callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetPLMNModeCallback( tFNPLMNMode pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetPLMNModeCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetNewSMSCallback
+
+DESCRIPTION:
+ This function enables/disables the new SMS callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetNewSMSCallback( tFNNewSMS pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetNewSMSCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetNMEACallback
+
+DESCRIPTION:
+ This function enables/disables the NMEA sentence callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetNMEACallback( tFNNewNMEA pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetNMEACallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetPDSStateCallback
+
+DESCRIPTION:
+ This function enables/disables the PDS service state callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetPDSStateCallback( tFNPDSState pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetPDSStateCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetCATEventCallback
+
+DESCRIPTION:
+ This function enables/disables the CAT event callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+ eventMask [ I ] - Bitmask of CAT events to register for
+ pErrorMask [ O ] - Error bitmask
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetCATEventCallback(
+ tFNCATEvent pCallback,
+ ULONG eventMask,
+ ULONG * pErrorMask )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetCATEventCallback( pCallback, eventMask, pErrorMask );
+}
+
+/*===========================================================================
+METHOD:
+ SetOMADMAlertCallback
+
+DESCRIPTION:
+ This function enables/disables the OMA-DM network initiated alert
+ callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetOMADMAlertCallback( tFNOMADMAlert pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetOMADMAlertCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetOMADMStateCallback
+
+DESCRIPTION:
+ This function enables/disables the OMA-DM state callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function (0 = disable)
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetOMADMStateCallback( tFNOMADMState pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetOMADMStateCallback( pCallback );
+}
+
+#ifdef VOICE_SUPPORT
+/*===========================================================================
+METHOD:
+ SetUSSDReleaseCallback
+
+DESCRIPTION:
+ Enable/disable USSD release callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetUSSDReleaseCallback(
+ tFNUSSDRelease pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetUSSDReleaseCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetUSSDNotificationCallback
+
+DESCRIPTION:
+ Enable/disable USSD notification callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetUSSDNotificationCallback(
+ tFNUSSDNotification pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetUSSDNotificationCallback( pCallback );
+}
+
+/*===========================================================================
+METHOD:
+ SetUSSDOriginationCallback
+
+DESCRIPTION:
+ Enable/disable USSD origination callback function
+
+PARAMETERS:
+ pCallback [ I ] - Callback function
+
+RETURN VALUE:
+ ULONG - Return code
+===========================================================================*/
+ULONG SetUSSDOriginationCallback(
+ tFNUSSDOrigination pCallback )
+{
+ cGobiConnectionMgmt * pAPI = gConnectionDLL.GetAPI();
+ if (pAPI == 0)
+ {
+ return (ULONG)eGOBI_ERR_INTERNAL;
+ }
+
+ return (ULONG)pAPI->SetUSSDOriginationCallback( pCallback );
+}
+#endif
+