How does some second phone number apps like Sideline, Hushed work? what's the technical principle? - ios

Some apps like Sideline, Hushed, can be used in USA and Canada as a second phone number, what's the technical principle?

Our app NumberBay, does this for 60+ countries, including USA and Canada. So I know what I'm talking about:
Calls are received on a virtual phone number (called a DID).
DIDs are often purchased from 3rd party companies (like top-quality Voxbone and our supplier). This is because deals must be made with government organisations and/or large telephony companies in every supported country. Also often infrastructure must be configured/rented/bought to support the connections. This is massive amount of work and very specialized.
When someone calls the DID, this call is received by this 3rd party and is forwarded (using SIP) to the NumberBay/Hushed/Sideline server.
(VoIP (Voice over Internet Protocol) is the general terms for telephony using internet. SIP is a possible implementation/example of VoIP.)
This NumberBay/Hushed/Sideline server knows to which user account the called DID belongs and forwards the call to the user's device or phone number.
This forwarding can be done in two ways:
SIP: The company's app will receive the call. Data will travel over Wi-Fi or mobile data. The company's server will 'call' the app. Hushed does this.
Good old telephony: The company's server will forward (this is called 'termination') the call to the telephony network. Very big company may have their own connections into the telephony network, but often they have a contract with a termination party. Sideline does this, but seems to only call your mobile number. NumberBay goes much further allowing you to register all your mobile and fixed-line phone numbers in the app. You can select, per virtual number, which phone number you want NumberBay to forward the calls to.
Let me know if you need more technical details.

Related

How to Add CNAM to Twillio

We want Caller ID to display our company name on outbound calls.
According to Twilio, numbers purchased from them cannot have Caller ID/CNAM added.
If we transfer numbers from another service that can add the numbers, will the CallerID/CNAM be maintained.
Should we Port the Number or have Twilio host the number? What is the difference?
Tried to purchase numbers on Twilio and have CNAM added.
Have purchased numbers from another vendor and they were able to add CallerID
Based on my experience recently migrating several numbers to Twilio:
If we transfer numbers from another service that can add the numbers, will the CallerID/CNAM be maintained?
Supposedly yes, mine did not. I had three Spectrum landlines, with working outbound caller ID. At some point after porting them to Twilio, the caller ID disappeared. What's worse is that some cellphones will try and "guess," and show random people's names instead of my business name (or at least, nothing).
What is the difference between porting and hosted numbers?
Hosted SMS provides a method for customers to use Twilio’s Programmable Messaging, Functions and Studio products to send and receive messages on voice-enabled numbers they already own as part of an established voice application.
(from https://www.twilio.com/docs/phone-numbers/hosted-numbers)
So porting is moving the number entirely to Twilio as the carrier for the number - voice, SMS, possibly fax (although Twilio's fax support is minimal). A hosted number would just enable SMS through Twilio for a non-Twilio landline number.
I have been looking for a way to get my numbers listed back in the CNAM database(s), today I tried a company called TrueCNAM (https://www.truecnam.com/) who will let you list up to five numbers for free. I went ahead and listed mine, I'll update my answer if I verify that it's working. Currently the CNAM lookup for my numbers is blank, so we'll see what happens.
Edit: I also tried verifying my number at https://listyourself.net, but I'm still not seeing the number in a couple searches I've done on it. It looks like the changes may take a while to propagate to the downstream third-party CNAM databases, based on this: https://www.dslreports.com/forum/r26461709-

Porting current number and forwarding to new phone number

So, a little context for you first: Our app only has forwarding and text messaging capabilities for our clients. Basically, we just set up a forwarding number in twilio for our client and they use that as their public number (on websites, advertisements, Google, etc.). Then when their customers call that number we ask them a quick question using the phone menu before forwarding the call onto their regular land line and sending them a text message later.
What do you suggest we do when someone wants to keep their current number (land line or otherwise) as the main phone number (online, website, ads, etc.) instead of using a new forwarding number?
Would they port their current number over to twilio, and then just get a new number with their main phone provider that we'd forward the ported number to?
I'm sure this is a common problem, so wondering what the best way approach it would be.
Thanks!
Twilio evangelist here.
If they want to continue using their POTS equipment then what you described is the only option. If they were able to move over to a pure VoIP system then there are more options.
You could use Twilio Client to build web and/or mobile VoIP apps for them. Or you could stand to a VoIP server (like Astrisk or FreeSWITCH) for them to connect VoIP phones to.
Of course they would still have to have an internet connection with for either of the VoIP options.
Hope that helps
This is an old question but it was at the top of my search for questions about porting for sms capabilities. Having worked 20 years in B2B telecom I can answer the last part of this in case anyone else needs to know.
If you go to any provider and request a number to be ported from the existing provider, the "losing carrier" cannot refuse to port the number as long as the number is active. I stress this point because if they are past-due, they still have to port it. But if the service is temporarily or permanently disconnected they don't and usually won't port it. The port has to come from the company winning the business. Don't contact the existing carrier about it because they can't "push" the number out. Instead, the new carrier will have you fill out a Letter of Authorization (LOA) to port it that gets submitted with the port request. Its very important that all of the details on this form match the billing record or it will get declined. So normally you would provide a copy of the current bill with the LOA.

How do you retrieve a caller ID from from a digital line or a VOIP phone?

On my work place, we have some (PBX)Business Communications Manager 450 Telephone System and some (PBX)BCM50 also. The BCM450 is hybrid, which mean it can use digital lines and at the same time VOIP phones.
Right now, for example a user can have a Nortel Avaya 1120E or a Nortel T7316 Norstar in their desk.
I would like to know if there is a way in which way I can get the phone number of the caller, so I can use that number on a custom software for the company. In other words I want the phone number of the person calling me (maybe the extension if that is the case).
What I'm looking for, is that when a customer calls, the information associated with the telephone number can be seen on the screen programmatically (without input from system operator).
I can see there is someone talking about TAPI API, but i believe this is only for analog lines? Maybe somebody can put me on the right path or maybe somebody can provide an example of how it is done using any programming language.
If the VOIP phones are SIP based then you'd sniff eth. ports of the phones. SIP messages contains caller Id and called Id.
You can google like "SIP sniffer" for source code example...

Is it possible to redirect a call?

My client is providing an international / long distance call service at cheap price to people if they make such calls via his company (Yes. It's like an international phone card)
The following is what my client wants to make.
Let's assume I have bunch of international / long distance / local phone numbers to call stored on my iPhone. If I tap one of the local phone numbers, iOS just lets me directly call the number. Not a problem. However, if it's an international or long distance number, iOS makes a call to the company instead so that the user can use the service at cheaper price.
Of course, this should happen only in the application. I'm not trying to tweak how iOS works by default.
I wonder if it's technically possible on iOS.
Update
I just came up with an idea that popping up a msg box if the tapped number is an international / long distance number before the following msg box by iPhone pops up.
Yup. before this one.
Can I show my custom msg box before the deafult one?
It sounds technically possible. The user can grant access to the contacts to the app which would allow the app to read names and phone numbers. The app could analyze the numbers and determine which ones are international and dial a LD service instead.
I would think that as long as the app is being completely clear to the user which service is being called and charges that may be incurred, I would think Apple would be okay with that.
The only other rule might be if the app looks too much like the built-in phone app or if it is determined the the functionality is redundant to the phone app. Good luck, Apple policy is sometimes a bit mysterious.
As for the alert, you can show any message, or even none at all.

3G/Edge/GPRS IP addresses and geocoding

We're looking to develop a mobile website. On this mobile website, we'd like to automatically populate a user's location (with proper fallback) based on their IP address. I'm aware of geocoding a location based on IP address (mapping to latitude, longitude and then getting the location with that information).
However, I'm curious how accurate this information is? Are mobile devices assigned IPs when they utilize 3G, EDGE, and GPRS connections? I think so. If that is so, does it map to a relatively accurate location? It doesn't have to be spot on, but relatively accurate would be nice.
Short answer: No.
The network assigns an IP address to the phone when the PDP context is activated (activation of PDP context is telecomms-speak for 'asking for packet data services'). It can be changed under network control, but this usually only happens when the connection has been dormant for some time.
You need to bear in mind that a typical mobile network may have several million users, and since signaling (i.e. address reconfiguration and the like) doesn't generate revenue, but costs the network scarce radio resources, it gets avoided as far as possible.
There is a further issue. Due to the architecture of mobile networks, if you have a visitor to a country who is operating using the roaming service with their home operator, they will in fact 'appear' to be in their home country. This is because the mobile device always connects to the internet through a node called the GGSN in their home network.
This is a major issue for websites which must deal with rightsholders. As an example, the BBC iPlayer service allows people located in the UK to 'catch up' on any BBC TV or radio content free of charge. In many cases, TV rights are geographically licensed, so the BBC is required to make every effort to ensure that the service is only available to users located in the UK.
This is, as I have explained above, impossible for mobile users. If I am using the SIM card of a UK network, I will 'appear' by geolocation to be in the UK regardless of where I actually am in the world.
This is not so much of a problem as yet: streaming a TV program over a 3G connection when roaming in a foreign network is prohibitively expensive (could easily be $100 or upwards for a single program), so this theoretical problem doesn't arise very often as yet. However, as roaming data costs fall (and everyone knows they will), it will become a real issue.
New smart phones (like Apple's iPhone) generally have web browsers that support HTML5 and/or some other form of client-side geolocation.
HTML5, for example, has the ability to geolocate the computer or mobile device based on a) position of the device's GPS, b) Wifi Triangulation and then c) IP address.
This is a client-side approach, and the browser will ask the user if they wish to share their location with you (which may or may not be a deal-breaker for you), but it is capable of providing < 20m accuracy.
See: About Geolocation in HTML 5

Resources