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);
}
}
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);
}
}
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();
}
Aggregations