kfirdm / csipsimple

Automatically exported from code.google.com/p/csipsimple
0 stars 1 forks source link

Double-ring with Google Voice #62

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Set up a Google voice account to forward to both your cell number and a SIP 
number.
2. Register the SIP account in question with cSIPSimple
3. Call your GV number.

What is the expected output? What do you see instead?

What should happen here is that you should have the choice to answer either via 
cell phone, or via SIP. At the very least you should be able to configure 
cSIPSimple to suppress the ringing of either cSIPSimple or Android's native 
dialer app. Instead, both ring, making it impossible to answer either one. 
(Phone is too busy trying to play two ringtones, etc.)

What version of the product are you using? On what operating system?

Motorola Droid (original) running Android 2.2 (Froyo).

This should be handled by introducing either a screen with two buttons labeled 
"Answer GSM/CDMA" (mine's a CDMA phone) and "Answer SIP", or by adding a new 
configuration setting "When two calls received simultaneously, assign priority 
to:", and allow the user to select between SIP and GSM/CDMA.

Original issue reported on code.google.com by pcmst...@gmail.com on 24 Jun 2010 at 8:24

GoogleCodeExporter commented 9 years ago
Ok.

Not specific to google voice in fact. Can also happen with any other GSM 
incoming call while SIP incoming call.

I have to test it to reproduce, but google voice is not available in my country 
(france). Btw, i'll try to solve it when both GSM and SIP call are incoming.
Unfortunately the only i'll be able to do is let the priority to GSM : 
I don't think that an app can control GSM calls.

Original comment by r3gis...@gmail.com on 25 Jun 2010 at 9:14

GoogleCodeExporter commented 9 years ago
There are apps on the Android market, I believe, that let you configure buttons 
(like the camera button, etc) to provide an end/ignore call function. It might 
be possible to use similar code. Regardless, a priority setting in cSIPSimple 
to default to GSM/CDMA would be much better than the current problem.

Thanks! (I'm enjoying the use of cSIPSimple even with this issue.)

By the way, you can probably sign up for a SIPGate one account (free USA number 
with incoming calls free) via a US proxy of some kind. If you did that, you 
could use the SIPGate number to register a Google Voice account. Just a thought.

Alternatively, sign up with PBXes, and add a VOIP account to that.

Original comment by pcmst...@gmail.com on 25 Jun 2010 at 7:24

GoogleCodeExporter commented 9 years ago
I think priority to GSM is a pretty good idea.  For me, a Google Voice user, I 
only want to answer calls on SIP if I have no Cellular signal anyway.

Original comment by IamTheFij on 23 Aug 2010 at 6:40

GoogleCodeExporter commented 9 years ago
Any fixes on this issue? It seems to be fixed on SipDroid, but that has 
speakerphone problems on my phone (galaxy s).

Original comment by furkansa...@gmail.com on 3 Oct 2010 at 9:00

GoogleCodeExporter commented 9 years ago
Not yet. I've to fix issue 70 first. 
I've no google voice account to be able to test this use case precisely. 
However, sounds that if I fix issue 70, this one will be also fixed. 
For now there is absolutely no control about what is the current gsm call 
state. But I know more or less how to proceed to fix the issue.
I guess that now it should raise on my priority list.... CSipSimple is very 
young compared to other existing sip software and as it was not really blocking 
- unless you are using GV with this configuration of course- I postponed this 
issue. I want to implement things the more cleanly that I can to provide users 
the best software so to avoid to do something half implemented nothing were 
done until now.

But you're right, this one and issue 70 should be fixed as soon as possible now 
=> priority changed to medium on this one and high on issue 70.

Original comment by r3gis...@gmail.com on 3 Oct 2010 at 10:53

GoogleCodeExporter commented 9 years ago
If you have time to spend, you can try 0.00-13-04. Should avoid at least the 
double ringing, but absolutely not yet finalized on that point. So that's just 
a draft that can make things better if you really need to use with GV activated 
as both sip & gsm ringer.

Original comment by r3gis...@gmail.com on 4 Oct 2010 at 5:57

GoogleCodeExporter commented 9 years ago
0.00-13-04 did not solve the double ringing issue. First my sip rings, then gsm 
rings. I can't go back to the sip, when gsm starts ringing.

Original comment by furkansa...@gmail.com on 4 Oct 2010 at 6:45

GoogleCodeExporter commented 9 years ago
OK indeed, this order is not well handled yet :)
I though that it was first gsm and then sip.

Original comment by r3gis...@gmail.com on 4 Oct 2010 at 7:23

GoogleCodeExporter commented 9 years ago
It varies based on your setup. People could, for example, use something like 
PBXes to do "follow me" type features, and they might choose to use either 
order (GSM/CDMA first, or SIP first).

(Glad to see you have the time to work on this.)

Original comment by pcmst...@gmail.com on 4 Oct 2010 at 7:48

GoogleCodeExporter commented 9 years ago
any updates to this issue?

Original comment by furkansa...@gmail.com on 18 Oct 2010 at 6:02

GoogleCodeExporter commented 9 years ago
I'll have a closer look soon. I've to do the tests with enough phone (with GSM 
connection) to test double ringing (GSM + SIP) so it I'm not able to dev the 
patch as fast as I would. That's the reason why it took me time.

Original comment by r3gis...@gmail.com on 18 Oct 2010 at 7:32

GoogleCodeExporter commented 9 years ago
Well I've just tested on my phone with latest 0.00-15-01 :
If gsm is ringing and sip incoming => gsm continues to ring and sip doesn't 
ring but show the User interface to take the call... You can choose whether you 
want to use GSM or SIP using the notification toolbar
If SIP is ringing and gsm incoming => sip stops ringing and gsm ring at his 
turn. I don't observe any overlap between rings (maybe on devices with low 
cpu?). So then I get the User interface to take the GSM call... And same thing 
you can choose with which mean you want to take the call.

If you are in SIP call => GSM will not ring since I put ringer mode to silent, 
but the user interface will be shown to allow you to take the call (a nice to 
have would be to play a little dialtone in csipsimple... but that's not 
blocking for now).
If you take the GSM call SIP will be put on Hold... when you end your gsm call 
SIP will be take back.

If you are in GSM call => SIP will not ring since I read the GSM state before 
ringing. If you take the SIP call... well you are in a style of conference 
mode.. really funny... however no technical solution to put GSM on hold... (you 
should to that by hand, but I guess that's acceptable).

That's what I tested on my Nexus One with my GSM account and one SIP account... 
trying to make things ring merely at the same time and one little bit delayed 
from the other... But in all cases works flawlessly.

I guess Google Voice makes rings your GSM account isn't it? If so should be 
fine with last version...

Can you give me feedback? Maybe logs if necessary....?

Original comment by r3gis...@gmail.com on 18 Oct 2010 at 11:13

GoogleCodeExporter commented 9 years ago
If gsm is ringing and sip incoming => gsm continues to ring and sip doesn't 
ring but show the User interface to take the call... You can choose whether you 
want to use GSM or SIP using the notification toolbar
If SIP is ringing and gsm incoming => sip stops ringing and gsm ring at his 
turn. I don't observe any overlap between rings (maybe on devices with low 
cpu?). So then I get the User interface to take the GSM call... And same thing 
you can choose with which mean you want to take the call.

How do you select SIP when GSM is ringing (the notification bar, I assume the 
bar at the top, is deactivated when there is an incoming call)?

Original comment by furkansa...@gmail.com on 19 Oct 2010 at 2:00

GoogleCodeExporter commented 9 years ago
You're right, didn't noticed that but indeed, when there is ann incoming GSM 
call, the notification bar (the bar at the top) is not expandable. So :
* You have to decline the GSM call first
* Then expand the notification bar and select the incoming SIP notification
* Answer the call.
(I'd like to provide a way to avoid point 2 but I must have a closer look about 
why GSM incoming call kill my notification screen).

Original comment by r3gis...@gmail.com on 19 Oct 2010 at 11:13

GoogleCodeExporter commented 9 years ago
That's actually not possible with google voice. When google voice forwards, it 
forwards both to SIP (gizmo) and to GSM. If you decline GSM, then that call is 
declined. You can't take it with SIP.

Original comment by furkansa...@gmail.com on 19 Oct 2010 at 7:24

GoogleCodeExporter commented 9 years ago
Oh.. that's annoying :(
In this case not sure that I can do something using public API. 
How other sip apps behaves when it double rings GSM + sip?

Original comment by r3gis...@gmail.com on 19 Oct 2010 at 7:34

GoogleCodeExporter commented 9 years ago
when there is a call, sipdroid suppresses gsm call and sipdroid interface is 
the only one available for taking the call.

Original comment by furkansa...@gmail.com on 19 Oct 2010 at 7:48

GoogleCodeExporter commented 9 years ago
Suppress? Do you mean it come on the top of the ringing GSM call? Or it simply 
avoid GSM call when there is a (ringing?) sip call? 
I'll have a look to sipdroid code but if I do something that prevent GSM calls 
it will be either only when ringing or be an option. 

Original comment by r3gis...@gmail.com on 19 Oct 2010 at 8:04

GoogleCodeExporter commented 9 years ago
pcmstr84,

What you're asking for can't be done with the Droid.  On a CDMA phone like the 
Droid, as soon as the phone starts ringing for an incoming voice call (1x 
voice, not SIP), the data network is disconnected, and won't be reconnected 
until after the phone stops ringing or you complete your call.  Thus it doesn't 
make any sense to forward your Google Voice to your mobile number and your SIP 
number: as soon as the voice number begins to ring, you lose your data 
connection and you no longer have the option of taking the call over SIP.  You 
must pre-configure your Google Voice to forward to your mobile number *or* your 
SIP number - not both.  There's no way to make the decision after a call comes 
in.  You can also use some kind of call hunting feature from your SIP provider 
or pbxes.org that can ring one number for so many seconds, and then try a 
different number if there was no answer on the first number.

Original comment by bala...@gmail.com on 30 Oct 2010 at 1:51

GoogleCodeExporter commented 9 years ago
Indeed, balazer is absolutely right with his remark (just a little bemol in 
cdma PS+CS are allowed I think, but you're right for GPRS & Edge ( 2.5 & 2.75 
G) ). 

The only way you can get your scenario is under a 3G or sup connection or wifi 
(not Edge nor GPRS, nor everything under 3G) : 
Cause with edge & gprs, when mobile CS (circuit switch) is ongoing (ringing, 
established), the PS (packet switch) is broken/suspended. 
This mobile ip technologies will make PS & CS exclude each other... 
However, the scenario is still valid for 3G, 3G+, 4G and wifi.

However, I don't really think that anyway preventing from GSM calls to be made 
is a good idea. 

What does it actually change for you if you reply with your GSM or with Wifi?? 
My guess is that it change nothing for incoming call since anyway it comes 
through google voice servers. 
In this case, it's preferable to use GSM since handover is more reliable than 
on VoIP and in both case your remote contact will pay his GSM call (or whatever 
he use to contact you). If you reply with GSM you'll pay nothing (I guess), 
while if you answer with VoIP you'll maybe (depending of your plan with your 
carrier) pay for data use .... So even... I think that replying with standard 
mobile technology could be better for you than using voip...

So maybe if it doesn't "double ring" anymore we can assume the last request 
about having the choice between sip & gsm for *incoming* call is useless to 
implement? All the more so as, once again, I don't think that dropping GSM 
calls is good for most users (and it's also not the spirit of the android sdk - 
I would say than on iphone it's even worse : this is just impossible to imagine 
;) but, well, that's the other extreme :) ).

Original comment by r3gis...@gmail.com on 1 Nov 2010 at 9:25

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Thank you for your excellent work.  Here is my situation (which I know a few 
other people, including my wife are also dealing with):

We are almost always near a WiFi network, therefore, we use prepaid GSM SIM 
cards in our Nexus One's.  Anytime SIP is available (which is almost always for 
us), we would prefer to take the SIP call since the GSM call will charge us per 
minute.  I am sure that many with even normal GSM contracts would also like to 
be able to take SIP in order to save minutes on their plans when possible.  The 
problem is that with csipsimple, the call arrives via SIP for only ~1 second, 
then the GSM call interface supercedes it and we are not able to answer via 
SIP.  

Is there any way to see how Sipdroid is making the SIP interface remain on top 
of the GSM interface and include this in csipsimple?  If this could be fixed, 
my wife and I would switch to csipsimple in a heartbeat.  As of now, we have to 
use Sipdroid in order to be able to answer via SIP when both GSM and SIP are 
incoming.

Thanks!

PS. My comment relates closely to furkansahin's suggestion above ("when there 
is a call, sipdroid suppresses gsm call and sipdroid interface is the only one 
available for taking the call.").  I just want to give a good reason for why 
this is desirable for many of us.

Original comment by sterling...@gmail.com on 8 Nov 2010 at 3:30

GoogleCodeExporter commented 9 years ago
Ok sterling, I understand the use case now !!!
I didn't thought that incoming calls could have been charged by carrier :S.
Well so the request make absolutely sense. 
I'll see what I can do to solve that point. If I found a way it will be an 
option in settings to "Prefer SIP incoming calls over GSM incoming calls"

Thx for clarification. So, I mark this as accepted, but could take a little bit 
time to be solved since I don't know what is the state of the android api on 
this use case.

Original comment by r3gis...@gmail.com on 8 Nov 2010 at 3:36

GoogleCodeExporter commented 9 years ago
Sounds great!  Again, I'd suggest we start by checking how Sipdroid is doing it 
since they seem to have figured something out.

One suggestion that might resolve the issue for everyone, while even improving 
on the way Sipdroid is currently handling things, would be the following:

Since the Android dialer cannot be dismissed without declining the call, what 
if:
1- Csipsimple comes to the front when a simultaneous SIP & GSM calls are 
received.  Thus, the GSM dialer would continue to run in the background, but 
will not visible because csipsimple has taken the focus
2- For those who want to take the call over GSM, we add a button to the 
csipsimple interface that simply dismisses the csipsimple window, allowing the 
native (/GSM) dialer to again come to the forefront.

Just an idea...

Original comment by sterling...@gmail.com on 8 Nov 2010 at 10:01

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Sipdroid is no better than csipsimple in the case of a call coming in over GSM 
and SIP at the same time. You never know which answer screen will be on top, 
and thus you really have no way to control how you'll receive the call.  I 
could find no good solution to this problem except to forward my calls to SIP 
or to the mobile, and not both.

sterling, I can offer one possible work-around:  install Tasker and the Locale 
Google Voice Set Plug. Configure Tasker with the plug-in to enable forwarding 
of your Google Voice calls to your mobile number when WiFi disconnects, and to 
disable forwarding when WiFi connects.  Naturally you will need some kind of 
mobile data connection for this to work.  So either get used to T-Mobile's 
prepaid data offerings, or switch to AT&T prepaid, which is not so bad after 
they lowered the per-minute voice rate to $0.10.  Install Droidwall to keep 
your mobile data usage low.

Original comment by bala...@gmail.com on 11 Nov 2010 at 12:28

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
balazar, thanks for your suggestion.  Sipdroid has never had any trouble taking 
priority when a call comes in over both GSM and SIP on any of the phones/OS's 
that I've tested.  As long as Sipdroid is registered, the Sipdroid window 
remains reliably on top of the native dialer.  If you are having trouble, check 
the SIP service you're dialed into (pbxes, gizmo5, etc); in some cases, the 
server will stop ringing after only a couple of rings and you will be back to 
the native dialer.  As long as the SIP server continues to ring your account 
and Sipdroid is registered, Sipdroid will maintain priority focus over the 
native dialer.

A few details in case it's helpful:
Phones tested: G1 and Nexus One (x2)
OS's tested: Donut, Eclair, Froyo
Result: As long as Sipdroid is registered (wifi connected or data available), 
the Sipdroid dialer block will be available and supercede the native dialer.

You can read about Sipdroid's implementation here under the heading "How Are 
Buttons Assigned?": http://code.google.com/p/sipdroid/wiki/FAQ

Original comment by sterling...@gmail.com on 11 Nov 2010 at 2:17

GoogleCodeExporter commented 9 years ago
Is this still an active issue? Is there work going on for solving this?

Original comment by furkansa...@gmail.com on 9 Dec 2010 at 8:14

GoogleCodeExporter commented 9 years ago
Yes still active see issue 411 & 388 that are still open and are part of the 
same thing for me. (Even if it's not clear in issue description I've that in 
mind).

I try to reduce number of issues else I'll be absolutely submerged of issue and 
none will be fixed. So I try to merge everything that is similar or take part 
of the same fix for me.

Original comment by r3gis...@gmail.com on 9 Dec 2010 at 9:54

GoogleCodeExporter commented 9 years ago
Is there any progress? I'm having this issue myself

Original comment by scottsow...@gmail.com on 25 Feb 2013 at 12:10

GoogleCodeExporter commented 9 years ago
I just found an easier way to accomplish this without (a) the risk of missing 
calls and (b) without paying for GV settings plugin for tasker.

Set up tasker to kill app -> hangouts and kill app -> hangouts dialer when 
phone is ringing. Easy peasy. I have root and gave root privilege to kill apps, 
not sure if you need root.

Now if you really need to attend incoming calls on hangouts dialer, you can 
simply put your phone in airplane mode (yes, you can use tasker to do this on 
certain conditions) so then your phone will not ring and calls will come in to 
hangouts instead.

Original comment by a...@locusenergy.com on 3 Nov 2014 at 3:55