Subject: RE: [Sipping] Do Phones Have Dial Plans, or do Proxies map? was RE: [Sipping] Re: draft-schulzrinne-sipping-sos-04.txt

From: "Mark Watson" <[email-masked]>
Date: Thu, 9 Jan 2003 18:08:46 -0000

Adam wrote:

> AAAAAUUUUGGGHHHHH!!! AAAAAUUUUGGGHHHHH!!! AAAAAUUUUGGGHHHHH!!!
> 
> No!

Is overlap dialling **really** that bad :-) (ok, ok, I know, it is)

I'd agree you should really try and avoid UIs without an 'end of dialing'
key whenever you can. You can't rely on any regexp to tell you when the end
of dialling is - at least obtaining and maintaining such a regexp for the
global E.164 dial-plan would be infeasible. Even for some national dialling
plans it is infeasible.

No 'end of dialling' key = overlap or inter-digit timers, end of story.

...Mark

---

From: "Rosen, Brian" <[email-masked]>
Date: Thu, 9 Jan 2003 13:45:22 -0500

I think this response just restates the question.  
I think we either say that phones essentially always put out 
global numbers, or they put out dialing strings and a proxy 
expands it.  We can probably agree on the tel uri prefix for
either.  If a proxy expands dialing strings to phone numbers,
then we probably do need some kind of context, as you point out.

First we should decide if we put the dialing plan in the phone.

BTW, I currently favor NOT putting the dialing plan in the UA,
but I don't feel strongly about it.  I do feel strongly about
standardizing this bit, because I surely want all sipphones to
"play" in my system, and I don't want a boat-load of vendor specific
code to make that work.

Our sip based enterprise system has a classical enterprise dialing 
plan, although we interpret 7 or more digits as national or 
international numbers, rather than requiring the "9" prefix.  
That works because all internal numbers are less than 7 digits.  
Proxies do the expansion.  There is vendor specific code in this 
proxy because no two gateways we support work the same.  
Hence this entire effort :)

Brian

> -----Original Message-----
> From: Paul Kyzivat [mailto:[email-masked]]
> Sent: Thursday, January 09, 2003 1:13 PM
> To: Rosen, Brian
> Cc: 'Henning Schulzrinne'; [email-masked]'
> Subject: Re: [Sipping] Do Phones Have Dial Plans, or do 
> Proxies map? was
> RE: [Sipping] Re: draft-schulzrinne-sipping-sos-04.txt
> 
> 
> Unless we are going to require users to enter full URIs into 
> the phone 
> (including "tel:"), the phone MUST have some sort of dial 
> plan. We only 
> need to discuss how complex it is.
> 
> At one extreme it could simply be to prefix the entered digits with 
> "tel:" and let a proxy do the rest.
> 
> At the other extreme it could do all sorts of complex 
> transformations to 
> turn short sequences into global tel: uris, or even sip uris, 
> possibly 
> even chosing different gateways based on dialed number.
> 
> As I mentioned in an earlier reply, simply slapping "tel:" on the 
> entered digits doesn't create syntactically correct tel: uris 
> according 
> to the latest definition. To go that way, the tel: syntax needs to be 
> altered. Also, the tel: definition currently says that a tel: address 
> SHOULD always use global syntax unless there is no valid 
> global address. 
> Encoding dialed digits as a local tel: uri and defering 
> conversion to a 
> global address to a proxy would violate that rule.
> 
> One possibility is to define the minimal dial plan for a phone as: 
> prefix the dialed digits with "tel:" and suffix the dialed 
> digits with 
> ";phone-context=XXX", where XXX needs to be learned or provisioned 
> somewhere. The XXX is then effectively a name for the dial plan to be 
> used to expand the number. This gets around the syntax problem with 
> using the tel: uri, though it still violates the semantic rule.
> 
> 	Paul
> 
> Rosen, Brian wrote:
> > The systems I'm aware of use regexps in one form or another
> > to mangle a string into a dialed number.  I don't have
> > a problem making this a UA function, but if we do, I want
> > to standardize the regexp and "Publish" it to the UA.
> > 
> > A lot of enterprise gateways have dial string to dialed 
> number mapping.
> > Some sipphones do.
> > 
> > Brian
> > 
> > 
> > 
> > 
> >>-----Original Message-----
> >>From: Henning Schulzrinne [mailto:[email-masked]]
> >>Sent: Thursday, January 09, 2003 10:32 AM
> >>To: Rosen, Brian
> >>Cc: 'Paul Kyzivat'; [email-masked]'
> >>Subject: Re: [Sipping] Do Phones Have Dial Plans, or do 
> >>Proxies map? was
> >>RE: [Sipping] Re: draft-schulzrinne-sipping-sos-04.txt
> >>
> >>
> >>I would find it instructive how non-SIP systems have solved similar 
> >>problems. In web browsers and email, we have auto-completion 
> >>functions 
> >>and nick names, for examples.
> >>
> >>There's also the analogy with 'real names' (not the defunct 
> >>company, the 
> >>concept) which translates strings-nice-for-humans into URLs. 
> >>See the CRN 
> >>work, including the go: URL. (I'm not aware of 
> implemenentations, but 
> >>the concept may be relevant, in particular keeping the 
> identifier and 
> >>various 'nicknames' clearly distinct.)
> >>
> >>There are probably two sub-problems here:
> >>
> >>- Recognizing patterns so that one can keep the old 
> >>"no-need-to-hit-dial" user interface.
> >>
> >>- Translating abbreviations such as extensions and local-area 
> >>numbers to 
> >>fully-expanded, globally unique identifiers.
> >>
> >>The former will always require downloading a pattern to an 
> >>end system, 
> >>the latter is a (local) translation service. The only question then 
> >>becomes if the translation is done in one or two steps, 
> i.e., before 
> >>issuing a SIP request or as part of a SIP request.
> >>
> >>Aside: There are clearly examles of widely-deployed systems 
> where the 
> >>phone has a dial-plan, downloaded via tftp.
> >>
> >>Rosen, Brian wrote:
> >>
> >>>This comes up a lot.  I think we should decide.
> >>>
> >>>Who translates a dial string into a tel uri?
> >>>
> >>>tel uris, as of now, explicitly don't handle dialing strings,
> >>>only dialed numbers.  In essentially all existing systems,
> >>>phones don't have dialing plans in them; central elements
> >>>map dialing strings to dialed numbers.  What's our story?
> >>>Does every UA that has a dial pad have to have a dialing plan 
> >>>loaded in it that maps dialing strings to dialed numbers, 
> >>>or does a proxy server do it?
> >>>
> >>>If it's the former, then how do we standardize the mapping?
> >>>If it's the latter, then how does a UA send a dialing string?
> >>>
> >>>Brian
> >>>
> >>>
> >>>
> >>>>-----Original Message-----
> >>>>From: Paul Kyzivat [mailto:[email-masked]]
> >>>>Sent: Thursday, January 09, 2003 9:53 AM
> >>>>To: [email-masked]'
> >>>>Subject: [Sipping] Re: draft-schulzrinne-sipping-sos-04.txt
> >>>>
> >>>>
> >>>>I have a few comments about draft-schulzrinne-sipping-sos-04.txt.
> >>>>(I haven't been following this work very closely, so 
> >>>
> >>perhaps some of 
> >>
> >>>>these pertain to things that were in earlier drafts.)
> >>>>
> >>>>I must say, these are really messy problems, so I am glad you are 
> >>>>working on them.
> >>>>
> >>>>Section 3.2 says:
> >>>>
> >>>>   ... a UAC MAY use a "tel" URI [3,4] without 
> >>>
> >>phone-context, such as
> >>
> >>>>   tel:911
> >>>>   tel:112
> >>>>
> >>>>The latest and greatest definition of the tel: uri that I 
> >>>
> >>can find is 
> >>
> >>>>draft-antti-rfc2806bis-07.txt. According to that, the above 
> >>>
> >>tel: uris 
> >>
> >>>>are syntactically incorrect. Either the number must be global 
> >>>>or else it 
> >>>>must contain a phone-context parameter.
> >>>>
> >>>>Are there plans to change the definition of the tel uri, 
> or is this 
> >>>>language going to change?
> >>>>
> >>>>In the case of a UAC that is using a local outbound proxy, is it 
> >>>>required that the UAC specifically recognize these strings 
> >>>>and deliver 
> >>>>them to the proxy, or is it sufficient for it to deliver 
> >>>
> >>any and all 
> >>
> >>>>dialed digit strings to the proxy as tel uris without 
> attempting to 
> >>>>recognize them itself? Is it sufficient to determine that 
> >>>
> >>the dialed 
> >>
> >>>>number is complete by timeout on the input rather than by 
> >>>
> >>recognition?
> >>
> >>>>Section 5 specifies that the UAC should insert location 
> >>>>information into 
> >>>>emergency calls. However, presumably location information 
> should in 
> >>>>general not be placed in non-emergency calls, so it is 
> >>>
> >>important that 
> >>
> >>>>the UAC realize it is making an emergency call. In the case 
> >>>
> >>of dialed 
> >>
> >>>>digit strings, it may only be the outbound proxy that can 
> >>>>determine if 
> >>>>the call is an emergency call. One way to handle this would 
> >>>>be for the 
> >>>>local outbound proxy to redirect requests to tel: emergency 
> >>>>numbers to 
> >>>>the corresponding sip:sos number. Then the UAC would be able to 
> >>>>positively determine this is an emergency call and include 
> >>>>the location 
> >>>>information.
> >>>>
> >>>>Section 9 says:
> >>>>
> >>>>   We propose a new DHCP option that enumerates the valid local
> >>>>   emergency identifiers, as a list of "tel", "sip" or 
> "sips" URIs.
> >>>>
> >>>>This doesn't seem sufficient. Most phone-like devices have 
> >>>>provision for 
> >>>>entering primarily sequences of digits, not tel: uris. It is 
> >>>>up to the 
> >>>>phone to translate a digit sequence into a valid uri. In 
> >>>
> >>general this 
> >>
> >>>>requires some sort of dial plan. Without the dial plan, the 
> >>>
> >>phone may 
> >>
> >>>>well not be able to generate anything that matches one of the 
> >>>>specified 
> >>>>tel uris.
> >>>>
> >>>>	Paul
> >>>>
> >>>>_______________________________________________
> >>>>Sipping mailing list  
https://www1.ietf.org/mailman/listinfo/sipping
>>>>This list is for NEW development of the application of SIP
>>>>Use [email-masked] for questions on current sip
>>>>Use [email-masked] for new developments of core SIP
>>>>
>>>
>>>_______________________________________________
>>>Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
>>>This list is for NEW development of the application of SIP
>>>Use [email-masked] for questions on current sip
>>>Use [email-masked] for new developments of core SIP
>>
> 
_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP

---

From: "PRATI,LUCA (HP-Italy,ex1)" <[email-masked]>
Date: Thu, 16 Jan 2003 11:01:04 +0100

Hi Folks,

how would you compare SIP/SIMPLE with XMPP from an Instant
Messaging/Presence Management perspective if this is a subject you've
tackled already?
 
No reference to XMPP in the huge (269 pages) RFC 3261 on SIP...
... and it looks that no reference to SIP in the XMPP drafts.
 
Thanks and kind regards

Luca

---

From: "Brian Stucker" <[email-masked]>
Date: Thu, 16 Jan 2003 16:43:28 -0600

A few observations from left field...

We can "know" when a user is done dialing, if you don't want to click to
dial through other
means:

- The user picks up the handset after dialing (ala PBX phones).
- A timer pops in the digit collection routine on the UA (ala PSTN digit
collectors).
- The user hits an extra button to tell the device their done, so it doesn't
have
to read their mind as to when they may be finished (ala cell phones, and PBX
phones).

Really, no matter what, you're going to have to have a timer or an explicit
form of 
"punctuation" (ie a TALK/SEND/CALL/DIAL button) involved in the digit
collection
algorithm. Otherwise, how do you know when a user is continuing to enter
digits, or
has simply entered an invalid number? To use Henning's example of dialing
6744 to
ring his admin, what do you expect the UA to do when he dials 674? Sit there
forever
and wait for the other four to drop? 

You can still offer an auto-completed set of dialed digits for the user,
without 
having to understand what it is that they're dialing.

As for knowing how to form a canonical URL, other than some sort of very
bland BCP,
such as, use a tel url with a particular, one-size-fits-all, phone context
setting,
I doubt you'll be able to satisfy all of the demands that each
vendor/customer may
have in being able to route calls in a predictable manner.

As for the routing to the correct outbound proxy, it seems very artificial
to say that
a reason for having a dialplan in the UA is so that you can select an
outbound proxy
by making the election as part of the dialed digits.

I could argue that the functionality you describe can also be reasonably
handled by 
representing each outbound proxy as a "virtual line". People are used to the
idea, 
that to use your example, personal calls should not go through their
business's PBX, 
and vice-versa, that they have, at a minimum, two-lines (and possibly two
phones). 
One is hooked up to the business PBX, the other through another carrier for
private 
calls. Reducing this down to virtual lines on the UA seems reasonably
logical to me. 
You select the "private" line (which is configured to your private service
provider), 
and then dial to make a personal call. Likewise, you select the "business"
line (which 
is configured to your IP PBX), to make business calls. 

To me, there's a big difference in the UA being able to correctly format
it's request
to the outbound proxy, and the UA having to actually *understand* what is
sent to the
local outbound proxy. A dialplan, to me, infers that the UA has to actually
understand
to some degree, and interpret the digits prior to translations at the proxy.
This means
that some degree of translations are possible at two points in the network,
and now I
have to go about keeping them in-sync with one another to get predictable
results. Seems
like a dangerous mess, and one that the phone system has done without for a
very long
time.

If a dialplan is simply something that we use to format the digit stream
into a standard,
no matter what they dialed, layout so that the proxy can expect a
predictable format that
it will receive the digit stream in, that seems much more feasible and
reasonable. If this
is the case, SIP itself can be considered a dialplan, as the digits must be
transported in
a legally formatted SIP request.

Regards,

Brian

-----Original Message-----
From: Daniel G. Petrie [mailto:[email-masked]]
Sent: Friday, January 10, 2003 4:52 PM
To: Rosen, Brian
Cc: 'Henning Schulzrinne'; Adam Roach; 'Paul Kyzivat';
[email-masked]'
Subject: Re: [Sipping] Do Phones Have Dial Plans, or do Proxies map? was
RE: [Sipping] Re: draft-schulzrinne-sipping-sos-04.txt

There is actually a third reason to have dial plans on the UA.  The
first two have already been brought up:

1) To know when the user is done dialing
2) To know how to form a canonical URL (tel , sip or sips)
3) To know how to route the INVITE to the correct outbound proxy

On the first one, knowing when the user is done dialing,  I am afraid, as
Cullen pointed out, the market (at least in North America) wants a phone
that knows when the user is done dialing.  There are too many people
who still like the pre-cell phone metaphor. Sorry but the people on this
list do not buy enough phones to decide this one ;-).

The UA needs to know how it is going to form a cannonical URL from
the mess of characters and digits the user entered.  So as Brian pointed
out you need some regexp to transform the entered characters into a
URL.   Well guess what, every proxy vendor wants this to be a little
different.   Some want short strings (AKA extensions) transformed
differently
than long strings (AKA E.164 numbers).  So call it what you want you
end up with the equivalent of a dial plan.  The best we can do here is
to come of with a standardized (or call it BCP) way to write the
transforms.  We can write a standard that says this is the one and
only transform, but no phone vendor that has a dial plan mechanism
will be able to drop their dial plan support because they have customers
using it.  However I am sure the market would be happy to push
vendors to support a standardized dial plan description mechanism.

The third use of dial plans is for routing purposes.  I know!  That is
what the proxy is supposed to do.  However there are several uses
for doing some simple routing from the phone base upon the "dialed
string":

a) Functional routing: where based upon the purpose of the call the
user wants the call routed differently.  For example I have a phone
at home from which I make personal calls via my favorite service
provider and from which I make business calls via my enterprise
IP PBX.  I want my private/personal calls private and my business
does not want to pay for my personal calls.   A simple, familiar
metaphor for this is to use a dialing prefix (e.g. dial 9 and number
for business call, dial 8 and number for personal calls).  The alternatives

would be to sell home/office users two phones (I wish that would fly)
or put a proxy in every home/office (I would not mind selling that
many proxies if that would fly as well).

b) Load balancing routing:  based upon my dialed string I may
want to use a different out bound proxy.   Domestic US calls
go to one proxy, international calls go to another, 911/emergency
calls go directly to the local emergency gateway.  Can this be
done by the proxy? Sometimes, if I can get to it, but once you
have a dial plan on the phone, this is just about free from
both an implementation and compute cost perspective (e.g.
loose routing with a Route header in the regexp/transform).

I am happy to remove functionality from the UA and not support
it, but I am afraid the dial plan is here to stay in the UA.  I  think
our best path forward is with a standard way to specify the dial plan
transforms.

"Rosen, Brian" wrote:

> Actually, I'm happy with a "Dial" button.
>
> I'll note most existing SIP phones don't do this (or at least don't
> have a physical "Dial" button, I've seen some with softkeys).
>
> However, the issue remains.  If I dial 6744 on my sip phone (and press
> dial), the sipphone on my admin's desk should ring.  I should not have
> to dial +17247426744.  The fact that I dialed a 4 digit number with
> a 6 as the starting digit tells my system that it is an internal
> extension.  A dial plan is the thing that "knows" this.
>
> What do you want to have happen:
> 1) tel:6744; context=+1724742
> 2) tel:6744; context=marconi-pittsburgh-local-extension
> 3) tel:+17247426744
>
> Note the last is problematic.  As Mike Pierce points out, not all
> extensions have E.164s
>
> And, to amplify the thread that started this, how many identities does
> my admin's UA have to understand?
>
> Again, I'm not opposed to making dial string expansion be a requirement
> of the UA, as long as we standardize the form of the expansion, and the
> mechanism by which the UA learns it.
>
> Brian
>
> > Sent: Thursday, January 09, 2003 9:07 PM
> > To: Adam Roach
> > Cc: Rosen, Brian; 'Paul Kyzivat'; [email-masked]'
> > In case there's doubt: I was not suggesting that we do this. I was
> > trying to find out from Brian what he meant, since the two
> > problem have
> > very different solution sets. The 'abbreviated dialing' case requires
> > nothing except a suitable URI scheme and the translation
> > services of an
> > outbound proxy.
> >
> > Adam Roach wrote:
> > > Cell phones have sufficiently trained the public that it's
> > > okay to hit something like "OK" or "YES" or "DIAL" or "ENTER"
> > > after a phone number. It makes life so much easier for user
> > > interface designers and users alike. For the love of all that
> > > is good, let's not encourage backsliding.
> > >
> > > /a
> >

---

From: "Eric Burger" <[email-masked]>
Date: Thu, 30 Jan 2003 10:44:41 -0500

Why are we doing it at all?

Can't it be a local matter?

For example, a PingTel phone "does it all".

A Marconi IP PBX has a local understanding between the phone and the outbound proxy.

Is there real value in casting this in stone?

> From: Rosen, Brian [mailto:[email-masked]]
> Sent: Thursday, January 09, 2003 10:12 AM
> To: 'Paul Kyzivat'; [email-masked]'
> Subject: [Sipping] Do Phones Have Dial Plans, or do Proxies 
> map? was RE:
> [Sipping] Re: draft-schulzrinne-sipping-sos-04.txt
> 
> 
> > Are there plans to change the definition of the tel uri, or is this 
> > dialed digit strings to the proxy as tel uris without attempting to 
> > emergency calls. However, presumably location information should in 
> >     emergency identifiers, as a list of "tel", "sip" or "sips" URIs.
> >