Making Suspend and Resume Connections During Voice Calls
If a voice call occurs after the user activates a packet data connection, such as GPRS or 1xRTT, and the system does not support simultaneous voice and data connections, the device suspends the data session for the duration of the voice call instead of ending it. During this state, the device caches the data session and maintains the same IP address. However, actual data cannot be sent or received. When the voice call ends, the session is immediately reactivated with the same IP address and no reconnection is necessary.
OEM applications can take advantage of the suspend and resume feature by using a new Connection Manager notification. An application can elect to be notified when its connection request becomes suspended due to a voice call. If the dwFlag member of the CONNMGR_CONNECTIONINFO structure for the connection request is set to CONNMGR_FLAG_SUSPEND_AWARE, then the application will be notified when the connection request status changes to CONNMGR_STATUS_SUSPENDED. Otherwise, and to maintain backward-compatibility, the application will receive the notification CONNMGR_STATUS_DISCONNECTED. Once the voice call is disconnected, connection will be resumed and the application will be notified with CONNMGR_STATUS_CONNECTED.
To take advantage of suspend and resume functionality, an application must use a connection defined as suspend-resume-capable. GPRS connections are configured as suspend-resume-capable by default.
For the Connection Manager to notify the OEM application when the connection is suspended, the OEM application must indicate to Connection Manager during the connection request that it needs suspend notifications. When the packet connection is suspended, Connection Manager sends a private notification to the applications that requested a suspend notification and indicates this suspended state. These applications will not receive a disconnect notification.
An OEM application can monitor the suspend notifications and implement the appropriate behaviors during the suspended state. Other applications receive the standard disconnect notification and do not need to change their behavior in anyway.
Send Feedback on this topic to the authors