Giter VIP home page Giter VIP logo

baresip-android's Introduction

baresip-android

Baresip for Android

This project shows how to build baresip for Android NDK. Baresip is a modular SIP-client with audio/video support that supports many target platforms. Baresip can be used as a standalone console application, or as a powerful toolkit (libbaresip) for 3rd-party applications.

Supported NDKs

NDK: Supported:
r18 No
r17 Yes
r16 Yes
r15 Yes
r14 Yes
r13 No

Step 1 - download source code

Download baresip/librem/libre source from creytiv.com [1]

$ wget http://www.creytiv.com/pub/baresip-0.5.9.tar.gz
$ wget http://www.creytiv.com/pub/rem-0.5.3.tar.gz
$ wget http://www.creytiv.com/pub/re-0.5.8.tar.gz
$ wget http://www.creytiv.com/pub/retest-0.5.2.tar.gz

$ # .. and download OpenSSL source from openssl.org [2]
$ wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz

$ # .. and download Opus source from opus.org [5] (optional)
$ wget http://downloads.xiph.org/releases/opus/opus-1.1.3.tar.gz

$ # .. and download ZRTP source from github.com [7] (optional)
$ wget https://github.com/juha-h/libzrtp/archive/master.zip

$ # .. download Android NDK from [3]

Step 2 - unpack source code

unpack the source code in the current directory, or create symlinks to the source code so that you have a layout like this:

baresip/
openssl/
opus/ (optional)
libzrtp/ (optional)
re/
rem/

Step 3 - build openssl

libre depends on openssl for crypto and TLS.

$ make openssl

Step 4 - build opus, zrtp (optional)

$ make opus
$ make zrtp

Step 5 - build baresip + libs

baresip depends on librem and libre.

$ make baresip

this will create a statically linked binary in baresip/baresip

Step 6 - install baresip in Emulator or target

$ make install

this will use adb to install baresip in your configured Android emulator. you can also copy the binary to an Android device using ssh.

Run test program on Android target

$ make test

this will compile retest and install it on your configured Android device, and then run the whole test program.

Support

if you have questions or issues you are welcome to join our mailing-list [4] and contribute patches here :)

References:

baresip-android's People

Contributors

alfredh avatar juha-h avatar trampster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

baresip-android's Issues

SYSROOT does not point to root

I tried to add zrtp build to Makefile, but got into complications, because SYSROOT does not point to root, but to /usr:

SYSROOT := $(NDK_PATH)/platforms/$(PLATFORM)/arch-arm/usr

Would it be OK to remove /usr from the end and append /usr to where $(SYSROOT) is currently used?

-- Juha

Registration issue in android pie

Registration is working perfectly on below Pie(Android 9), but it fails in android pie and android 10 with authentication issue.

JNIEXPORT jint JNICALL
Java_com_iotran_ioconnect_voipmodels_Api_ua_1register(JNIEnv *env, jobject thiz, jstring javaUA) {
const char *native_ua = (*env)->GetStringUTFChars(env, javaUA, 0);
struct ua *ua = (struct ua *) strtoul(native_ua, NULL, 10);
(*env)->ReleaseStringUTFChars(env, javaUA, native_ua);
LOGD("registering UA '%s'\n", native_ua);
return ua_register(ua);
}

above function should return zero but it returns non-zero value '22'

retest not available

The sources for retest are not available anymore. Any advise on how to create a test program for android?

Android libre not sending big sdp (around 1670 bytes)

Im using libre for an android sip client. I have observed that is not sending big sdp(1670 bytes) when i test with tcp or udp. Is there any setting to be done specfic for android? I tested with a sample app in linux and its working fine.
How to debug the libre sip stack.?

Notification for unregistered usage.

To save battery I'd like to just be able to start calls and not receive calls.
I have added a sip server and do not register. Do I still need the notification? If not can you please add an option to disable the notification? I use sip only for long distance calls noone is calling this number ever.

Connect sip over websocket

Hi people, i'm try to connect with Android ndk but i'm new in this topic.

i have two questions.

  1. Exist any documentation for use the library in C?

  2. i am try to use the next functions to connect with websocket.

CREATE AGENT-->

static const char* AUDIO_CODECS = "PCMU/8000/1";
static const char* VIDEO_CODECS = "h264";
static const char* DEFAULT_TRANSPORT = "ws";
static const int DEFAULT_LIFETIME = 7200;
  char sipChar[1024];
    memset(sipChar, 0, sizeof(sipChar));

    snprintf(sipChar, sizeof(sipChar),
             "<sip:%s:%s@%s;transport=%s>;regint=%d;regq=0.5;answermode=manual;audio_codecs=%s",
             username, password,
             sip_server, DEFAULT_TRANSPORT, DEFAULT_LIFETIME,
             AUDIO_CODECS


    );
    LOGI("AGENT: %s", sipChar);

    int err = ua_alloc(&userAgent, sipChar);
    if(err) {
        LOGI("ERROR: create_agent error! %d", err);
        return EXIT_FAILURE;
    }
    return (long) &userAgent;

CALL -->

void start_audio_call(const char* peer) {
    ua_connect(userAgent, NULL, NULL, peer, 0);
}

But return session closed: Protocol error

i'm use to example this Demo but he used only tcp protocol (https://github.com/MobiSciLab/Baresip-DemoAudioCall)

Thanks for the help.

Could not build

I am trying to run
$ make openssl

Which gives me error as below :

cd openssl &&
CXX=E:/Softs/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-g++ RANLIB=E:/Softs/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ranlib AR=E:/Softs/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ar
./Configure android-arm0v7 &&
ANDROID_DEV=E:/Softs/android-ndk-r17c/platforms/android-17/arch-arm/usr make build_libs
./Configure: line 2: exec: perl: not found
make: *** [Makefile:175: openssl] Error 127

I have gone through the ndk17 files where I cannot find "arm-linux-androideabi-gcc" this file which I think stops the command.

I am using windows system

About Android.mk file

Hi,
I'm just a beginner in Android NDK and i'm trying to implement Baresip to my project.
I followed the construction. Put 4 libraries were downloaded to jni folder.
Them go to each folder run command "make".
Now I don't know how to config Android.mk file to build share library in this. Anyone can show me some ideas?

How to publish Call Custom SIP Progress after ringing

example we got this progress,
call id: 3df4267af87c6b47
call: SIP Progress: 100 Giving a try (/)
call: SIP Progress: 180 Ringing (/)
sip:[email protected]: session closed: 486 Rejected

we want to add more progress after 180 Ringing, example

call id: 3df4267af87c6b47
call: SIP Progress: 100 Giving a try (/)
call: SIP Progress: 180 Ringing (/)
call: SIP Progress: 183 Session Progress (/)
sip:[email protected]: session closed: 486 Rejected

this was under Android Application, Also we will modify too native code as needed if needed, it must be under android app not via SIP Server, because some of reason ...

Problems with load_library on Android

Hi,
I just discovered baresip and am extremely impressed with this library!

I wanted to create a tracking issue for my issues running baresip on Android.
After building and installing, I ran ./baresip -f bs-config, and I got the following errors:

dl: mod: ./account.so (Cannot load library: load_library(linker.cpp:745): library "./account.so" not found)
module: module account.so: No such file or directory
dl: mod: ./alsa.so (Cannot load library: load_library(linker.cpp:745): library "./alsa.so" not found)
module: module alsa.so: No such file or directory

In the Makefile, the STATIC=1 var is passed to the baresip build, so I'm not sure why it's trying to load the modules.

The accounts defined in my bs-config/accounts aren't being loaded.

OPUS build needs quotes

When building on windows subsystem for linux the OPUS build fails because ProgramFiles (x86) is in the path, the open bracket is what breaks the build.

The solution is to put quotes around the variable paths.

baeresip hangs after speex call

I'm able to make success call on my Android device using audio_codecs=speex/16000,speex/8000.
When the call is termnated, I get to console

call: terminate call 'xxx' with sip:yyy

and after that baresip hangs, i.e., does not respond to anything I press on console. baresip shows in 'ps' list, but not in 'top', i.e., it is not in a CPU loop.

Any pointers on how to debug this further?

Invalid authentication password on use of %

Hi there,
Trying to set up the sip account the app is refusing to allow my password-> Invalid Authentication Password.
My password uses '%' sign.
If I remove the % sign the account data can be saved, but the account will not work.
I cannot change the password on the account.
Any solutions?

getting compilation error android-ndk-17

i am getting error while running application after all configuration done

org.gradle.execution.MultipleBuildFailures: Build completed with 1 failures.
	at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:358)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:219)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)
	at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)
	at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
	at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)
	at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
	at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
	at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:68)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:externalNativeBuildDebug'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
	at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
	at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
	... 6 more
Caused by: org.gradle.internal.UncheckedException: Build command failed.
Error while executing process /home/jenya1/Android/Sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /home/jenya1/Downloads/baresip-studio-master/app/.externalNativeBuild/cmake/debug/arm64-v8a --target baresip}

ninja: error: '/home/jenya1/Downloads/baresip-studio-master/distribution/baresip/lib/arm64-v8a/libbaresip.a', needed by '/home/jenya1/Downloads/baresip-studio-master/app/build/intermediates/cmake/debug/obj/arm64-v8a/libbaresip.so', missing and no known rule to make it

	at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:63)
	at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:801)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:768)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
	... 34 more
Caused by: Build command failed.
Error while executing process /home/jenya1/Android/Sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /home/jenya1/Downloads/baresip-studio-master/app/.externalNativeBuild/cmake/debug/arm64-v8a --target baresip}

ninja: error: '/home/jenya1/Downloads/baresip-studio-master/distribution/baresip/lib/arm64-v8a/libbaresip.a', needed by '/home/jenya1/Downloads/baresip-studio-master/app/build/intermediates/cmake/debug/obj/arm64-v8a/libbaresip.so', missing and no known rule to make it

	at com.android.build.gradle.internal.cxx.process.ProcessOutputJunction.execute(ProcessOutputJunction.kt:78)
	at com.android.build.gradle.internal.cxx.process.ProcessOutputJunction.execute(ProcessOutputJunction.kt:119)
	at com.android.build.gradle.tasks.ExternalNativeBuildTask.executeProcessBatch(ExternalNativeBuildTask.java:327)
	at com.android.build.gradle.tasks.ExternalNativeBuildTask.build(ExternalNativeBuildTask.java:195)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	... 47 more

Android unregister

Not able to release ( Unregister / Deactivate ) sip number from android app.
I am using below code to deactivate sip account.

String uri = ""; // SIP Account URL
String ua = Api.ua_alloc(uri);
Api.ua_unregister(ua);

Instructions to build video-related EXTRA_MODULES for android

Currently, the default Makefile does not seem to include any video codecs for android
EXTRA_MODULES="g711 stdio opensles dtls_srtp echo aubridge opus speex zrtp"

Any pointers in wiki or elsewhere on how to enable video-related EXTRA_MODULES ?

Audio output

Hello, i'm using baresip-android and i'm not a pro ;p ....
But i have a little problem, i saw that baresip play audio in media stream (channel) of android.
So i would like to have it in call stream to be able to enable handfree speaker and manage it from call volume.

I have no idea of where starting.
Even if somebody have a little idea of where starting, it will be nicely to help me.

thanks in advance and sorry for my english.

armv8-a build guidelines for Android platform

We would like to build for armv8-a for Android platform , Is there any guidelines available for the same ..
Any suggestion would be of great help.. Thanks

Thanking your for such nice work.
Regards
Pintu

opus codec bad voice quality

In my tests, opus coded voice quality has been very bad. Receiving opus audio works fine, but opus audio that baresip sends out is badly broken. I'm using opus_bitrate 28000.

Both G711 and G7221 work fine both ways so looks like the problem is not in opensles driver, but in opus codec itself.

Has anyone else observed this or is it only me or my devices (Anrdoid 5.1 and 7.1.1)? Any hints on how to find the cause the problem?

re.h: No such file or directory

When I am using $ sudo make install command in Ubuntu, I am getting this error
fatal error: re.h: No such file or directory.
I am using android studio

checking how to run the C preprocessor... /lib/cpp

I run make opus, error.

checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for arm-linux-androideabi-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/Users/jxy/important/baresip-src/opus':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
make: *** [opus] Error 1

My re version is v0.5.9.
I build it on macOS 10.13.6.

How to correct errors in studio 3.4

2019-08-08 17:31:44.881 10055-10055/lilin.com E/libc: Access denied finding property "net.dns1"
2019-08-08 17:31:44.881 10055-10055/lilin.com E/libc: Access denied finding property "net.dns2"
2019-08-08 17:31:44.881 10055-10055/lilin.com E/libc: Access denied finding property "net.dns3"
2019-08-08 17:31:44.881 10055-10055/lilin.com E/libc: Access denied finding property "net.dns4"
2019-08-08 17:31:44.882 10055-10072/lilin.com D/System.out.lilin: 22>
2019-08-08 17:31:44.882 10055-10072/lilin.com D/System.out.lilin: 22>linuxrt: Error in received packet
linuxrt: list: read from socket failed (Success)

i have add

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />


<uses-permission android:name="android.permission.RECORD_AUDIO" />


<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-feature  android:name="android.hardware.telephony" android:required="false" />

<uses-permission android:name="android.permission.CAMERA" />


 <uses-feature  android:name="android.hardware.camera"  android:required="false" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Makefile did not work in arm64, x86 and x86_64.

In the Makefile, compiling opus needs to use standalone toolchain, which is required to be platform-dependennt. However, in Makefile, the toolchain is constantly installed with "arm" as followed,
......
toolchain:
$(NDK_PATH)/build/tools/make_standalone_toolchain.py
--arch arm
--api $(API_LEVEL)
--install-dir $(PWD)/toolchain

The "--arch arm" needs to be changed to "x86", "x86_64" and "arm64" for different platforms.

dtmfio missing from EXTRA_MODULES

Default config created by first time start of baresip tries to load module_app dtmfio, but that module
is not complied by default by 'make baresip'. I therefore added dtmfio to Makefile EXTRA_MODULES:

EXTRA_MODULES := dtmfio g711 stdio opensles dtls_srtp echo aubridge

crash in audio.c

Sometimes upon call close, I get crash in aurx_stream_decode() function of audio.c:

********** Crash dump: **********
Build fingerprint: 'motorola/harpia/harpia:7.1.1/NPIS26.48-43-2/3:user/release-keys'
pid: 9475, tid: 9516, name: Thread-2  >>> com.tutpro.baresip <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xb5b5b5c1
Stack frame #00 pc 00074808  /data/app/com.tutpro.baresip-2/lib/arm/libbaresip.so: Routine aurx_stream_decode at /usr/src/baresip-android/baresip/src/audio.c:787

The line in question is the last one here:

	/* Process exactly one audio-frame in reverse list order */
	for (le = rx->filtl.tail; le; le = le->prev) {
		struct aufilt_dec_st *st = le->data;

I wonder if the location really is the one shown, but if it is, any idea why the crash might happen?

'make openssl' fails with android-ndk-r16b

make of openssl fails with android-ndk-r16b, which is currently the latest version. something has changed from r14b to r16b regarding include files. 'make openssl' gives:

/usr/local/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -I. -Icrypto/include -Iinclude -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_DYNAMIC_ENGINE -DOPENSSL_PIC -DOPENSSLDIR=""/usr/local/ssl"" -DENGINESDIR=""/usr/local/lib/engines-1.1"" -Wall -O3 -pthread -mandroid -fPIC --sysroot=/usr/local/android-ndk-r16b/platforms/android-17/arch-arm -Wa,--noexecstack -fPIC -DOPENSSL_USE_NODELETE -c -o crypto/aes/aes_core.o crypto/aes/aes_core.c
crypto/aes/aes_core.c:39:20: fatal error: assert.h: No such file or directory
#include <assert.h>
^
compilation terminated.

assert.h does exist in ./sysroot/usr/include/assert.h, but is not found by gcc.

Perhaps a note should be added to README.md to use android-ndk-r14b until someone figures out how to modify baresip-android Makefile.

Build architecture 64 bits

Hello thanks for this work!

i would like to build for armv8-a and x86_64 but no one of my tests was a success

some help will be really apreciate for build it.

thanks

P.S: for the moment i think the most diffictult is to build openssl for this architecture

No audio in DND mode

If I set my android phone to DND mode I can't hear anything if I start a call.
I think there is a workaround for this since other phone applications don't do this.
Would be great if you could fix this :) Great app BTW

minimal bandwidth codecs missing in android version (f-droid)

From searching the baresip issues, baresip seems to provide config file options to enable codecs that allow to reduce baresip's bandwidth requirement and provide compatibility with more low- and minimal-bandwidth sip clients.

Particularly:

#module			codec2.so
#module			ilbc.so

[ The speex codec is not among the listed options, but could still be superior to opus at the low bandwidth end, and is able to work at even lower bitrates then opus:
https://en.wikipedia.org/wiki/Opus_(audio_format)#/media/File:Opus_quality_comparison_colorblind_compatible.svg ]

is there means to turn on echo cancellation?

Issue juha-h/baresip-studio#3 was opened on my baresip-studio project regarding echo cancellation on Android. I vaguely remember that this has been discussed earlier, but could not find a trace. What are the options? I have seen mentioned Speex AEC, GStreamer, and somehow attaching Android AudioManager to the audio session.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.