/** * Check if the remote part supports Jingle video. * * @param calleeAddress Contact address * @param videoDevice <tt>MediaDevice</tt> used * @return true if contact support Jingle video, false otherwise * @throws OperationFailedException with the corresponding code if we fail to create the video * call. */ protected Call createOutgoingVideoCall(String calleeAddress, MediaDevice videoDevice) throws OperationFailedException { if (parentProvider.getConnection() == null) { throw new OperationFailedException( "Failed to create OutgoingJingleSession.\n" + "we don't have a valid XMPPConnection.", OperationFailedException.INTERNAL_ERROR); } CallJabberImpl call = new CallJabberImpl(basicTelephony); /* enable video */ call.setVideoDevice(videoDevice); call.setLocalVideoAllowed(true, getMediaUseCase()); return basicTelephony.createOutgoingCall(call, calleeAddress); }
/** * Sets the indicator which determines whether the streaming of local video in a specific * <tt>Call</tt> is allowed. The setting does not reflect the availability of actual video capture * devices, it just expresses the desire of the user to have the local video streamed in the case * the system is actually able to do so. * * @param call the <tt>Call</tt> to allow/disallow the streaming of local video for * @param mediaDevice the media device to use for the desktop streaming * @param allowed <tt>true</tt> to allow the streaming of local video for the specified * <tt>Call</tt>; <tt>false</tt> to disallow it * @throws OperationFailedException if initializing local video fails. */ public void setLocalVideoAllowed(Call call, MediaDevice mediaDevice, boolean allowed) throws OperationFailedException { ((CallJabberImpl) call).setVideoDevice(mediaDevice); size = ((VideoMediaFormat) mediaDevice.getFormat()).getSize(); super.setLocalVideoAllowed(call, allowed); }