My friend has a dual sim Lava iris 405 and i have samsung galaxy s3. we both have installed the TextSecure when i start secure session, it sends Key exchange message and its received in my friends. After that it says Received and processed key exchange message but he is unable to send me any message, it says error sending. i know its giving problem because its a dual sim phone, text secure app is not able to send sms from particular sim and giving this error. Is dual sim phone supported by textSecure?
There is also lack of the support of selecting which number should be used for sending a message. It seems it is also impossible to merge identities together and share a key for multiple phone numbers?
Yes, you are right mitar. I have seen no possibility to this..
related to issue #531, seems to be a general issue with any kind of context around multiple numbers on a single device
I also have dual sim, same error not sending. No facility to select which number/sim to send from
Multi-SIM hardware does not appear to be officially supported by Android in any way right now, unfortunately. Any work we do on this would have no guarantee of working with future releases. There is a SO for using reflection to detect multiple SIMs, so it is possible to at least give a warning of issues with multi SIM devices.
Does sending work in other messaging apps, but not TextSecure in particular? I'm curious to see if other apps have worked this out...
For me it works on dual SIM to send and receive unencrypted messages from the default SIM. But I just cannot select from which SIM I want to send. I am also not sure how my identities will match to numbers.
Yeah, Android doesn't provide any way to do that officially, and implementations of more than one SIM are manufacturer-specific, so probably wouldn't even work on all dual-sim devices when added to TextSecure. If you check out TelephonyManager, all they offer is getLine1Number() for the phone (yes, you might expect getLine2Number(), or getAllLineNumbers(), but nope).
It may be most useful to star https://code.google.com/p/android/issues/detail?id=14799 and prod Google to standardize this whole thing. I don't know that another hardware-specific implementation is the right answer, even if it is open.
It seems mitar is correct. I am having issues at the moment with one of my carrier. As soon as I changed primary carrier under dual sim settings, the message pushed thru. I was planning to attach a pic of my standard sms image but I dont think it is possible here. Basically I have 2 buttons instead of 1 for sending sms - Send1 and Send2. I hope this info would help developers
@mcginty I have tested a few secured sms apps, of which all have no dual sim support.
Also initialization messages should be sent from the same number they are received on.
Most of sms applications, which support dual sim, use a system of two buttons to send the sms. But the native application of my phone does not. When I enter the application (sms or address book) the android system [itself] knows that these applications use the sim card. When I'm in one of those applications and go down the notifications bar there appears to choose the sim card. All dual sim I had (5) worked this way. Could this be a better approach?
Same question. My phone provides dedicated buttons in the phonebook/text app per SIM card.
Hi. Are there any news? Does anybody working on this?
Any news?
The news is that Android still doesn't offer API support for dual-sim devices.
There is this branch: https://android-review.googlesource.com/#/q/topic:bcm_ds
The news is that Android still doesn't offer API support for dual-sim devices.
@moxie0, Hangouts allows you to choose between your provider's number and your Google Voice number from a conversation (also re: #1291)
Android just announced support for multi-SIM devices in Android 5.1 so this may become a more pressing issue
http://officialandroid.blogspot.ca/2015/03/android-51-unwrapping-new-lollipop.html
Thanks for the link @James-Firth! Will take a look when the new SDK is released.
Multi-SIM support is now official, well-documented, and SDK 22 is available.
I know, this is not a priority task, but if you're interested in this feature I'm willing to try spending some free weekend time, contributing. However, before doing so I would like to discuss and understand decide how it's best to structure things.
The primary question is whenever each subscription identity (SIM) should be a considered a separate identity in TextSecure, or all accounts on the phone should share the same. This is important, because it defines how the data model should be modified - i.e. whenever I'll have to just add SIM card information to SmsDatabase (and propagate this data througout the app), or modifications should be more complex to the extent IdentityKeyUtil won't be static/singleton anymore, etc etc.
Ideally we would only allow one number to be registered with TS, and leave the multi-SIM stuff as SMS-only?
I guess it would be best to allow the user to register both numbers, but that makes it more complicated, no?
That would be pretty complicated. The app would need to duplicate everything per profile, with an identity switcher. Separate thread db, separate sms db, separate address db, separate mms db, and then somehow manage notifications across them.
I can think of 2 common usecases of multi-SIM phones:
For the first one I think its fine to limit the registration to one sim, but the second have to finally decide which number they want registered.
I don't know the status of registration without a phonenumber, but this affects the situation also.
There's a third use case, although I guess it's rarer than two mentioned above: local/roaming. User may visit another region/country and get local SIM for cheaper calls and data, but still consider having their "home" SIM online. This is how I live ;) In this scenario, given that everyone knows that I just have multiple phone numbers (in my case it's non-private information), maybe one SIM could be considered as an alias to the other without necessity to duplicate databases.
Either way, I guess it makes sense to keep the initial modifications small and simple and provide TextSecure functionality for single phone number (as selected at initial setup) while keeping secondary one(s) fully functional but SMS-only. Or, maybe, as an alias, if server-side would support this. This way it would be simple to have basic multi-SIM support for users who have problems using TextSecure because of lack of control over which SIM sends messages and display which SIM received one.
Then, at some later time, further enhancements (possibly, even duplication of identity database) could be considered depending on user feedback.
@drdaeman in this usecase registering the main number is enough, no? You can still use push messages while roaming using the data channel of the second card. You don't have to register that number...
Yes, you're right.
I was just thinking about contacts. For example, my old peers know me by phone number 1 ("home"), but new peers know my number 2 ("local"). So, I think, it would greatly benefit if there'd be an option for both numbers to be usable for secure communications. Don't know if this is possible to do in a secure manner, though.
@fischerling @drdaeman I have the same dual sim setup (two national numbers).
Any news?
With upcoming really popular devices that contain dual-sim support (namely the OnePlus Two) there should at least be the first option that TextSecure can use the correct SIM for the one registered number. :+1:
@kmindi
Wow, sounds like good news!
I meant i'm expecting development, not that I am working on this.
@kmindi Makes the news a bit less good ;-)
I have an ASUS Zenfone 2. Lollipop. There are two models with Dual SIM: $299 and $199 off contract. ASUS' Messaging and Dialer apps support choosing a SIM at time of call or message, or choosing a default. Dual SIMs are becoming more common. I hope something can be figured out. I can't really use TS effectively on this phone, unless I remove one of the SIMs.
The problem also exists on a Oneplus Two.
I have a oneplus 2, and signal (or TextSecure) is working (at least the encrypted messaging) BUT I have only one SIM installed, and have no spare SIM to test it with two SIMs right now.
kmindi, just to describe the "two-SIM-usage" on the OPT: On the Oneplus Two the default messaging app "Messenger" is able to use both SIMs as sender (just tested it). With Signal I can receive all SMS to both numbers but only send from one SIM card. Encrypted messenges cannot even be received by both numbers since one has to register one mobile number.
Does the movement to the 3.7.0 milestone indicate that this is going to be supported soon, or simply that it's getting pushed forward for now? Very impressed with Signal, thank you; dual sim support is essential though as I cannot even use signal as default sms as it makes default messaging unable to use either sim. Asus Zenfone 2
As has been mentioned, I think it'd be perfectly usable to keep sim 2 as an unencrypted line out; my sim2 is 2g, so it can't use signal-would just be nice if I could still use both Sims from within signal
I really love Signal its concepts and its security. But missing dual sim support makes it nearly unusable for me. I was waiting with high hopes for 3.7 but now that it is out and no dual sim support is in I checked back here and I have sadly seen that this - in my eyes - very vital feature now has no milestone anymore makes me quite sad.
Is there any plan when Signal will receive dual sim support now?
@Rosch This is an issue tracker not a discussion forum, please don't post here unless you have new information to add.
I don't see this discussed above, but on my dual-SIM device I'd like to be able to see which number/SIM any given incoming message was received on. My uninformed guess is that this improvement might be much simpler to implement than the others being discussed.
If you prefer that I open this as a separate issue, just let me know.
:+1:
@mach-o & @he7d3r Just opened a new issue on this: https://github.com/WhisperSystems/Signal-Android/issues/5145
I am willing to contribute some of my time in order to document the current dual-sim related functionality of Signal for Android (previously TextSecure) - the wiki currently has no information about this AFAIK. If this proposal is welcome, I would need some more technical information about the current functionality:
Could the developers please provide the following information to assist my documentation efforts:
I am also willing to document further dual-sim related information, as deemed suitable.
If anyone wants to look into this, Android now supposedly has dual SIM support at the API level, but all I see is a class that allows you to enumerate the SIM cards on the device. It's not clear to me how one would actually send an SMS (or particularly an MMS!) from one SIM or another. If anyone wants to experiment with that and report back, it'd be helpful for getting this done.
@johannesjh 1 → yes, 3a → yes, 3b → yes, 3c → yes, the default SIM, 3d → yes
@moxie0 This commit could help: https://github.com/android/platform_packages_apps_mms/commit/a277f438d33872b9a0f1611fb8a86a918765f04b. Unfortunately, I don't know why this is a revert and where is the current source for the builtin SMS app.
Thank you for your research! I started documenting the current functionality in the following gist; could you please provide feedback, thanks!
https://gist.github.com/johannesjh/21930f4039b377b7d975
@johannesjh None of that is necessary, we already have it mapped out. Again, if you would like to see dual SIM support, what we need is the information on how to actually do that at the API level: how to send MMS from multiple SIMS, for example.
The primary issue I see is that most dual sim phones only have one 3g/4g
sim; the second sim is usually only 2g, and thus can't be used as a signal
interface. Still, if signal would clearly indicate the sim card which
received a message that would be better than nothing
On Feb 3, 2016 4:31 PM, "Moxie Marlinspike" [email protected]
wrote:
@johannesjh https://github.com/johannesjh None of that is necessary, we
already have it mapped out. Again, if you would like to see dual SIM
support, what we need is the information on how to actually do that at the
API level: how to send MMS from multiple SIMS, for example.—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-179480619
.
@mollusko I don't understand why the second SIM couldn't be used as signal interface. Is it about transfering the data? It shouldn't matter through which SIM that is going.
I myself use signal on my second SIM and it works fine except for the known restrictions.
@moxie0 Ok, I searched for code examples on how to send SMS on dual sim phones. I found the following, detailed example on http://stackoverflow.com/a/30677542
Note that the answer on Stackoverflow provides a lot of additional information, including how to query a database table with information on sim cards and on how to use vendor specific APIs on devices with Android < 5.1. But, most importantly, it also provides an example on how to send SMS using the official dual sim APIs that are available since Android 5.1:
I have seen that Android 22 supports multi sim cards from Android 5.1 and here is how to use it .. unfortunately I don't have device with that version for testing, so please for feedback:
SmsManager.getSmsManagerForSubscriptionId(int` subscriptionId).sendTextMessage(String destinationAddress, String scAddress, String text,PendingIntent sentIntent, PendingIntent deliveryIntent)
How to get subscriptionId? to review all available subscriptionID that belong to sim card:
SubscriptionManager subscriptionManager = SubscriptionManager.from(getApplicationContext()); List<SubscriptionInfo> subscriptionInfoList = subscriptionManager.getActiveSubscriptionInfoList(); for (SubscriptionInfo subscriptionInfo : subscriptionInfoList) { int subscriptionId = subscriptionInfo.getSubscriptionId(); Log.d("apipas","subscriptionId:"+subscriptionId); }
Please note that this code is working on 5.1. if you try to run it on older version you'd get an exception that method doesn't exist.
@johannesjh perfect, thanks
A 2g sim cannot receive signal data as it can only handle voice/text; what
you're describing is using the second sim as the identity while still
sending data via the first sim data connection correct?
If this works, great; still there is no indication which sim is the
identity. Also, if a user is concerned about not linking phone numbers
having data flow through line a that is addressed to line b's number is a
problem (but one that is permanent given that 2nd sim is usually 2g)
On Feb 4, 2016 2:00 AM, "schferbe" [email protected] wrote:
@mollusko https://github.com/mollusko I don't understand why the second
SIM couldn't be used as signal interface. Is it about transfering the data?
It shouldn't matter through which SIM that is going.
I myself use signal on my second SIM and it works fine except for the
known restrictions.—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-179678630
.
(but one that is permanent given that 2nd sim is usually 2g)
That is not true when one travels. You might have different SIM enabled for data traffic when you travel internationally.
I hope that data is encrypted enough that it should not matter over which connection does the data go. (Why it would not go over WiFi as well?)
@johannesjh And what about for incoming messages? How does one determine which SIM they arrived on?
Data does go over wifi as well.
The 2nd sim will never be capable of data, regardless of settings, when sim
2 is a 2g sim as I described. One can point data for the sim 2 number over
the sim 1 data connection, thats the whole idea of dual sim (separate data
andbvoice/sms for added flexibility), but usually sim 2 is incapable of
data. As has been printed out, having an indication which sim the message
was addressed to is good enough imho
On Feb 5, 2016 2:42 AM, "Mitar" [email protected] wrote:
(but one that is permanent given that 2nd sim is usually 2g)
That is not true when one travels. You might have different SIM enabled
for data traffic when you travel internationally.I hope that data is encrypted enough that it should not matter over which
connection does the data go. (Why it would not go over WiFi as well?)—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-180238520
.
Yes, in the case that second sim is 2G sim. But there are also cases where it can be 3G or 4G. So both SIM cards can have data in general.
Very true
On Feb 5, 2016 3:20 PM, "Mitar" [email protected] wrote:
Yes, in the case that second sim is 2G sim. But there are also cases where
it can be 3G or 4G. So both SIM cards can have data in general.—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-180541019
.
@moxie0 The sim card can be retrieved from the intent's extra data when listening for SMS_DELIVER_ACTIONs being broadcast. But I found conflicting suggestions regarding the proper name of that extra data:
slot
, as shown in the below code example.java
public class IncomingSmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int simSlot = intent.getIntExtra("slot");
}
}
simId
:java
public void onReceive(Context context, Intent intent) {
int simId = intent.getIntExtra("simId", -1);
}
simId
that may be queried from the intent's extras bundle:java
String callingSIM = "";
Bundle bundle = intent.getExtras();
callingSIM =String.valueOf(bundle.getInt("simId", -1))
simSlot
:java
public void onReceive(Context context, Intent intent) {
int simSlot = intent.getIntExtra("simSlot", -1);
}
``` java
public static void dumpIntent(Intent i){
Bundle bundle = i.getExtras();
if (bundle != null) {
Set<String> keys = bundle.keySet();
Iterator<String> it = keys.iterator();
Log.e(LOG_TAG,"Dumping Intent start");
while (it.hasNext()) {
String key = it.next();
Log.e(LOG_TAG,"[" + key + "=" + bundle.get(key)+"]");
}
Log.e(LOG_TAG,"Dumping Intent end");
}
}
```
Hm, it does not seem to change anything on Fairphone. Maybe they are not using standard API.
Is there a screenshot of how a change should look like on the dual-sim phone? What should I see different?
@mitar Multi SIM works only on API level 22 and above, i.e. >=Android 5.1
Ah, and probably adding support for custom FairPhone 1 extensions would be something not merged in even if contributed by the community (now that the rest of the work is done, probably adding alternative API support would be relatively easy). There were 60,000 FairPhones shipped.
Just to be clear, should I be seeing indicators of which sim received a
given message? Running 5.1, signal up to date, but no indication of source.
Or is this not yet fully implemented, just committed to being implemented?
On Feb 19, 2016 12:04 PM, "Mitar" [email protected] wrote:
Ah, and probably adding support for custom FairPhone 1 extensions would be
something not merged in even if contributed by the community (now that the
rest of the work is done, probably adding alternative API support would be
relatively easy). There were 60,000 FairPhones shipped.—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-186305590
.
@mollusko It's in 3.11.1 which is available on the Play Store. If no one here can confirm that dual SIM support works in >= 5.1 I guess there's a bug...
Otherwise could be support issue? Try [email protected] or if you feel living dangerously try https://whispersystems.discoursehosting.net/c/support/android-support :smiley:
Got it, im running 3.10.0; play store offers an update, but once I accept
the permissions nothing happens. Anyone else have issues updating to 3.11.1?
On Feb 19, 2016 1:26 PM, "2-4601" [email protected] wrote:
@mollusko https://github.com/mollusko It's in 3.11.1 which is available
on the Play Store. If no one here can confirm that dual SIM support works
in >= 5.1 I guess there's a bug...
Otherwise could be support issue? Try [email protected] or if
you feel living dangerously try
https://whispersystems.discoursehosting.net/c/support/android-support [image:
:smiley:]—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-186349428
.
Restarted handset, updating fine
On Feb 19, 2016 2:36 PM, "Ellis Mays" mays.[email protected] wrote:
Got it, im running 3.10.0; play store offers an update, but once I accept
the permissions nothing happens. Anyone else have issues updating to 3.11.1?
On Feb 19, 2016 1:26 PM, "2-4601" [email protected] wrote:@mollusko https://github.com/mollusko It's in 3.11.1 which is
available on the Play Store. If no one here can confirm that dual SIM
support works in >= 5.1 I guess there's a bug...
Otherwise could be support issue? Try [email protected] or if
you feel living dangerously try
https://whispersystems.discoursehosting.net/c/support/android-support [image:
:smiley:]—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-186349428
.
Seems my handset manufacturer is holding off on 5.1 and 5.1.1 updates in
favor of a promised 6.0 update, so I'm ineligible for the benefits of this
dual sim update but very much appreciate the added functionality!
On Feb 19, 2016 2:41 PM, "Ellis Mays" mays.[email protected] wrote:
Restarted handset, updating fine
On Feb 19, 2016 2:36 PM, "Ellis Mays" mays.[email protected] wrote:Got it, im running 3.10.0; play store offers an update, but once I
accept the permissions nothing happens. Anyone else have issues updating to
3.11.1?
On Feb 19, 2016 1:26 PM, "2-4601" [email protected] wrote:@mollusko https://github.com/mollusko It's in 3.11.1 which is
available on the Play Store. If no one here can confirm that dual SIM
support works in >= 5.1 I guess there's a bug...
Otherwise could be support issue? Try [email protected] or if
you feel living dangerously try
https://whispersystems.discoursehosting.net/c/support/android-support [image:
:smiley:]—
Reply to this email directly or view it on GitHub
https://github.com/WhisperSystems/Signal-Android/issues/555#issuecomment-186349428
.
3.11.1 is working for me. Since I upgraded, the message time that appears at the bottom of each message now ends with the additional information "from [name associated with SIM]" or "to [name associated with SIM]".
So that part works well, thanks!
Under the "SIM Cards" section of Android's settings, however, there is a section that allows you to choose your "Preferred SIM" for mobile data, calls, and SMS messages. For each one, you can choose either of the two SIMs, or a third option "Ask every time".
As of now, Signal seems to always send from SIM1 (when one is present) regardless what the user has chosen. Ideally Signal would honour the user settings, which would probably involve popping-up up a "select SIM" dialog when sending a text when Android system setting is set to "Ask every time".
Should I open a new issue for this next phase?
I just noticed that the "Send unsecured SMS" message now also helpfully indicates which SIM you're sending from. From a UI perspective, this made me clue in to the fact that it would be nicer just to be able to toggle the default SIM for that conversation perhaps using a long press or swipe or something, rather than having an obtrusive dialog pop up every time you want to text someone.
Under the "SIM Cards" section of Android's settings, however, there is a section that allows you to choose your "Preferred SIM" for mobile data, calls, and SMS messages. For each one, you can choose either of the two SIMs, or a third option "Ask every time".
As of now, Signal seems to always send from SIM1 (when one is present) regardless what the user has chosen. Ideally Signal would honour the user settings, which would probably involve popping-up up a "select SIM" dialog when sending a text when Android system setting is set to "Ask every time".
Should I open a new issue for this next phase?
@mach-o yes, I guess a new issue is best! :blush:
Ok, thanks, I've opened #5266 and #5267.
Question: would a pull request with adding support for Fairphone (which is using their own API) something which would be merged in? It seems that most of the work is done and probably just an alternative API is needed to be called.
@mitar Probably not, do you have a link to the API docs?
These should be the API docs: http://labs.mediatek.com/site/global/developer_tools/mediatek_android/api_references/mediatek-sdk3/reference/com/mediatek/telephony/package-summary.gsp
The name of the intent extra for SMS_RECEIVED broadcasts is "simId" according to this Stackoverflow answer (I verified this to be correct with my Android 4.2 Mediatek dual SIM device).
Apparently there's no equivalent to SubscriptionManager.getActiveSubscriptionInfoList()
though, only getSimState(int simId)
Hm, yes, there is no way to list all SIM cards, so maybe we could just detect this by checking for existence of TelephonyManagerEx
, and if it is there, we use that API for dual-sim.
I also found source code for the class here.
Is there any progress on this? I am currently receiving texts on both of my SIMs, but I am forced to reply to on only one of the SIMs.
I'm using version 3.15.2, and by pressing + holding the send button, I can choose which SIM to send from. Took me a while even to notice, which is a UI downside, but now that I know it seems like a nice solution.
That worked. Thank you, mach-o.
That's strange, I have also v3.15.2 and tried above tip, but nothing happened, in a chat with another signal user it lets me choose between signal message and unsecure SMS, but in a chat with a non-signal user nothing happens when pressing and holding the send button...am I doing something wrong here?
Strange indeed, @exside. And under Android settings >> SIM cards, you can see both?
Only works on Android 6+, which is when a dual sim api was introduced.
Some additional information. I have a Dual-SIM phone and was unable to send a SMS until I changed the Android settings in [Wireless & Networks] > [SIM cards] > [SMS Messages] from [ask each time] to [your carrier name].
Seems Signal does not show the system dialog.
I installed signal on Honor 5x and I cannot send SMS via the Signal App.
If I long-press the send button I can see both SIM Cards in the popup menu but both are greyed out.
Any ideas what might be the issue here?
@Tobias3 What's the exact problem? Please try to be more specific. You should be able to select one of the cards and then press the send button (selecting the transport doesn't actually send yet).
selecting the transport doesn't actually send yet
Sometimes you just don´t see the obvious things... I clicked the buttons in the menu several times and tried a lot of different things but probably did not even try to click the button again after this "selection". I tested it again now and everything is working as expected.
Sorry for wasting your time!
I can send SMS messages with my second sim in the second slot, but I have to long press. I have disabled my first Sim in the Android settings, but it stays available and the default in Signal. Any workaround? Android 6.0.1.
Would love to have Signal using two accounts on my dual sim phone work/personal if its possible to add this to a feature request? Thanks in advance!
Hello,
I have a dual-sim Samsung phone since a few months, and also researched for a way to be able to use Signal (encrypted messaging) with both numbers (personal and corporate). I'm not a highly trained Android developer, but I still get the API limitation things.
What I discovered is that the best way to enable this kind of feature is to have the same app duplicated (different name / different storage) on the device so I tried an app cloner (that worked well), but since having to trust another intermediate layer is counter-productive, I uninstalled it.
However, a couple of weeks ago, I found a FOSS app (named Shelter) that enables the « Android for Work » isolation framework. This has several drawbacks (the device and its ROM must implement this correctly - Samsung does, your company must not use it for MAM/MDM) but if the conditions are there, it does exactly what's expected: the «corporate» Signal is running in its own isolated environment and is fully functional.
I do know it's not a solution per se, as the pre-requisites are rather heavy, and the Signal application has no means to workaround these, but 1/ I believe it's something to be known and 2/ What do you guys think about it/Is it a good way to have this ?
Here are the links to Shelter:
https://git.angry.im/PeterCxy/Shelter
https://play.google.com/store/apps/details?id=net.typeblog.shelter
Best regards,
Gabriel
[ Edit: typos ]
Most helpful comment
Would love to have Signal using two accounts on my dual sim phone work/personal if its possible to add this to a feature request? Thanks in advance!