Partager via


RIL Incoming Voice Call Receiving Process

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

To receive an incoming voice call, the cellular TSP and the RIL driver complete the following steps:

  1. The radio detects an incoming call.

  2. RIL generates a RIL_NOTIFY_RING message with the following values set in the RILRINGINFO structure.

    Member Value

    dwCallType

    RIL_CALLTYPE_VOICE

    dwAddressId

    0

  3. RIL generates a RIL_NOTIFY_CALLERID message with the following values set in the RILREMOTEPARTYINFO structure.

    Member Value

    raAddress

    "4255551212"

    dwValidity

    RIL_REMOTEPARTYINFO_VALID

  4. TAPI calls the RIL_GetLineStatus function to obtain the status of the call. The return value should be RIL_RESULT_OK with the lpData parameter containing a pointer to the RIL_LINESTAT_RINGING constant. This step may occur multiple times.

  5. Connection Manager requests that TAPI obtain the mute state by calling RIL_GetAudioMuting. The return value should be RIL_RESULT_OK - FALSE (not muted). This step may occur multiple times.

  6. TAPI calls the RIL_GetCallList function to obtain a list of available calls. This step may occur multiple times. The return value should be RIL_RESULT_OK with the lpData parameter containing a pointer to RILCALLINFO with the following values set.

    Member Value

    dwID

    1

    dwDirection

    RIL_CALLDIR_INCOMING

    dwStatus

    RIL_CALLSTAT_INCOMING

    dwType

    RIL_CALLTYPE_VOICE

    dwMultiparty

    RIL_CALL_SINGLEPARTY

    raAddress

    "14255551212"

  7. When the user answers the phone, TAPI calls RIL_Answer.

  8. The radio answers the call.

  9. The RIL driver returns RIL_RESULT_OK with lpData = NULL for the answer command.

  10. The RIL driver generates the RIL_NOTIFY_CONNECT and RIL_CALLTYPE_VOICE constants.

  11. The TSP calls RIL_SetAudioDevices to set RIL_AUDIO_HANDSET as the device for both Tx and Rx audio. The return value should be RIL_RESULT_OK.

  12. TAPI calls the RIL_GetLineStatus function to make sure that the call has been answered. The return value should be RIL_RESULT_OK with the lpData parameter pointing to the RIL_LINESTAT_CALLINPROGRESS constant.

If an incoming call notification is received by Connection Manager via TAPI while a data connection is active, the Connection Manager will request a disconnect of the data connection and wait for a response from the radio that the data is appropriately disconnected before receiving the incoming call. The incoming call will not be received if the radio does not disconnect the data connection. If the data connection is capable of a suspend and resume, the radio should mark the data connection as suspended.

Under normal operation, if a voice call is being initiated, a lower priority connection cannot be initiated at the same time. But certain situations can occur when data connections are requested to the radio before the notification about an incoming call reaches the Connection Manager. In this case, the data connection is rejected in favor of the possible voice call if both connections cannot be connected concurrently. Another acceptable behavior would be to reject the voice call and connect data, but this might lead to poorer user experience.

Certain applications might also make connection requests directly to the radio, without going through the Connection Manager. If the requested connection uses radio resources, Connection Manager will detect those connections, and keep an internal fake connection object classified as an alien connection which has a higher priority than data connections and lower priority than other Connection Manager voice connections. Thus, if a voice call is requested, the alien call will be disconnected by Connection Manager, and the voice call will be made once the alien connection is detected to be disconnected.

Note

By default, simultaneous data and voice connections are not supported. This capability is enabled only if the RIL driver sends the RIL_NOTIFY_SYSTEMCAPSCHANGED notification set to RIL_SYSTEMCAPS_VOICEDATA.

Requirements

Windows Embedded CE Windows Embedded CE 6.0 and later

See Also

Reference

System Capabilities Constants

Concepts

RIL Outgoing Voice Call Process

Other Resources

RIL Call Overview