[SIPForum-discussion] E.164

Paul Kyzivat pkyzivat at alum.mit.edu
Mon Aug 17 15:38:30 UTC 2015

This is considerable mis-information in this thread.
Brian is correct.

In sip there are a few ways to identify a target by "phone number", and 
there are a couple of dimensions to it.

First, you can identify the target using either a "tel:" URI or a "sip:" 
or "sips:" URI. For sip or sips URIs there are a few options:

* the "phone number" will be in the user part of the URI.
   The way that part is formatted and understood depends on
   the value of the "user=" uri-parameter.

* for "user=phone", the user part is interpreted the same as
   the body of a tel URI. (See below for more on this.)

* for "user=ip", the user part is interpreted in some domain
   specific way. (This is often considered to be like an "email-style"
   URI format.) It *could* be treated as a phone number, but whether
   it is or not is a policy decision for the domain of the URI.
   This is the default if there is no user= parameter.

* for "user=dialstring", the user part contains a "dial string".
   Namely the string of "digits" dialed, along with some context
   to help disambiguate the dial string. This format is defined
   by RFC4967. (Authored by Brian.)

For a tel: URI (defined by RFC3966):

* The number can be a "global-number" or a "local-number".

* global-numbers is in E.164 format. *All* global-numbers
   start with "+".

* local-numbers do not start with "+".

* both global and local numbers may have parameters following
   the number. Local numbers *must* have a "phone-context"
   parameter. This provides a globally unique context in which
   the "number" can be understood unambiguously.

The following are some implications/examples of the above:

1) sip:+12125551234 at example.com;user=phone

    This is a well formed E.164 phone number URI.

2) tel:+12125551234

    This identifies the same phone number as (1), but doesn't say
    what domain should be used to reach it.

3) sip:2125551234;phone-context=+1 at example.com;user=phone

    This is a local-number in the context "+1".

4) sip:2125551234;phone-context=example.org at example.com;user=phone

    This is an alternative way to represent phone context.

5) sip:711;phone-context=+1 at example.com;user=phone

    This is one potential way to represent non-E.164 numbers.

6) sip:1234;phone-context=foo.com at example.com;user=phone

    This is a potential way for a company to represent a local
    extension on their pbx that has no E.164 number. In this form
    it *can*, in principle, be used outside the foo.com network
    and still remain unambiguous.

7) sip:912125551234;phone-context=foo.com at example.com;user=dialstring

    This is a way to transform a dialed string of digits into a URI
    without having to interpret it in any way. Note that, as with
    local numbers, the phone-context is *required*. It provides the
    context within which to understand the dial plan.

8) sip:8888 at example.com;user=ip

    This might be meaningful in a domain that uses numeric user ids.
    (I don't know if there are any of those left, but there might be.)
    There is no a priori assumption that the 1234 is a "phone number".

9) sip:8888 at example.com

    This has *exactly* the same meaning as (8).

10) sip:2125551234 at user.com

    This should be understood the same way as (9). You can't assume
    that this is a phone number unless you have some implicit contextual
    information that user.com treats it that way.

11) sip:+12125551234 at user.com

    Same as (10).

12) sip:2125551234 at example.com;user=phone

    This is an invalid URI!
    Because of the "user=phone", the user part is to be parsed according
    to the tel uri format. Since it doesn't begin with "+", it is
    required to have a phone-context parameter.

13) sip:912125551234 at example.com;user=dialstring

    This is also an invalid URI!
    Again, a phone-context is required here. A dial string can only
    be understood in a context that defines the dial plan.

None of this says anything about "domestic" vs. "international" calling.

I guess domestic calling is when both the caller and the callee are 
identified by phone numbers in the same country code. But note that the 
URI formats require all the URIs to be globally unambiguous. That can be 
by having the country code as the prefix of the global number, or 
idenfified in some way by the phone-context of a local number.

The place where this becomes a meaningful concern is if you are using 
URIs like (10). That URI can't be understood unambiguously as a phone 
number unless you *know* that example.com intends it to be understood 
that way and also understand what country code is to be used.

Such usage is *allowed* by the specs, but the meaning is not defined by 
the specs. IMO this is an unwise usage. If you intend to use it, then 
you must carefully define your conventions and ensure that everyone that 
sees such a URI follows those conventions.


On 8/16/15 9:50 AM, Shah Hussain Khattak wrote:
> Adding a few comments in below answers. The +1 is usually added to
> originated calling numbers in case the call is going to some destination
> outside of US, it's a well know feature ( in Sonus SBCs its called
> Number globalisation feature at trunk groups level), and this could be
> replicated for different countries. It's only for international call
> termination, the calling number is appended with originating country
> code....
> Sent from my iPhone
> On 16-Aug-2015, at 12:29 am, Stoller, Jeff
> <Jeff_Stoller at cable.comcast.com <mailto:Jeff_Stoller at cable.comcast.com>>
> wrote:
>> +1 is domestic E.164 format. + and then the number is for
>> international.  To convert a US phone number like 415 555 2671 to
>> E.164 format, you need to add the '+' prefix and the country code
>> (which is 1) in front of the number so it will look like +14155552671.
>> *From:*discussion-bounces at sipforum.org
>> <mailto:discussion-bounces at sipforum.org>
>> [mailto:discussion-bounces at sipforum.org] *On Behalf Of *Anthony Orlando
>> *Sent:* Wednesday, July 29, 2015 12:37 PM
>> *To:* SIP Forum
>> *Subject:* [SIPForum-discussion] E.164
>> Looking for some clarification.  I have a vendor that claims +1
>> indicates an internationally originated call.  I disagree and feel
>> that it is merely an indication that it is in E.164 format.  Anyone
>> want to chime in?
>> _______________________________________________
>> This is the SIP Forum discussion mailing list
>> TO UNSUBSCRIBE, or edit your delivery options, please visit
>> http://sipforum.org/mailman/listinfo/discussion
>> Post to the list at discussion at sipforum.org
>> <mailto:discussion at sipforum.org>
> _______________________________________________
> This is the SIP Forum discussion mailing list
> TO UNSUBSCRIBE, or edit your delivery options, please visit http://sipforum.org/mailman/listinfo/discussion
> Post to the list at discussion at sipforum.org

More information about the discussion mailing list