private native int getDuration(long nativePtr);
private native float getCurrentQuality(long nativePtr);
private native float getAverageQuality(long nativePtr);
+ private native String getAuthenticationToken(long nativePtr);
+ private native boolean isAuthenticationTokenVerified(long nativePtr);
+ private native boolean areStreamsEncrypted(long nativePtr);
protected LinphoneCallImpl(long aNativePtr) {
nativePtr = aNativePtr;
public float getCurrentQuality() {
return getCurrentQuality(nativePtr);
}
-
+
+ public String getAuthenticationToken(){
+ return getAuthenticationToken(nativePtr);
+ }
+ public boolean isAuthenticationTokenVerified(){
+ return isAuthenticationTokenVerified(nativePtr);
+ }
+ public boolean areStreamsEncrypted() {
+ return areStreamsEncrypted(nativePtr);
+ }
}
}
static {
+ // FFMPEG (audio/video)
loadOptionalLibrary("avutil");
loadOptionalLibrary("swscale");
loadOptionalLibrary("avcore");
loadOptionalLibrary("avcodec");
+
+ // OPENSSL (cryptography)
+ // lin prefix avoids collision with libs in /system/lib
+ loadOptionalLibrary("lincrypto");
+ loadOptionalLibrary("linssl");
+
+ // Secure RTP and key negotiation
+ loadOptionalLibrary("srtp");
+ loadOptionalLibrary("zrtpcpp"); // GPLv3+
+
+ //Main library
System.loadLibrary("linphone");
}
@Override
private native int resumeCall(long nativePtr, long callPtr);
private native void setUploadPtime(long nativePtr, int ptime);
private native void setDownloadPtime(long nativePtr, int ptime);
-
+ private native void setZrtpSecretsCache(long nativePtr, String file);
+
LinphoneCoreImpl(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object userdata) throws IOException {
mListener=listener;
nativePtr = newLinphoneCore(listener,userConfig.getCanonicalPath(),factoryConfig.getCanonicalPath(),userdata);
public void setUploadPtime(int ptime) {
setUploadPtime(nativePtr,ptime);
}
+
+ public void setZrtpSecretsCache(String file) {
+ setZrtpSecretsCache(nativePtr,file);
+ }
}
public static final int API09_GINGERBREAD_23 = 9;
public static final int API11_HONEYCOMB_30 = 11;
+ private static native boolean nativeHasZrtp();
private static native boolean nativeHasNeon();
private static Boolean hasNeon;
return !Version.sdkStrictlyBelow(5) && Version.hasNeon() && Hacks.hasCamera();
}
+ public static boolean hasZrtp(){
+ return nativeHasZrtp();
+ }
}