Search in sources :

Example 1 with CallInfo

use of org.pjsip.pjsua2.CallInfo in project vialer-android by VoIPGRID.

the class SipCall method onCallMediaState.

/**
 * Translate the callback to the interface, which is implemented by the SipService
 *
 * @param onCallMediaStateParam parameters containing the state of the an active call' media.
 */
@Override
public void onCallMediaState(OnCallMediaStateParam onCallMediaStateParam) {
    // Find suitable audio stream by looping.
    try {
        CallInfo ci = getInfo();
        CallMediaInfoVector media = ci.getMedia();
        // Administration to see if we connected some media to this call.
        boolean mediaAvailable = false;
        for (int i = 0; i < media.size(); ++i) {
            CallMediaInfo cmi = media.get(i);
            boolean usableStatus = (cmi.getStatus() == pjsua_call_media_status.PJSUA_CALL_MEDIA_ACTIVE || cmi.getStatus() == pjsua_call_media_status.PJSUA_CALL_MEDIA_REMOTE_HOLD);
            if (cmi.getType() == pjmedia_type.PJMEDIA_TYPE_AUDIO && usableStatus) {
                Media m = getMedia(i);
                AudioMedia audio = AudioMedia.typecastFromMedia(m);
                // Do some administration to notify about present media
                mediaAvailable = true;
                this.onCallMediaAvailable(audio);
            }
        }
        if (!mediaAvailable) {
            this.onCallMediaUnavailable();
        }
    } catch (Exception e) {
        this.onCallInvalidState(e);
    }
}
Also used : CallMediaInfoVector(org.pjsip.pjsua2.CallMediaInfoVector) CallInfo(org.pjsip.pjsua2.CallInfo) CallMediaInfo(org.pjsip.pjsua2.CallMediaInfo) Media(org.pjsip.pjsua2.Media) AudioMedia(org.pjsip.pjsua2.AudioMedia) AudioMedia(org.pjsip.pjsua2.AudioMedia)

Example 2 with CallInfo

use of org.pjsip.pjsua2.CallInfo in project vialer-android by VoIPGRID.

the class SipCall method onCallState.

/**
 * Translate the callback to the interface, which is currently implemented by the SipService.
 *
 * @param onCallStateParam parameters containing the state of an active call.
 */
@Override
public void onCallState(OnCallStateParam onCallStateParam) {
    try {
        // Check to see if we can get CallInfo with this callback.
        CallInfo info = getInfo();
        pjsip_inv_state callState = info.getState();
        mRemoteLogger.e("CallState changed!");
        mRemoteLogger.e(callState.toString());
        if (callState == pjsip_inv_state.PJSIP_INV_STATE_CALLING) {
            // We are handling a outgoing call.
            mOutgoingCall = true;
            onCallStartRingback();
        } else if (callState == pjsip_inv_state.PJSIP_INV_STATE_CONFIRMED) {
            // Call has been setup, stop ringback.
            onCallStopRingback();
            onCallConnected();
        } else if (callState == pjsip_inv_state.PJSIP_INV_STATE_DISCONNECTED) {
            if (mIpChangeInProgress && mCurrentCallState.equals(SipConstants.CALL_INCOMING_RINGING)) {
                mRemoteLogger.d("Network switch during ringing phase.");
            }
            onCallStopRingback();
            onCallDisconnected();
            delete();
        }
    } catch (Exception e) {
        e.printStackTrace();
        this.onCallInvalidState(e);
    }
}
Also used : org.pjsip.pjsua2.pjsip_inv_state(org.pjsip.pjsua2.pjsip_inv_state) CallInfo(org.pjsip.pjsua2.CallInfo)

Example 3 with CallInfo

use of org.pjsip.pjsua2.CallInfo in project vialer-android by VoIPGRID.

the class SipCall method getCallDuration.

public int getCallDuration() {
    TimeVal timeVal = new TimeVal();
    try {
        CallInfo callInfo = this.getInfo();
        timeVal = callInfo.getConnectDuration();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return timeVal.getSec();
}
Also used : TimeVal(org.pjsip.pjsua2.TimeVal) CallInfo(org.pjsip.pjsua2.CallInfo)

Aggregations

CallInfo (org.pjsip.pjsua2.CallInfo)3 AudioMedia (org.pjsip.pjsua2.AudioMedia)1 CallMediaInfo (org.pjsip.pjsua2.CallMediaInfo)1 CallMediaInfoVector (org.pjsip.pjsua2.CallMediaInfoVector)1 Media (org.pjsip.pjsua2.Media)1 TimeVal (org.pjsip.pjsua2.TimeVal)1 org.pjsip.pjsua2.pjsip_inv_state (org.pjsip.pjsua2.pjsip_inv_state)1