// -----------------------------------------------------------------------------
// CUpnpErrorCodeSeekerContentHandler::OnEndElementL
// This method is a callback to indicate the end of the element has been reached.
// -----------------------------------------------------------------------------
//
void CUpnpErrorCodeSeekerContentHandler::OnEndElementL( const RTagInfo& aElement )
    {
    ASSERT( aElement.LocalName().DesC().Compare( iCurrentState ) == 0 );
    SetPreviousState();
    }
Beispiel #2
0
/*****************************************************************************
 * FUNCTION
 *  ProcessPSCallConnectFailEvent
 * DESCRIPTION
 *  This is the function to process Protocol(Response) failure Event.
 * PARAMETERS
 *  cause       [IN]        
 *  void(?)     [IN]        *(this points to CM_CALL_HANDLE of the call which requested CM_KB_OUTGOINGCALL)
 * RETURNS
 *  void
 *****************************************************************************/
void ProcessPSCallConnectFailEvent(U16 cause)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    CM_CALL_HANDLE callHandle;
    U8 type;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    SetCallEndCause(cause);
    
    if (GetCCFlag() == TRUE)
    {
        callHandle = GetOutgoingCallHandle();

        if (callHandle == -1)
        {
            PRINT_INFORMATION("\n ProcessPSCallConnectFailEvent Getting the Connected Handle has -1 \n");
            return;
        }

        switch (GetCurrentState())
        {
                /* amanda add 0326, MO MT collision */
            case CM_INCOMING_STATE:
                PurgeOutgoingCallsStructure();
                cause = 0;
                break;

            case CM_OUTGOING_STATE:
                type = GetOutgoingCallType();
                PurgeOutgoingCallsStructure();
                
                if (GetTotalCallCount() == 0)
                {
                    SetCurrentState(CM_IDLE_STATE);
                }
                else
                {
                    SetCurrentState(GetPreviousState());
                }
                SetPreviousState(CM_OUTGOING_STATE);
                
                if (GetTotalCallCount() == 0)
                {
                    /* only voice call can redial */
                #ifdef __MMI_VIDEO_TELEPHONY__
                    if ((type != CM_VOICE_CALL && type != CSMCC_VIDEO_CALL) || (IsRedialNeeded(cause) == FALSE))
                #else /* __MMI_VIDEO_TELEPHONY__ */
                    if ((type != CM_VOICE_CALL) || (IsRedialNeeded(cause) == FALSE))
                #endif/* __MMI_VIDEO_TELEPHONY__ */ 
                    {
                        /* no need to redial, just show error and get out of CM */
                        /*ShowCallManagementErrorMessage(cause, cm_p->ucm_operation);*/
                        SetCallEndCause(cause);
                        mmi_gsm_release_ind(GetCallEndCause());
                        return;
                    }
                    else
                    {
                        /* need to redial, show error and redial */
                        if (IsRedialSet())
                        {
                            SetCallEndedBeforeConnFlag(FALSE);
                            CheckRedialOrShowError(cause);
        					/* abort SS if needed */
                            return;
                        }
                    }
                }
                /* still have other call, can't redial, just show error */
                break;

            default:
                PRINT_INFORMATION("\n ProcessPSCallConnectFailEvent CM State m/c Corrupted \n");
                break;
        }
    }

    if(cm_p->ucm_operation == MMI_GSM_UCM_DIAL)
    {
        /*SS_PARSING_RSP FAIL*/
        ShowCallManagementErrorMessage(cause, cm_p->ucm_operation);
    }
    else if(cm_p->ucm_operation == MMI_GSM_UCM_HOLD_AND_DIAL)
    {
        /*SS_PARSING_RSP FAIL*/
        ShowCallManagementErrorMessage(cause, cm_p->ucm_operation);
    }
#ifdef __MMI_DUAL_SIM_MASTER__
    else if(cm_p->slave_ss_session)
    {
        MTPNP_PFAL_CC_UCMShowCallErrorMessage(cause,MMI_GSM_UCM_IDLE);
        mmi_gsm_set_slave_ss_falg(FALSE);
    }
#endif /* __MMI_DUAL_SIM_MASTER__ */    
    else
    {
        mmi_gsm_release_ind(GetCallEndCause());
    }
    return;
}
Beispiel #3
0
/*****************************************************************************
 * FUNCTION
 *  ProcessPSCallConnectFailEvent
 * DESCRIPTION
 *  This is the function to process Protocol(Response) failure Event.
 * PARAMETERS
 *  cause       [IN]        
 *  void(?)     [IN]        *(this points to CM_CALL_HANDLE of the call which requested CM_KB_OUTGOINGCALL)
 * RETURNS
 *  void
 *****************************************************************************/
void ProcessPSCallConnectFailEvent(U16 cause)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    CM_CALL_HANDLE callHandle;
    U8 type;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (GetCCFlag() == TRUE)
    {
        callHandle = GetOutgoingCallHandle();

        if (callHandle == -1)
        {
            PRINT_INFORMATION("\n ProcessPSCallConnectFailEvent Getting the Connected Handle has -1 \n");
            return;
        }

        switch (GetCurrentState())
        {
                /* amanda add 0326, MO MT collision */
            case CM_INCOMING_STATE:
                PurgeOutgoingCallsStructure();
                cause = 0;
                break;

            case CM_OUTGOING_STATE:
                type = GetOutgoingCallType();
                PurgeOutgoingCallsStructure();
                SetCurrentState(GetPreviousState());
                SetPreviousState(CM_OUTGOING_STATE);
                if (GetTotalCallCount() == 0)
                {
                    /* only voice call can redial */
                    if ((type != CM_VOICE_CALL) || (IsRedialNeeded(cause) == FALSE))
                    {
                        /* no need to redial, just show error and get out of CM */
                        ShowCallManagementErrorMessage(cause);
                        GetOutOfCMforAdjustHistory();
                        return;
                    }
                    else
                    {
                        /* need to redial, show error and redial */
                        if (IsRedialSet())
                        {
                            SetCallEndedBeforeConnFlag(FALSE);
                            CheckRedialOrShowError(cause);
        					/* abort SS if needed */
                            DeleteScreenIfPresent(ITEM_SCR_USSN_MSG);
                            return;
                        }
                    }
                }
                /* still have other call, can't redial, just show error */
                break;

            default:
                PRINT_INFORMATION("\n ProcessPSCallConnectFailEvent CM State m/c Corrupted \n");
                break;
        }
    }
    ShowCallManagementErrorMessage(cause);
}