use of org.pjsip.pjsua2.AudioMedia 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();
}
}
use of org.pjsip.pjsua2.AudioMedia in project vialer-android by VoIPGRID.
the class SipCall method onCallMediaAvailable.
private void onCallMediaAvailable(AudioMedia media) {
mRemoteLogger.d("onCallMediaAvailable");
try {
// There is media available so stop the ringback.
onCallStopRingback();
// Connect de audio device manager to the sip media.
AudDevManager audDevManager = mSipService.getSipConfig().getEndpoint().audDevManager();
media.startTransmit(audDevManager.getPlaybackDevMedia());
audDevManager.getCaptureDevMedia().startTransmit(media);
mSipBroadcaster.broadcastCallStatus(getIdentifier(), SipConstants.CALL_MEDIA_AVAILABLE_MESSAGE);
} catch (Exception e) {
mSipBroadcaster.broadcastCallStatus(getIdentifier(), SipConstants.CALL_MEDIA_FAILED);
e.printStackTrace();
}
}
use of org.pjsip.pjsua2.AudioMedia 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);
}
}
Aggregations