sonuarya / csipsimple

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

Tablet : Integration with stock tel intents #1528

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Go to contacts
2. Click a phonenumber
3. It opens skype

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

I would like to see a choice of application, but csipsimple doesnt seem to be 
registered

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

Android 4.0.3 - Asus Transformer Prime
csipsimple r1108 from the Market

Please provide any additional information below.

Original issue reported on code.google.com by peter.ha...@gmail.com on 22 Jan 2012 at 12:53

GoogleCodeExporter commented 9 years ago
Thanks for the report.

That's because of the way csipsimple registers to the outgoing call stuff. It's 
very fancy way for phones because it allow a seemless integration to GSM calls 
(it allows to choose and rewrite on the fly).

However, on tablet, since the intent I register on is never fired, CSipSimple 
never raise. It only raise another intent that should not really be registered 
on in telephony case but that skype use. That's why skype raise on the tablet 
and not csipsimple.
On the other side, skype can't do the filtering rewriting stuff on mobile. They 
also force the prompt of a native android popup to ask user to choose between 
dialer and skype (this may always prompt regardless of any filtering rule).
With other words what skype does is registering as an app for making a tel:xxxx 
call. While csipsimple registers for processing the tel:xxxx when sent as an 
make call.

Normally a clean fix will be to register on the fly to the root telephony 
intent if there is no gsm available on the phone (and only in this case).
I can also easily do a build that behaves as skype. But that will give a very 
bad user experience on phones.

Original comment by r3gis...@gmail.com on 23 Jan 2012 at 9:16

GoogleCodeExporter commented 9 years ago
Ok, I get it. So, I'm not that far yet with programming Android, but would it 
be possible to make that a preferences setting? Or is it not possible to make 
that intent behaviour, like skype does in this case, configurable?

Original comment by peter.ha...@gmail.com on 25 Jan 2012 at 10:52

GoogleCodeExporter commented 9 years ago
That's a very good question.

I didn't explored yet this field.

The normal way to register these kind of intent is to declare it in a manifest 
file of the project. Which make things pretty static.

However it's sometimes possible to dynamically register an intent. But I don't 
know if it's possible for this telephone intent. That's why I accepted the 
issue because I have to try to dive into this problem and find the best 
solution.

There is also maybe other technical ways that could lead to same result. So I 
should dive in android source code once again :). 
The process to make call in android is tricky because it involves several apps, 
and there is maybe a way to integrate that could lead to better user 
experience. So it's worth to have a close look on how it's done on 3.0 & 4.0 
android source code :)

Original comment by r3gis...@gmail.com on 26 Jan 2012 at 1:32

GoogleCodeExporter commented 9 years ago
BTW, if no sexy solution can be found, we've still the solution to distribute a 
very simple plugin (for non telephonic devices) that just register statically 
to tel intent, and forward that to csipsimple into a sip intent (which is also 
understood). It should not be too hard to do besides :). 

But the first thing to try is to get it inside the app I think :)

Original comment by r3gis...@gmail.com on 26 Jan 2012 at 1:35

GoogleCodeExporter commented 9 years ago
There is progress on this issue?

Original comment by waleryda...@gmail.com on 10 Feb 2012 at 5:02

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r1255.

Original comment by r3gis...@gmail.com on 10 Feb 2012 at 1:09

GoogleCodeExporter commented 9 years ago
Some test fix that will be produced in tonight build.
I didn't had time to test on my tablet (I'll be able only this week end).
But if one of you have time to test before, feel free to do, but not unit 
tested on my side. 
I know that there is a technical way to do that now. The point is more about 
detection of the fact there is or not a stock app registered to the "tel:" 
intents

Original comment by r3gis...@gmail.com on 10 Feb 2012 at 1:11

GoogleCodeExporter commented 9 years ago
I installed the nightly build, but not sure if I should do something to the 
settings or not. At least, with just installing it, it still opens just skype 
when pressing a phone number. But I might be overlooking something

Original comment by peter.ha...@gmail.com on 11 Feb 2012 at 9:26

GoogleCodeExporter commented 9 years ago
Ok, same on my honeycomb tablet and regarding android 4.0 source code seems to 
be normal.

Just some precision I need to be sure it will goes the same on android 4.0,

When you are in the contact view, it shows the sms icon instead of the phone 
icon isn't it?

If it shows the phone icon, you have probably a popup choice after that to 
allow you to choose between dialer and skype. 

If not, maybe you have forced the choice to be by default skype (to check that 
go in android application management, go in skype and check if the 'reset 
default actions' button is enabled or not (if enabled you probably tell skype 
to be the default for something).

In fact, I'll have some fix for android 3.0 without gsm because I'm able to 
test it on a real device, but I really need your details for android 4.0 
because I can read the source code of android 4.0 but I'm not sure of what are 
the values on your device. On my asus transformer in 3.0 it seems in line with 
android source code.

But the fact that skype is able to launch seems to me possible *only* if they 
register the SMS intent, which sounds a crappy way to do that... but well if no 
other choice...

Original comment by r3gis...@gmail.com on 11 Feb 2012 at 12:56

GoogleCodeExporter commented 9 years ago
actually, in the contacts it shows no icons. Its the stock contact app that the 
Asus Transformer Prime delivers. is that the default one? At least no icons, 
but maybe because he only sees skype. I checked but skype is not set as a 
default action.

On opening a contact in the stock app, it shows 'connections' which shows skype 
and then chatting, calling, messages. Maybe this should show your app to. You 
know ,what i mean? Or would you like a screenshot?

I found another minor issue. in holland its quite common to write telephone 
numbers with spaces in it. i can call these numbers. Is it an option to remove 
the spaces on making the call?

Original comment by peter.ha...@gmail.com on 11 Feb 2012 at 2:02

GoogleCodeExporter commented 9 years ago
Yes if you have a screenshot of the contact app it would be helpful

I don't really matter of skype app. 
But the way it appears in the stock contact application will be very helpful 
:). 

You can send it directly by mail because we run out of attachment space here : 
developers [at] csipsimple.com

Original comment by r3gis...@gmail.com on 11 Feb 2012 at 2:34

GoogleCodeExporter commented 9 years ago
On my ASUS Transformer clicking on a contact it is still Skype that is coming 
up instead of CSS. No choices or popups but directly into Skype, even if Skype 
is not connected and CSS is.

Original comment by onno.ta...@gmail.com on 12 Feb 2012 at 10:57

GoogleCodeExporter commented 9 years ago
Regarding feedback of Peter, it seems that skype actually add some fake contact 
with some "skype:" protocol uris. 
So they don't really handle the "tel:" intent... they just add some additional 
infos to the contact...

You can just do the same with csipsimple by adding a sip: uri to your contact 
(either adding an internet call entry, or an im entry with custom protocol 
"sip" or "csip").

Future version of csipsimple will allow to apply some batch on contacts (as 
apparently skype does without asking your for choosing that...) to create 
"csip" uris from phone numbers. But that's actually faking the integration ;).

However, next nightly build will include some change to make csipsimple 
register as a sms app if I detect that the android platform does not support 
phone calls.
Regarding android source code of the contact application, this is the only way 
to *cleanly* integrated telephone number intent.
I tested on my asus transformer 1 that is still under android 3.0. The nightly 
build will be produced in a couple of minutes, if you can test on 4.0 and tell 
me how it goes will be welcome ;)

Thanks for the feedback.

Original comment by r3gis...@gmail.com on 12 Feb 2012 at 11:10

GoogleCodeExporter commented 9 years ago
The latest build is working fine! When you click in the contact list offers a 
selection of phone numbers you call - skype or csipsimple.

Original comment by waleryda...@gmail.com on 13 Feb 2012 at 3:18

GoogleCodeExporter commented 9 years ago
yeah! The last build indeed asks which one to use! Perfect!

Original comment by peter.ha...@gmail.com on 13 Feb 2012 at 8:38

GoogleCodeExporter commented 9 years ago
Ok great news :).

Well it's not as clean as I would have expected from google engineers. But 
regarding their code only way to do that :/.
I hope that it will not introduce side effects since it registers on the "sms" 
intents. Do not hesitate to report if you find some weird side effect with that.

Thanks a lot for your time testing and reporting the issue. It's the way the 
app will become better ;)

Original comment by r3gis...@gmail.com on 13 Feb 2012 at 9:26

GoogleCodeExporter commented 9 years ago
Great. Thanks for this great work. 

Only one small thing that I am curious about. After choosing CSS it also ask 
for CSS and Mobile. On my Transformer 1 there is no Mobile. Choosing Mobile it 
returns me to Contacts for adding the number as a new contact.

In CSS I can choose between VoIP and Mobile as a standard for outgoing but I 
can't find a setting that disables Mobile. Settings are: WIFI only, 3G, GPRS 
and Edge are all disabled. Using other networks is always up. Very strange.

Original comment by onno.ta...@gmail.com on 13 Feb 2012 at 9:55

GoogleCodeExporter commented 9 years ago
Ok, that's parts of the side effect :)

In fact mobile is just about the fact csipsimple detects a phone application 
that actually exists on the tablet apparently but has just the feature 'phone' 
disabled which made it behaves a different way.

In this case, there is a very simple workaround that you can apply. Since you 
don't want to use the "application" telephony, you can add a csipsimple filter 
to exclude gsm from outgoing means :)
The filtering/rewriting rule is very powerful for this kind of stuff.
Go in settings, filters, press the mobile row and add a filter 'don't call' 
with matching "all"

That's it :)

You can also create rules for skype if you download and install the csipsimple 
skype plugin available on the nightly website (it in plugin folder)

Original comment by r3gis...@gmail.com on 13 Feb 2012 at 10:12

GoogleCodeExporter commented 9 years ago
Oddly enough, integration with the contacts (now listed as Google People) 
doesn't appear to work on my Google Nexus 7 tablet. When I installed Skype, it 
came up automatically, but I installed the latest nightly of CSS, and it did 
not present me an option to use CSS instead of Skype. I removed Skype, blew 
away the defaults for CSS and reinstalled it, and still nothing. Now with the 
GV app and no Skype, it goes to compose a SMS through GV. But I still can't get 
the CSS integration. I'd appreciate any thoughts.

Original comment by Spurfa...@gmail.com on 18 Jul 2012 at 4:09

GoogleCodeExporter commented 9 years ago
@spurfan : Can you try to do :
Install latest nightly build (if you reverted meanwhile to market version).
Go in settings, press menu key and select expert mode.
Then go in user interface section.
Here you have two options. One is Activate integration and the other is 
Integrate privileged intent. Deactivate the first one (simple integration), and 
activate the "integrate privileged intent". Go back to dialer to save.

Maybe you'll need to kill and restart the contact app (so that it detects there 
is a new app able to manage privileged intents). This new setting make 
CSipSimple integrates the same way skype, viber and some other voip client 
does. It should be activated for non phone devices, however since I've not yet 
a Nexus 7 on my hands I'm not able to do the auto-detection of it ;). As soon 
as I'll received it I'll add autodetection so that you'll not need the complex 
manual setting above ;).

Let me know how it goes.

Original comment by r3gis...@gmail.com on 18 Jul 2012 at 8:01

GoogleCodeExporter commented 9 years ago
That worked perfectly! Thanks :).

Original comment by Spurfa...@gmail.com on 19 Jul 2012 at 6:29