How does the My Verizon Mobile app know the device phone number? - ios

I just installed the My Verizon Mobile app onto an iPhone and upon launch it was immediately able to display the device's phone number - something which is not possible for regular apps to do.
Does anybody know how it does it, could it be one of these, or something else?
As the app is from Verizon, Apple has granted it permission to access private iOS APIs to obtain the phone number
The App makes an HTTP connection to a Verizon server which goes through a gateway which is able to detect the phone number and sends it back to the device in the HTTP response.
These are just my guesses as to what perhaps could be happening, does anybody know what actually is happening?

If you go to Settings/General/About, you'll find an IMEI number and an ICCID number. The IMEI number identifies the phone, the ICCID number identifies the SIM card. If you have a Verizon phone account, then Verizon would have associated that ICCID number with a phone number. They must be able to do that, because otherwise how could Verizon ring your phone if I dial your number?
So what happens is Verizon using their own data, which they must have for your phone to function properly, to find the phone number associated with your SIM card. This should only work for Verizon phones (other phone companies should be able to find your phone number if you have a contract with them, but not if you are with Verizon).
By the way, if you go to Settings/Phone, the first thing my iPhone shows is "My Number".

The Verizon Mobile app, at least for android, carries special code apps in the rom. You cna verify this by taking a Verizon Galaxy Nexus and applying an alternate rom to it such as CM10. Without the special "carrier blobs" in the rom, Verizon "specialized apps", don't work.
This is not a bug per se -- non Verizon roms lack the special "carrier bits" but also like the carrier apps many people don't want on their Nexi. The reason you have no "auto login" on iPhones is because this carrier "app" doesn't exist in the Apple roms.

Related

What AT commands are required to register an IoT modem on Verizon?

I'm trying to troubleshoot a wireless modem that contains a Sierra MC73xx module. Also, my SIM is from an MVNO that says it has enabled roaming on Verizon.
I run AT+COPS=? and can see the Verizon network:
+COPS: (0,"T-Mobile","T-Mobile","310260",2),(0,"Verizon","Verizon","311480",7),(0,"T-Mobile","T-Mobile","310260",0),(0,"AT&T","AT&T","310410",7),(0,"AT&T","AT&T","310410",2),(0,"T-Mobile","T-Mobile","310260",7),,(0,1,2,3,4),(0,1,2)
However when I run AT+COPS=1,2,311480 I can't seem to register on the network.
Are there other AT commands required to register a roaming SIM on the Verizon network? BTW through testing I've been able to register on T-Mobile and AT&T.
In the PLMN scan result, there is only one Verizon network,
(0,"Verizon","Verizon","311480",7). "7" indicates the radio access technology(RAT) and I remember 7 is LTE.
On the other hand, both AT&T and T-Mobile has 2G/3G coverage, i.e. RAT 0 and 2. In your successful registration, you probably see the RAT is 0 or 2. You can use at!gstatus to check RAT.
I suspect your SIM card cannot roaming in Verizon LTE network. Usually international roaming agreement does not cover LTE.
The other thing you can check is if this carrier is in your SIM's forbidden list. This can happen if your device tries to connect to a network and is denied.
For clearing this list, see here for instructions.
Verizon (nowadays, as of this response) is very particular about which modems may register to its towers. Verizon certifies cellular modules before they're allowed to register and maintains a list of authorized IMEIs.
If your module's IMEI isn't on that list, it's not going to work.
Even using a Verizon SIM card on a Verizon-certified device, I couldn't connect one time. I had to call Verizon and give them the expected IMEI for that SIM's ICCID so the tower knew what to expect ahead of time. Then it worked.
I suppose that trying to connect through an agreement with an MVNO they wouldn't have you call Verizon and explicitly tell them the IMEI, but it would still need to be in an expected range of IMEIs that Verizon expects.
Verizon does this to assure that customers will have a consistent experience on their network as their LTE system uses frequencies (bands) that other carriers do not; they "certify" modules submitted to them by the manufacturers - give them a stamp of approval - the module has demonstrated the ability to operate according to Verizon's specifications.

Can android/iOS communicate through wifi

I don't know how to explain what I want so I give example situation.
I got 3 smart phone, locate in 3 different room.
All room has a distance where wifi device A can Only communicate with B. But unable to C. So have to send to B and B send to C.
My question is do wifi can used for communication with different device?
How? Any tutorial?
My final finished project will required to work like wallow talkie through WIFI. Phone with wifi signal can listen and resend to another larger area.
In your 'A, B C' scenario above, Phone 'B' can act as a wireless hotspot (even if it has no internet connection) and Phone A and Phone C can connect to it and speak to each other so long as they know each others IP address.
You would need to check the particular phones and OS version you are using supports this, but I have done with with several Android phones as an example.
I suspect, however, that your next question would be whether another phone, phone D, could then speak to A and B if it is only in range of Phone C.
This would require phone C to act as a wireless hotspot for phone D and at the same time as a wireless client to phone B's wireless hotspot. This is trickier and, while there are some example of an Android phone being used as a wireless repeater (e.g. http://www.littlegreenrobot.co.uk/tutorials/turn-your-android-device-into-a-wi-fi-extender/), I think you would need to experiment and I think you may find this won't work on most phones out of the box. When I tried a brief check using an Android phone running Android 4.3, turning the WiFi hotspot on automatically turns the WiFi access off.

A way to uniquely identify a BTLE device

Is there a way to uniquely identify a BTLE device (something like hardware ID)? I have 2 hardware BTLE devices and 2 soft BTLE devices (using CBCentralManager). All these devices are sending same UUID.
I want to identify the exact BTLE device when all the devices are lying near me. Any clue?
The devices should have unique Bluetooth addresses. If they don't then you wouldn't be able to properly connect to them without them interfering with each other. However, with BTLE it's possible for a device to have a randomized address for privacy (but those conform to a particular pattern so you can detect if you get that kind of address). The address is 6 bytes and is usually displayed in hex (ex A1-B2-C3-D4-E5-F6). The first 2 bytes usually indicate the manufacturer.
UPDATE: My answer is valid for most BLE usage, but as the question is tagged ios you may want to look at this other answer about getting a unique id on ios as a possible way to get the bluetooth address

Is there an unofficial way to get the device phone number?

I would like to programatically get the device phone number (on iOS5 and iOS6).
Are there any unofficial ways for doing so?
Are there any private Core Telephony APIs or IOKit APIs that can be used for example?
And yes I do know my app won't be accepted in the AppStore
Private API
There is a private API to get phone number. Private API can't be submitted to AppStore, but it can be executed on jailed device.
NSString* CTSettingCopyMyPhoneNumber();
It returns phone number. And it's located in CoreTelephony
MDM
And actually, there is even a legal way of getting phone number. However, it's complicated. There is MDM protocol for iOS. One of the commands retrieves information about a device and this info includes phone number (and a lot of other device info).
Other notes
Also, you may be interested to read through these several questions:
Programmatically get own phone number in iOS
How can I get the phone number of my iPhone device?
You could start by searching in the private headers.

Get BlackBerry device phone number

In my application I want to retrive the device phone number. I used Phone.getDevicePhoneNumber(true)
It is working in the simulator, but when I test on the device it returns an empty string.
Is there any other option for getting the device phone number?
I am using jde 4.5.0.
The straightforward approach would be to ask the user to enter their phone number.
Phone.getDevicePhoneNumber(true) reads the number from the SIM card. The problem is the number isn't always on the SIM card. I've also seen cases where the wrong number is on the SIM card.
There is no guaranteed way to programmatically get the number. What I've done in the past is present the SIM card number to the user and asked them to correct/confirm it.

Resources