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

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...

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-

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

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.

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.

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.

Twilio Voice: Tracking a user from website to twilio phone call?

I'm trying to see if this is even possible in twilio. I'm hoping maybe someone's had a similar challenge and came up with a creative solution...
Our company has a unique phone number that's only displayed on our website. I've been asked if it's possible to find out not only how many calls we're getting (which is simple enough to track in twilio), but also who's calling. Basically, they want to follow the details of a users activity. From website to phone call.
Theoretically, they'd like something like this:
A user, lets call him John, comes to the website & is assigned a unique id of "12345". The id is stored in a cookie for returning users (this I can already handle).
If John calls the phone number displayed on the website, we...somehow through the use of twilio...know it's user #12345.
We can then create monthly reports stating user #12345 called the phone number 7 times this month for a total of 18 minutes.
There's so many "what if's" that go into this, that I'm just not sure it's even possible, but perhaps someone knows of a creative way this can work? A few things I've considered, but none of them are foolproof:
Tracking a combination of John's geographical location while browsing the website and the time of web browsing, then using twilio voice to track the geographical location & time of the phone call, to make a best guess. The problem is it sounds like twilio voice isn't always great at providing geo location.
Tracking mobile click to calls on the website, then matching the time of the click to the time of the phone call. Several problems with this, including multiple users calling at the same time, and we'd only be tracking those who browsed the website via mobile, then clicked to call.
For mobile click to call, passing the user's id via a phone extension, which twilio then reads (not sure if this is even possible in twilio). But again, this would be limited to mobile users.
So, I'm just not sure if this is even possible. Any idea's on how this could be implemented?
Thanks so much for any help.
Twilio developer evangelist here.
Have you considered making it possible to make the calls through the website itself? If you implemented Twilio Client you would be able to directly track users who called from the website and they'd be able to do so without picking up the phone too. That direct connection would allow you to make the calls more personal too, as you'd know exactly which user was calling.
Check out the tutorial on implementing browser calls in Twilio and let me know what you think.
I can't think of any straightforward ways to connect a user's browsing session to a phone call made with a different device though. You could ask the user to input their ID in order to start the call, using <Gather> to receive the input and tie that call to the user and whether they currently have a live session on the site. That might be an unnecessary barrier to people calling though, so you'd have to weigh up that option.

Resources