Caller ID based call rating and routing
How to deal with different rates imposed by carriers for callers from different countries or regions
This year Europe finally enjoyed positive benefits of Regulation of the European Parliament (EU No 531/2012) on roaming on public mobile communications networks within the European Economic Area (EEA), which actually mandates that European operators need to distinguish the origin of the call. Specifically, calls from outside European Economic Area (EEA) need to be distinguished from calls originating within EEA. In practice that means that out-EEA calls will be charged higher rate than in-EEA calls, because Regulation only speaks about calls within EEA, and operators are required to adhere to the regulations regarding these calls, which often means lowering the existing rate, and subsequently reducing profit. To offset this disadvantage, calls from non EEA countries are in many cases charged higher rate than before. The pattern started to surface already in the beginning of summer of 2017, with some countries, for example: Austria, Belgium, Croatia, Czech, France, Greece, Hungary, Italy, Poland, Portugal and Spain charging higher rates for non-EEA originated calls.
The practice was also reported spotted outside EU, where some operators were charging higher rates for calls originating from outside their home countries. That was reported in some Balkan countries, and more recently, in Mexico.
Now, this requires some kind of reliable or at least credible identification of the call origin. It should have a field which can represent full and valid E.164 formatted caller ID with country and subscriber number. When talking about SIP networks, there are originally few options, From and Contact header of SIP message:
From: "Bob" <sip:Bob@10.1.1.2>
To: <sip:Alice@10.1.1.3>
Contact: <sip:12345@10.1.1.2>
However, in practice none of these field can be used for full caller ID. From field is not suitable, because it is dsiplay name, i.e. it can be name, username, display name, or even set to Anonymous. Contact is designed for called endpoint to know whom to contact for subsequent messages in the dialog.
Therefore new SIP field was invented (already back in 2002, see RFC3325) specifically for this purpose. It is called P-Asserted-ID and should contain properly formatted Caller ID number. The exact format of the field value varies from carrier to carrier, but here is a working example:
From: "Bob"<sip:Bob@10.1.1.2>
P-Asserted-Identity tel:+3312345678
The example below now ensures that Bob resides (or at least calling from) France and his phone number is 12345678. His call now should be charged as originated within EEA.
What will be displayed on the called party phones display depends on operator, but if you want to ensure proper number is displayed, here is the example:
From: "+3312345678"<sip:+3312345678@10.1.1.2>
P-Asserted-Identity tel:+3312345678
What about privacy?
It is still there. There is another field, called Privacy (obviously)which should be used if you do not wish to display caller ID. Here is example usage:
From: "Anonymous"<sip:Anonymous@invalid>
P-Asserted-Identity tel:+3312345678
Privacy: Id
The carrier now should now display "Anonymous" as the caller ID. Note that P-Asserted-ID must be present, as to ensure caller ID is properly identified by carrier.
Reference: