What caller ID is and why it matters
Caller ID, also called CLID (Calling Line Identification) or CLI, is the number that appears on the phone of the person receiving the call. When you ring from an office in Rome, the customer sees for example 06 1234 5678 and knows straight away who is calling: caller ID is the business card of your phone call.
On traditional lines the number was tied to the copper pair: you called from that line and that number went out. With VoIP the call starts from a SIP account, which may live on a desk phone, an app or a PBX in another city. That is why the number to present has to be chosen and declared, and the provider has to check that you are entitled to use it.
The check is not a whim. Showing a number that is not yours is the most common trick in phone fraud (spoofing), and providers that let false numbers through end up blocked by other providers. That is why on Vohippo every caller ID must be yours: a number bought on the platform or a number from another provider that you have verified. There is no anonymous outbound calling: a call without a valid caller ID is rejected.
Fixed or «Taken from the call»: who decides the number
Every SIP account has an outbound caller ID setting, with two ways of working.
Fixed caller ID on the account
You pick a number from your list of caller IDs and assign it to the account. From then on the fixed number always wins: whatever the phone or PBX sends, the call goes out with that number. It is the right choice for a desk phone, for the app on a colleague's mobile or for anyone who must always present the same number.
«Taken from the call (must be one of your caller IDs)»
In this mode the device says which number to show, call by call. It is useful when a single account sits behind a PBX with several numbers: for example a company with a Milan number and a Turin number that wants calls from the Turin office to go out with the Turin number. The PBX writes the number into the call and the platform accepts it only if it is one of your caller IDs.
| Situation | Recommended setting |
|---|---|
| One person's phone or app | Fixed caller ID |
| PBX with a single number | Fixed caller ID |
| PBX with several numbers or sites | «Taken from the call» |
| Call centre using different numbers for different campaigns | «Taken from the call» |
The SIP headers: P-Asserted-Identity, Remote-Party-ID and From
When you choose «Taken from the call», the platform looks for the number inside the SIP request (the INVITE that opens the call). It reads it in this order, and stops at the first one it finds:
- P-Asserted-Identity: the header designed precisely to say «this is the identity of the caller» between systems that trust each other.
- Remote-Party-ID: an older header that some PBXs still use instead of the previous one.
- From: the sender of the request, present in every SIP call.
The difference between the three matters above all for the authentication type of the account.
- An account using «Username and password» is recognised by the username the phone or PBX authenticates with. The From field is therefore free, and you can put the number to show in it.
- An account using «IP address» is recognised by the address the call comes from. Here the number goes in P-Asserted-Identity, which is the recommended route, or in the From.
Accepted formats
The number can be written in several ways, but not in every way. Here is how the platform reads the most common formats, using the example number 06 1234 5678 (an Italian Rome number).
| How the PBX writes it | Is it recognised? |
|---|---|
+390612345678 | Yes, international format with the + |
00390612345678 | Yes, international format with 00 |
0612345678 | Yes, national format |
390612345678 | No: without + or 00 the country code is not recognised |
Numbers written without an international prefix are interpreted in the country of the mobile number you verified as the account holder. If your verified mobile is Italian, 0612345678 becomes +390612345678. If you work with numbers from several countries, the format with a leading + removes all doubt.
The 390612345678 case is the most frequent mistake: some PBXs strip the + when they build the headers. If you see rejected calls and the number looks right, check first whether the + or the 00 is missing.
How a caller ID is verified
Numbers you buy on Vohippo are ready to go: they appear among your caller IDs as «Native CLID» and there is nothing to do. For a number you hold with another provider, for example the office's long-standing landline or the company mobile, you need a verification that proves the number is yours.
- In the portal, open the caller ID section and add the number, in international format.
- Choose how to receive the code: SMS, WhatsApp or voice call. For a landline use the voice call, because a landline usually cannot receive SMS.
- Answer the call or read the message on the number being verified and note down the code.
- Enter the code in the portal. The code is valid for 10 minutes and you have 5 attempts.
- The number joins your list of caller IDs and you can assign it to an account or use it with «Taken from the call».
If the code expires, request a new one. If the landline sits behind a PBX with a voice menu, make sure the verification call reaches a person, otherwise the code gets lost in the menu.
Native CLID and external CLID: what changes
| Native CLID | External CLID | |
|---|---|---|
| What number it is | A number bought on Vohippo | A number from another provider, verified |
| Verification | Not needed | SMS, WhatsApp or voice call |
| Cost of the caller ID | Nothing beyond the number's fee | €0.02 per answered call |
| Call routing | Normal | Calls go over international routes |
An external CLID is handy when you want to keep showing the company's long-standing number, which stays with the old provider. It has two consequences you should know about. The first is cost: €0.02 for every answered call that goes out with that number. The second is technical: these calls travel over international routes, because many providers accept another provider's number only on those routes.
If the long-standing number is the one customers know and you want to manage it entirely from the platform, consider external numbers: the platform keeps the number registered with the old provider using its SIP credentials, for €1.00 a month, and routes it like the others. It is not number porting: the number stays with the other provider.
There is also the case of a WhatsApp number as caller ID: with a number enabled for WhatsApp calls you can call over WhatsApp, but only users who have given you their consent, and the consent lasts 7 days.
Why a call is rejected with «Caller ID not allowed»
When you find «Caller ID not allowed» in the call report, the platform received a call with a number that is not among your verified caller IDs and stopped it before it went out. The causes are almost always these.
- The number is not verified: you entered it in the PBX but did not complete the verification in the portal.
- The format cannot be read: the PBX sends
390612345678without + or 00. - The wrong header wins: the PBX sends in P-Asserted-Identity a number different from the one you think you set in the From.
- The number is missing altogether: the PBX sends the call as anonymous, or with the extension name instead of the number. On Vohippo you cannot call anonymously.
- The account is in the wrong mode: you chose «Taken from the call» on an account whose phone sends its extension as the number (for example
201).
The quickest way to understand what happened is the extension's SIP log, which the portal keeps for the last 7 days: you look at the INVITE and see exactly what was in P-Asserted-Identity, Remote-Party-ID and From. For a single phone, the simplest fix is often to switch to a fixed caller ID.
Examples: password-based PBX and IP-based PBX
The examples use Asterisk with PJSIP, but the logic applies to any PBX: only the place where you write the number changes. The full trunk configurations are in the guides for Asterisk, FreePBX and 3CX.
PBX with an account using «Username and password»
The account is recognised by its username, so the number only needs to be in the From. In Asterisk the From is built from the call's caller ID:
[uscita]
exten => _0X.,1,Set(CALLERID(num)=+390612345678)
same => n,Dial(PJSIP/${EXTEN}@vohippo)
exten => _3X.,1,Set(CALLERID(num)=+390612345678)
same => n,Dial(PJSIP/${EXTEN}@vohippo)
With the account set to «Taken from the call», changing CALLERID(num) per site or per department lets each group of extensions go out with its own number, as long as it is one of your caller IDs.
PBX with an account using «IP address»
Here the number goes in P-Asserted-Identity. In Asterisk a header on the outbound channel is added with a routine run before the call (the b() option of Dial):
[uscita]
exten => _0X.,1,Set(CALLERID(num)=+390612345678)
same => n,Dial(PJSIP/${EXTEN}@vohippo,,b(aggiungi-pai^s^1))
[aggiungi-pai]
exten => s,1,Set(PJSIP_HEADER(add,P-Asserted-Identity)=<sip:[email protected]>)
same => n,Return()
In PBXs with a graphical interface, such as 3CX or FreePBX, there is usually a field for the trunk's outbound caller ID and one for the extension, plus an option to choose which header it is written to. If the account is IP-based, choose P-Asserted-Identity.
Caller ID on forwarded inbound calls
Caller ID also matters when a call arrives on one of your numbers and you send it elsewhere. In call routing, the «Forward to a number» module has the option «Show the original caller number», on by default: on the mobile you forward to, you see who is really calling, not your virtual number. Remember that the forwarded leg is charged as an outbound call, according to the rates.
If instead you ring SIP accounts with «Ring SIP accounts», the phone and the app show the caller's number directly. To set up a number from scratch, start from the guide on how to set up an inbound number.
You can see how caller ID, ringing and voicemail fit together in real cases in the sector examples: the law firm that calls from mobiles with the firm's number, the accountants with several offices who each go out with their own area code and the car repair shop that calls customers back from the app. For ringing there is the guide on simultaneous or sequential ringing, and for messages the one on VoIP voicemail.
Frequently asked questions
Can I call with a withheld number?
No. On Vohippo every outbound call must have a valid caller ID, that is a number of yours: a number bought on the platform or a number from another provider that you have verified. An anonymous call is rejected.
Can I show the landline number from my old provider?
Yes, once you have verified it with a code by SMS, WhatsApp or voice call. It becomes an external CLID: it costs €0.02 for every answered call and calls with that number go over international routes.
Why does the PBX send the right number but the call is rejected?
The problem is often the format, for example 390612345678 without + or 00, or a P-Asserted-Identity with a different number from the one in the From. Look at the INVITE in the extension's SIP log, available for 7 days, and check which number actually arrives.
Can each PBX extension go out with a different number?
Yes, if the PBX account is set to «Taken from the call» and all the numbers are among your caller IDs. The PBX chooses the number call by call and writes it in P-Asserted-Identity or in the From.
Does a virtual number bought on Vohippo need verifying?
No. Numbers bought on the platform appear straight away among your caller IDs as «Native CLID» and can be assigned to an account or used with «Taken from the call». Verification is only needed for numbers you hold with another provider.
The verification code does not arrive on my landline: what should I do?
Choose the voice call instead of SMS, because a landline usually cannot receive messages. If the landline is behind a voice menu, make sure the call reaches a person within the 10 minutes for which the code is valid.