DoubangoTelecom / imsdroid

High Quality Video SIP/IMS client for Google Android
https://doubango.org
Other
296 stars 169 forks source link

Issue with simulatenous SIP and GSM calls #508

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
a) Before posting your issue you MUST answer to the questions otherwise it
will be rejected (invalid status) by us
b) Please check the issue tacker to avoid duplication
c) Please provide network capture (wireshark) or Android log (DDMS output)
if you want quick response

What steps will reproduce the problem?
1. Make a videocall by setting H264 + GSM  call
2. Close videocall
3. Close GSM Call and app crash

What is the expected output? What do you see instead?
I expected app does not crash after GSM call stop

What version of the product are you using? On what operating system?
latest version by using the following links to download the source files:
svn checkout http://imsdroid.googlecode.com/svn/trunk/imsdroid-read-only
version 2.0 revision 836

Please provide any additional information below.
We have an app, and we want to have simultaenous calls GSM (or 3G) and SIP (to 
different destinations obviosly). We want to use the GSM voice  as a payment 
(we call to a premium number).

We can have both calls without problems, but if we hangup the SIP call and we 
try to hangup the GSM call

mAVSession.hangUpCall()

this methods calls to : 

org.doubango.ngn.sip

 public boolean hangUpCall(){

        if (super.isConnected()){

            return mSession.hangup();

        }

        else{

          return mSession.reject();

        }

    }

and in the call to  mSession.rejected() , we receives this message:

02-11 10:52:30.466: A/libc(10282): Fatal signal 11 (SIGSEGV) at 0x00000004 
(code=1), thread 10282

And the app crashes.

TRACES:

02-12 10:25:15.640: I/GLThread(3331): noticed surfaceView surface lost tid=80
02-12 10:25:15.640: W/EglHelper(3331): destroySurface()  tid=80
02-12 10:25:15.691: W/EglHelper(3331): finish() tid=80
02-12 10:25:15.710: D/com.prn.android.cuatroG.Screens.ScreenAV(3331): onStop()
02-12 10:25:15.710: V/Phone(3331): hangUpCall 1
02-12 10:25:15.710: E/tinyWRAP(3331): ***ERROR: function: 
"tsip_ssession_handle()" 
02-12 10:25:15.710: E/tinyWRAP(3331): file: "src/tsip_ssession.c" 
02-12 10:25:15.710: E/tinyWRAP(3331): line: "607" 
02-12 10:25:15.710: E/tinyWRAP(3331): MSG: Failed to find dialog with this opid 
[3]
02-12 10:25:15.710: E/tinyWRAP(3331): ***ERROR: function: 
"tsip_api_common_reject()" 
02-12 10:25:15.710: E/tinyWRAP(3331): file: "src/api/tsip_api_common.c" 
02-12 10:25:15.710: E/tinyWRAP(3331): line: "84" 
02-12 10:25:15.710: E/tinyWRAP(3331): MSG: Reject() failed.
02-12 10:25:15.710: D/com.prn.android.cuatroG.Screens.ScreenAV(3331): 
onDestroy()
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyAudioProducer(3331): 
stopCallback
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyAudioConsumer(3331): 
stopCallback
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyPluginMgr(3331): 
OnPluginDestroyed(5,twrap_proxy_plugin_audio_consumer)
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyAudioProducer(3331): 
stopCallback
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyPluginMgr(3331): 
OnPluginDestroyed(6,twrap_proxy_plugin_audio_producer)
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyVideoProducer(3331): 
stopCallback
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyVideoConsumerGL(3331): 
stopCallback
02-12 10:25:15.714: D/org.doubango.ngn.media.NgnProxyPluginMgr(3331): 
OnPluginDestroyed(7,twrap_proxy_plugin_video_consumer)
02-12 10:25:15.757: D/dalvikvm(3331): GC_EXPLICIT freed 1228K, 52% free 
4926K/10119K, external 7763K/8363K, paused 32ms
02-12 10:25:15.761: D/org.doubango.ngn.media.NgnProxyPluginMgr(3331): 
OnPluginDestroyed(8,twrap_proxy_plugin_video_producer)
02-12 10:25:15.788: D/dalvikvm(3331): GC_EXPLICIT freed 546K, 57% free 
4380K/10119K, external 7763K/8363K, paused 31ms
02-12 10:25:15.792: D/org.doubango.ngn.sip.NgnSipSession(3331): mRefCount=0
02-12 10:25:17.124: I/dalvikvm(3331): Jit: resizing JitTable from 4096 to 8192
02-12 10:25:19.019: V/Phone(3331): Broadcast receive
02-12 10:25:19.019: V/Phone(3331): State idle
02-12 10:25:19.019: V/Phone(3331): hangUpCall 1
02-12 10:25:21.550: I/dalvikvm(3331): threadid=4: reacting to signal 3
02-12 10:25:21.558: I/dalvikvm(3331): Wrote stack traces to 
'/data/anr/traces.txt'

Original issue reported on code.google.com by csan...@imagine800.es on 12 Feb 2014 at 9:33

GoogleCodeExporter commented 9 years ago
The logs are incomplete. Please reproduce the crash and use android log 
collector 
(https://play.google.com/store/apps/details?id=com.xtralogic.android.logcollecto
r) to collect the logs.
Are you able to build Doubango binaries by yourself? If yes, rebuild them with 
"DEBUG=yes" argument and use these libraries to reproduce the issue. Otherwise, 
I'll share debug binaries.

Original comment by boss...@yahoo.fr on 12 Feb 2014 at 11:11

GoogleCodeExporter commented 9 years ago
Could you send me the binaries? 

I was trying to compile the code following the wiki post, but it was 
impossible. 
Thank you.

Original comment by csan...@imagine800.es on 13 Feb 2014 at 10:22

GoogleCodeExporter commented 9 years ago
https://code.google.com/p/imsdroid/source/browse/#svn%2Fbranches%2F2.0%2Fnative-
debug%2Flibs

Original comment by boss...@yahoo.fr on 13 Feb 2014 at 12:24

GoogleCodeExporter commented 9 years ago
No way to reproduce the issue using difference devices: Galaxy SI, SII, SIII...
- You said you're using r836 but this is not the latest Doubango revision. I 
asked in my email to use the latest IMSDroid source.
- We also asked for information about your device type and Android version but 
you're not proving them
- You're talking about GSM call and we though it was circuit switched call but 
now I've some doubts as you're ending the call using Doubango API. What do you 
mean by GSM call?  

Original comment by boss...@yahoo.fr on 17 Feb 2014 at 2:33

GoogleCodeExporter commented 9 years ago
Hi,

we`re ussing latest version by using the following links to download the source 
files:
svn checkout http://imsdroid.googlecode.com/svn/trunk/imsdroid-read-only

and  Manifest show me these  lines

 <application android:icon="@drawable/icon" android:name="NgnApplication" android:label="@string/app_name" android:hardwareAccelerated="true">
    <string name="doubango_revision">836</string>
    <service android:name="NgnNativeService"/>

I've checked the app using various devices (Galaxy S, Galaxy Note,  Generic 
Android, but traces are only from Galaxy S

Log Collector version: 1.2.0
Device model: GT-I9000
Firmware version: 2.3.5
Kernel version: 2.6.35.7-I9000BVJVC-CL679241
root@DELL138 )
#2 PREEMPT Fri Oct 21 18:21:40 KST 2011
Build number: GINGERBREAD.BVJVC

we end the GSM call using the button to end calls in the notification bar. 
Do not hang the GSM call from the doubango api but when the GSM call finish we 
check that there is no ongoing call sip using hangUpCall method.

BR.

Original comment by csan...@imagine800.es on 17 Feb 2014 at 9:21

GoogleCodeExporter commented 9 years ago
Something doesn't make sense.
You said in your first message "3. Close GSM Call and app crash" which means 
closing the GSM call causes the crash. But you also say "and in the call to  
mSession.rejected() , we receives this message Fatal signal 11...." which means 
closing the SIP message causes the crash.
Before step 3 there is step 2 and you described it as "2. Close videocall" 
which means you ended the call. Why are calling reject() again? By "close 
videocall" do you mean hangup or just close the screen?
You're still not giving responses to our questions. e.g "What do you mean by 
GSM call?"
You should provide a clear description about what you're doing.

Original comment by boss...@yahoo.fr on 17 Feb 2014 at 9:31

GoogleCodeExporter commented 9 years ago
hi,

A GSM call is a circuit switched (Global System for Mobile Communications).

we use a gsm call  as a payment (ACTION_DIAL intent), when the call is 
established we make a sip session.
so, there are two calls, a gsm call and a sip call.

then, users can finish sip session but gsm call is still active.

When user finish the gsm call, a broadcast receiver check if there is a sip 
session active using hangUpCall method in org.doubango.ngn.sip

public boolean hangUpCall(){
        if (super.isConnected()){
            return mSession.hangup();
        }
        else{
          return mSession.reject();
        }
    }

if the sip  call is active, the application hangs up, but, if sip call is not 
active reject  reject method causes a crash.

BR.

Original comment by csan...@imagine800.es on 17 Feb 2014 at 11:08

GoogleCodeExporter commented 9 years ago
Should be fixed by r560.

Original comment by boss...@yahoo.fr on 18 Feb 2014 at 7:05

GoogleCodeExporter commented 9 years ago
boss:
when will edit the last imsdroid-2.548.870.apk  to verfy r560?
thanks ,it is useful

Original comment by unico...@gmail.com on 14 Apr 2014 at 4:04

GoogleCodeExporter commented 9 years ago
where i can found r560 ,and download it?thanx

Original comment by unico...@gmail.com on 14 Apr 2014 at 7:13