diff --git a/Makefile b/Makefile index ce315129ab..b1f379e701 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ all clean dep depend print: done distclean realclean: - for dir in $(DIRS); do \ + for dir in $(DIRS) pjsip-apps/src/swig pjsip-apps/src/pjsua/android/jni; do \ if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \ true; \ else \ diff --git a/pjsip-apps/src/pjsua/android/jni/Makefile b/pjsip-apps/src/pjsua/android/jni/Makefile index 6d56b19680..e1a1046899 100644 --- a/pjsip-apps/src/pjsua/android/jni/Makefile +++ b/pjsip-apps/src/pjsua/android/jni/Makefile @@ -9,7 +9,7 @@ MY_MODULES := $(MY_MODULE_PATH)/pjsua_app.o \ $(MY_MODULE_PATH)/pjsua_app_legacy.o OUT_DIR := ../build/jni -LIBPJSUA_SO := ../app/src/main/jniLibs/armeabi/libpjsua.so +LIBPJSUA_SO := ../app/src/main/jniLibs/$(TARGET_ARCH)/libpjsua.so # Env settings, e.g: path to SWIG, JDK, java(.exe), javac(.exe) MY_SWIG := swig @@ -23,10 +23,12 @@ MY_LDFLAGS := $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(MY_JNI_LDFLAGS) $(LDFLAGS) MY_PACKAGE_NAME := org.pjsip.pjsua MY_PACKAGE_PATH := ../app/src/main/java/$(subst .,/,$(MY_PACKAGE_NAME)) -all: $(LIBPJSUA_SO) java +MY_STD_CPP := ../app/src/main/jniLibs/$(TARGET_ARCH)/libc++_shared.so + +all: $(LIBPJSUA_SO) java $(MY_STD_CPP) $(LIBPJSUA_SO): $(OUT_DIR)/pjsua_wrap.o - mkdir -p ../app/src/main/jniLibs/armeabi + mkdir -p ../app/src/main/jniLibs/$(TARGET_ARCH) $(PJ_CXX) -shared -o $(LIBPJSUA_SO) \ $(OUT_DIR)/pjsua_wrap.o $(OUT_DIR)/pjsua_app_callback.o \ $(MY_MODULES) \ @@ -54,3 +56,8 @@ ifneq (,$(findstring PJMEDIA_VIDEO_DEV_HAS_ANDROID=1,$(ANDROID_CFLAGS))) @echo "Copying Android camera helper components..." cp $(PJDIR)/pjmedia/src/pjmedia-videodev/android/PjCamera*.java $(MY_PACKAGE_PATH)/.. endif + +$(MY_STD_CPP): $(STD_CPP_LIB) + cp -v $< $@ + + diff --git a/pjsip-apps/src/swig/java/android/app-kotlin/src/main/java/org/pjsip/pjsua2/app_kotlin/MainActivity.kt b/pjsip-apps/src/swig/java/android/app-kotlin/src/main/java/org/pjsip/pjsua2/app_kotlin/MainActivity.kt index a89f52e557..a48e485c6b 100644 --- a/pjsip-apps/src/swig/java/android/app-kotlin/src/main/java/org/pjsip/pjsua2/app_kotlin/MainActivity.kt +++ b/pjsip-apps/src/swig/java/android/app-kotlin/src/main/java/org/pjsip/pjsua2/app_kotlin/MainActivity.kt @@ -20,10 +20,15 @@ import java.lang.ref.WeakReference /* Configs */ // Account ID -const val ACC_ID_URI = "sip:localhost" +const val ACC_DOMAIN = "pjsip.org" +const val ACC_USER = "101" +const val ACC_PASSWD = "" +const val ACC_ID_URI = "Kotlin " +const val ACC_REGISTRAR = "sip:sip.pjsip.org;transport=tls" +const val ACC_PROXY = "sip:sip.pjsip.org;lr;transport=tls" // Peer to call -const val CALL_DST_URI = "sip:192.168.1.9:6000" +const val CALL_DST_URI = "MicroSIP " // Camera ID used for video call. // Use VidDevManager::enumDev2() to get available cameras & IDs. @@ -273,8 +278,18 @@ class MainActivity : AppCompatActivity(), android.os.Handler.Callback { g.ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_UDP, sipTpConfig) + g.ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TLS, + TransportConfig()) + val accCfg = AccountConfig() accCfg.idUri = ACC_ID_URI + accCfg.regConfig.registrarUri = ACC_REGISTRAR + accCfg.sipConfig.authCreds.add( + AuthCredInfo("Digest", "*", ACC_USER, 0, + ACC_PASSWD) + ) + accCfg.sipConfig.proxies.add( ACC_PROXY ) + accCfg.videoConfig.autoShowIncoming = true accCfg.videoConfig.autoTransmitOutgoing = true accCfg.videoConfig.defaultCaptureDevice = VIDEO_CAPTURE_DEVICE_ID @@ -291,6 +306,14 @@ class MainActivity : AppCompatActivity(), android.os.Handler.Callback { } findViewById(R.id.text_info).text = "Library started" + /* Prioritize AMR-WB */ + try { + g.ep.codecSetPriority("AMR-WB", 255) + g.ep.codecSetPriority("AMR/8000", 254) + } catch (e: Exception) { + println(e) + } + /* Fix camera orientation to portrait mode (for front camera) */ try { g.ep.vidDevManager().setCaptureOrient(VIDEO_CAPTURE_DEVICE_ID, @@ -306,8 +329,10 @@ class MainActivity : AppCompatActivity(), android.os.Handler.Callback { } } var vcp = g.ep.getVideoCodecParam(codecId) - vcp.encFmt.width = 240 - vcp.encFmt.height = 320 + vcp.encFmt.width = 480 + vcp.encFmt.height = 640 + vcp.encFmt.avgBps = 1024000 + vcp.encFmt.maxBps = 5000000 g.ep.setVideoCodecParam(codecId, vcp) } catch (e: Exception) { println(e)