Search in sources :

Example 1 with CallMediaInfoVector

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

the class SipCall method updateMicrophoneVolume.

public void updateMicrophoneVolume(long newVolume) {
    try {
        CallMediaInfoVector callMediaInfoVector = this.getInfo().getMedia();
        long size = callMediaInfoVector.size();
        for (int i = 0; i < size; i++) {
            CallMediaInfo callMediaInfo = callMediaInfoVector.get(i);
            if (callMediaInfo.getType() == pjmedia_type.PJMEDIA_TYPE_AUDIO) {
                AudioMedia audioMedia = AudioMedia.typecastFromMedia(this.getMedia(i));
                if (audioMedia != null) {
                    audioMedia.adjustRxLevel(newVolume);
                }
            }
        }
    } catch (Exception e) {
        mSipBroadcaster.broadcastCallStatus(getIdentifier(), SipConstants.CALL_UPDATE_MICROPHONE_VOLUME_FAILED);
        e.printStackTrace();
    }
}
Also used : CallMediaInfoVector(org.pjsip.pjsua2.CallMediaInfoVector) CallMediaInfo(org.pjsip.pjsua2.CallMediaInfo) AudioMedia(org.pjsip.pjsua2.AudioMedia)

Example 2 with CallMediaInfoVector

use of org.pjsip.pjsua2.CallMediaInfoVector 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)

Aggregations

AudioMedia (org.pjsip.pjsua2.AudioMedia)2 CallMediaInfo (org.pjsip.pjsua2.CallMediaInfo)2 CallMediaInfoVector (org.pjsip.pjsua2.CallMediaInfoVector)2 CallInfo (org.pjsip.pjsua2.CallInfo)1 Media (org.pjsip.pjsua2.Media)1