Skip to content

Instantly share code, notes, and snippets.

@garronej
Last active November 3, 2017 03:25
Show Gist options
  • Save garronej/fdc8d22a232d974ee9b1bd71c409f1f7 to your computer and use it in GitHub Desktop.
Save garronej/fdc8d22a232d974ee9b1bd71c409f1f7 to your computer and use it in GitHub Desktop.
Hi Linphone team,
I would like to notify you that there is a bug in linphone coreapi that
cause the android version of linphone to crash after remote provisioning.
Here is the crash dump:
********** Crash dump: **********
Build fingerprint: 'samsung/jfltexx/jflte:4.4.2/KOT49H/I9505XXUGNJ8:user/release-keys'
pid: 20955, tid: 20964, name: FinalizerDaemon >>> com.linphone.android <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00001f40
Stack frame #00 pc 00001f40 <unknown>
Stack frame #01 pc 002cf8df /data/app-lib/com.linphone.android-1/liblinphone.so: Routine _linphone_account_creator_destroy(_LinphoneAccountCreator*) at /home/joseph/github/linphone/submodules/linphone/coreapi/account_creator.c:268 (discriminator 1)
Stack frame #02 pc 00335605 /data/app-lib/com.linphone.android-1/liblinphone.so (belle_sip_object_delete+120): Routine belle_sip_object_delete at /home/joseph/github/linphone/submodules/belle-sip/src/belle_sip_object.c:232 (discriminator 1)
Stack frame #03 pc 00020d4c /system/lib/libdvm.so (dvmPlatformInvoke+112)
Stack frame #04 pc 000519ef /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
Stack frame #05 pc 000533d1 /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+184)
Stack frame #06 pc 0002a1e0 /system/lib/libdvm.so
Stack frame #07 pc 00031690 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
Stack frame #08 pc 0002ed28 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
Stack frame #09 pc 00063e55 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
Stack frame #10 pc 00063e79 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
Stack frame #11 pc 00058b4b /system/lib/libdvm.so
Stack frame #12 pc 0000d278 /system/lib/libc.so (__thread_entry+72)
Stack frame #13 pc 0000d410 /system/lib/libc.so (pthread_create+240)
Crash dump is completed
I just commented the line:
linphone_account_creator_service_get_destructor_cb(creator->service)(creator);
as it aprear that service->account_creator_service_destructor_cb is never set anyway.
My guess is that the service object is not instanciated properly as service->account_creator_service_destructor_cb should be NULL am I right?
With this line commented the app does not crash after LinphoneManager restartLinphoneCore is beeing called but an other problem apear.
Everything seems to be working fine but after linphone core have been restarted the App is no longer able to put itself in the forground.
Meaning that if a call or a message land the phone will ring but the screen will not light up and linphone will remain in the backgroud.
I thought that I would try to reach you before messing any further with the core API.
I hope to hear back from you.
Thank you for your great work.
Joseph Garrone
[email protected]
Tel: 06 36 78 63 85
PS: I seize the opportunity to notify you of two important bugs that I found out:
Bug 1):
In the core API: nat_policy.c
There is a problem with ice server DNS resolution, the function linphone_nat_policy_resolve_stun_server is not called when it should.
As a result policy->stun_addrinfo is NULL when linphone_nat_policy_get_stun_server_addrinfo is called.
The problem is critical as linphone_nat_policy_get_stun_server_addrinfo fail to resole the servers on incoming calls it, just whait until the
wait_limit is reached, conclude that the resolution have failed and return NULL. The STUNS server are then resolved but to late.
https://gist.github.com/garronej/dce9ca27f8d658511b807d2e9fd99717
0001-fix-ice-server-DNS-resolve.patch is the patch I applyed to fix the issue but I am shure you will want to fix it in an other way.
Bug 2):
In linphone-android: src/android/org/linphone/ContactsManager.java
In the contact fragment, when you click on Sip contact icon nothing apear if it's the first launch of the app.
https://user-images.githubusercontent.com/6702424/32359411-2d5e6e90-c04e-11e7-9776-807ca419faaf.png
I fixed it just by adding the line in the screenshot.
@garronej
Copy link
Author

garronej commented Nov 3, 2017

fix_linphone_sip_contacts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment