SIP Interim Working
Group Meeting
November 7, 1999 – Washington, DC
10 am – 7 PM
DCS Presentations
The morning was focussed on understanding the DCS proposals with discussion deferred until the afternoon.
Distributed Call Signaling (DCS) &
Dynamic QoS Architectures
K.K. Ramakrishnan – presenter
Agenda
IP Telephony: Opportunities
Packet telephony & intelligent end terminals coupled with adequate bandwidth (especially access) provide tremendous opportunity
Take advantage of data and voice for an enhanced user experience
Enhance our service provider role
IP disintermediates the service provide
how does the service provider play a role, and derive revenue?
Key POINT: service providers want a role in which they can derive revenue
DOSA – Distributed Open Signaling
Architecture Framework
Protocol Specification Efforts in PacketCable
CableLabs supports an activity to rapidly develop standards for services over cable
major push now to standardize IP telephony
Initial effort was to provide support for simple phones for consumer telephony: multiple lines per subscriber based on SGCP limited to using the constrained user interface, provide traditional telephony
Separate distributed call signaling protocol exploiting intelligence at end-points, address needs of providers.
separate dynamic QoS protocol based on supporting per-flow resource management on access network
Attempted to focus on minimizing the extensions to SIP and rather re-interpret how it is used.
Extensions to SIP
Privacy was considered a big issue.
Layered Architecture
Layer 2: DOCSIS
Layer 3: common services
Layer 4: protocols for telephony and other future functions
HFC Media Capabilities
Primary Ring – few hundred thousand homes
Primary hubs to SH – few tens of thousands of homes
SH – few hundred homes
DOCSIS 1.0 Media Access Protocol
cable modem requests access to transmit a certain amount of data – requests using contention slots
CMTS schedules modem transmission and sends down a map on downstream channel
modem may piggyback request
CM waits for request interval and transmits request frame asking for mini-slots
The CMTS signals the mini-slot grant in a succeeding MAP message.
DOCSIS 1.1 Enhancements
Support for isochronous service and real-time polling
Support for fragmentation of packets
DOCSIS 1.1 introduces "unsolicited" grants
CM/MTA negotiates with the CMTS to have a periodic grant of a certain size – admission control performed on the request to provide isochronous service
CMTS allocates grants to CM/MTA periodically
dddd
A CMTS signals the partial mini-slot grant in a MAP message.
The CMTS signals the remaining mini-slot grant in a MAP message.
SOURCES OF DELAY
G.711: 80 bytes at 64 Kbps è 10 ms packetization delay
Sources of delay
RT delay: typical backbone 96 ms
10 ms packetization results in 199 ms.
Concluded that 300 ms is desired so just make it with this system
There was some discussion about worst case compared to average case and that the worst case analysis may not be useful.
Conclusions: can barely support the required demand using this system. They are concerned with both delay and capacity and manage those resources carefully.
Service Providers Requirements
DCS Architecture
Enhances SIP with carrier class features
Tight coupling between call signaling and QoS control
Care taken to ensure untrusted end-points behave as desired
Signaling Performance Requirements
Stateless proxies were discussed. They are slightly different than as used in the SIP documents
Dynamic QoS Framework
Network considered to have multiple segments
Each segment performs its own resource management, using protocols most appropriate for segment
Access network likely to be resource constrained
Use per-flow signaling and allocation, on a c-by-c basis, in concert with call-leg manipulation
Backbone network resources may be managed differently
Two-phase resource management
Have resource before ringing, but enable billing only after far end picks up
Gate controller is responsible for allocating and managing the resources
Gate Control Architecture
Gates in edge routers opened for individual calls – call admission control and policing implemented in edge routers
Gate controller manipulates a gate after call setup is authorized
- setting up gate in advance of reservation request allows a gate controller to be stateless
MTA makes a resource reservation request by signaling to edge router
Accounting info stored at the edge router to generate usage events
Example Call Flow
MTA issues an INVITE. The DCS Proxies perform gate control function and setup the gates to allow the appropriate flows for the calls. The 200 OK from the destination completes causes the gate controllers to finalize the flow filters in the gates. This sequence is for authorization.
Resource Management: 1st Phase
Resource Management: 2nd Phase
How do proxies know that the second INVITE is related to the first INVITE and insure that the INVITE goes to the right proxies? The speaker indicated that it doesn’t have to go through the same proxies and that this will be discussed in a subsequent portion of the presentation.
What does the second INVITE contain? The same information, with an incremented sequence number.
Resource Envelopes
Authorization of resource usage done at call setup; exercise policy at gate controller, "authorized" envelope
Later, capability negotiation enables end-points to reserve resources
End-points commit to use resources when far end picks-up
Using RSVP for Segmented Resource Allocation
Client sends path message directed towards far endpoint
CMTS intercepts PSTN message
CMTs reserves bandwidth on DOCSIS link
Backbone resource management ensures capacity available for call
On successful reservation, CMTS sends RESV message back to client
Minimal changes to RSVP: destination of PATH is destination of data
There was some comments raised that this method does not guarantee that the far-end reservation is performed. It is expected that the far-end endpoint will issue its own resource reservation.
There is also provision for additional PATH/RESV sequence on the terminating side, if there are conventional routers involved.
Extensions to RSVP
Bi-directional bandwidth is reserved with one PATH/RESV pair
Resources identified explicitly
Managing changes in resource usage during a call
Two-phase resource management support
Support included for resource reservation within the customer LAN
Summary
DOSA introduced the concept of integration QoS with call signaling
DCS call signaling allows use of end-point intelligence to support new services and integration with other applications
DCS proxies not required to be involved throughout the call
Dynamic QoS provides the common underlying framework of QoS
Basic SIP/DCS Call Flow
Bill
New headers:
Caller, Anonymity, Stage 1
Caller
This is used rather than From: because the proxies cannot change From: field.
The caller field is a MUST. The originating proxy server does not use the From: field in anyway. The number is required; the name and any other information are optional.
Anonymity
Verifies that the header is present
State l
Insures that resources are set aside as described above
Proxy headers:
Gate, billing-info, billing-id
Anonymity: Off
DCS proxy server (terminating) modifies the value of the DCS caller header based on the type of privacy requested by the calling party
Removes the header from the message
Gate:
Terminating DCS proxy passed to gate controller for controlling resource allocation
Billing-info
Header saved – needed when subsequent transaction response is received
Removes the header from the message
Single service provider issues focussed on. Multiple service provider scenarios have not been specifically addressed
Billing-ID
Header saved
Removes the header from the message
Terminating proxy – T-MTA
New headers: State
State:
User agent server saves the value of state so that it can be used to invoke services related to this call (e.g., call trace, call transfer).
200 OK uses standard SIP from to CMTA to dpt
A Gate id is inserted into the 200OK by DPt to the DPo
Gate, State headers are inserted to 200OK by DPo to the Mat
ACK end-to-end
Stage 2 is the standard SIP INVITE
standard 180 ringing
standard 200 ok
standard ACK
standard 200 ok
standard BYE
Standard RSVP release mechanism is used to release resources
How is the resource level usage information synchronized with the proxy information? The edge routers perform the usage monitoring by generating events. Proxies generate the information for the edge routers to actually perform the billing functions.
Integration of Resource Management and
Call Signaling for IP Telephony
Bill Marshall
(This was the most contentious at the last IETF meeting.)
High Speed Data Service vs. Telephony
Service
Telephony Service over IP Networks
Service Provider must implement Policy Restrictions on RSVP
How about if only telephony subscribers can do the RSVP?
How about if RSVP required per-call authorization?
To achieve current telephony billing model.
It appears to AT&T that billing models must continue to support capabilities for international settlement policies that are currently in existence.
Call Blocking vs. Call Defect
Does the 0.00001% apply to cellular telephony as well? Carriers do not like to report failures to the FCC, so they want to minimize those failures. The rate at which the failures need to be reported lead to determination
Major defect concerned about is when the resource reservation failure after the call has been notified.
Prevention of Call Defects Vs Theft of Service
When to allocate resources needed for the call?
Can we charge customer for the time the phone is ringing?
Can we trust the customer to tell us when called party answers?
Theft of Service is a Major Problem
Customers have access to High Speed Data Service
Access is via box within customer premises
Via a box that we encourage others to program
Experience with Cellular phones, Set Top Boxes, etc
Expect the box in customer’s home to do exactly what is in the customer’s best interest to do, not what is in the network or service provider’s interests.
Examples:
Can we trust the customer to tell us when called party answers? No.
Can we place a time limit on ringing?
Other alternatives?
Conclusion: we only give the resources for the connection when the endpoint says call answered. This is when we commit the resources.
But, what if called party says they answered, but calling party (payor) didn’t?
But what if calling party (payor) says to disconnect, but called party doesn’t?
If two cooperating users place calls to each other, each getting a few half-calls.
Theft of Service, Conclusion
Must have a control point inside the trusted network to police requests
Must limit packets to only the destination authorized, and limit bandwidth to only the amount authorized.
Must coordinate with the control point at other end of connection.
Basic Requirements for Resource Management
Two-stage Resource Reservation
Post-Pickup Delay Requirements
Post-Pickup Delay – Voice Path
0 |
called party answers Assume 20ms delay of MTA access of upstream |
20ms |
MTA sends Commit message to Edge Router Assume edge router schedules QoS in 4ms |
24ms |
Edge Router schedules QoS and sends MAP |
30ms |
First payload packet sent by MTA |
|
Assume: 40ms one-way delay across network |
70 ms |
First payload packet received by call originator |
Post-Pickup Delay – Signaling Path
0 |
Called party answers Assume 20ms delay of MTA access of upstream |
20ms |
MTA sends 200 OK message to its proxy(1) Assume proxy load 80%, avg. queue of 4 msgs, 10ms of processing for a request, 5ms for a response: delay=35ms |
55ms |
Proxy(1) sends 200 OK to Proxy(2) Assume 33.3ms transmission delay Proxy-Proxy |
88ms |
Proxy(2) receives the 200 OK The number of proxies relates to the number of security associations. Assume 4 proxies |
123ms |
Proxy(2) to Proxy(3) |
192 |
Proxy(3) to Proxy(4) |
260ms |
Proxy(4) to endpoint |
Clipping Choices at Call Originator
What is the call originator to do when receiving payload before the 200-OK?
Call Setup: Fundamental Requirements
First INVITE must go through proxies for authorization/translation
Resources must be available prior to ringing destination phone
Answer must go direct, not via proxies
DCS messages and relationship to resource reservation
Invite across network
IP return information
Resource reservation
Message to cause ringing
Ringing
Called party off-hook: 200 OK (answer) end-to-end
Single-stage Alternatives Examined
Invite (w/reserve)
100 trying includes SDP for forward direction media
RSVP initiated from both ends for reservation
resv-ack requested by destination
180 ringing when all resources available
may clip voice
Conclusion: Need for two-state INVITE
Invite (stage 1)
200-OK
ACK
RSVP
Second INVITE causes alerting
A knowledgeable proxy can convert from one style to another
Two-stage calling single-stage INVITE
invite (stage 1)à invite(w/reserve)
100 trying becomes 200-OK
ack absorbed
180 ringing absorbed
second invite passed through
180 ringing will be sent again
Potential race if answered quickly, may lead to clipping
Single-stage calling two-stage
Can also be interworked
Potentially may be clipped
Additional header in initial INVITE message
Call Authorization and Quality of Service
K. K. Ramakrishnan
A shortened version was presented in order to give an overview of QoS RSVP handling to IETF. It may or may not be a part of an ID to IETF in the future.
GateSet message sent from CMS/Policy Server to CMTS/NE in order to install destination MTP address and authorization envelope. They use COPS for this. The information from the 200 OK SDP portion is sent to the Gate and some information about the Remote Gate.
RSVP_PATH+ to destination MTA
The message contains information that is sufficient for both directions. Originating MTA issues a PATH message to the destination MTA, but the CMTS intercepts it and compares against the authorization envelope.
RSVP Usage Enhancements
All enhancements use opaque objects that work with traditional RSVP routers.
rspec has to be carried with rsvp_path
The reverse direction RSVP information has to be carried with the RSVP_PATH
The PacketCable QoS spec includes detailed information regarding reservation
CMST signals the success
RSVP__RESV+: the message contains information that is sufficient for one direction only.
This also happens at the terminating side as well.
If two-way reservation is necessary at CPE routers
RSVP Routers between MTA and CM: RSVP_PATH is needed.
The message contains information that is sufficient for one direction only.
This PATH message is used for dealing with traditional routers that handle unidirectional resource reservation.
Before sending media stream, the MTA commits the bandwidth
The MTA sends COMMIT to CMTS. The message contains information that is sufficient for CMTS to resolve which reservation is to be activated.
The COMMIT can look like a RSVP to reserve other resources.
CMTS signals the gate commit to remote end.
The two edges communicate directly to identify that gates are opening and that they are coordinated. The remote gate information is required to perform this edge-to-edge commit. This is done via a GateOpen command.
This is to protect against some theft of service scenarios in which two half-calls are created. The flow is opened and a timer set awaiting response from the far GateOpen message.
GateOpen from both ends causes COMMIT_ACK.
For call release, endpoint generates a standard PATH_RELEASE message. A GateClose message goes between the gates to ensure that the gates are again closed.
After release of the resources, a signaling BYE is sent.
Afternoon session
Michael Manette – 3Com
Detailed call flow information
Billing-Info: information added to the DCS-Proxy
DCS-Proxy does not propagate redirect responses
Multiple billing-info headers can be added to identify that the call legs may have different billing-info.
Collect Call: may not be solved in this version. In the message headers, the terminating proxy can override the billing info in the 200 OK. It is believed that the hooks are there, but there are no details provided in any of the specifications at this time.
SIP Extensions for Caller Identity, Privacy, and Operator Services
Fleming Andreason – Telcordia
Calling Identity – PSTN
Calling Identity Items
Terminating switch must be able to identify calling party, e.g., for call trace
Calling Identity Delivery services allow the called party to obtain calling identity information about the calling party
Calling Identity Delivery Blocking (CIDB) features allow the calling party to control the presentation of calling identity items.
Calling Identity – SIP
These fields apply to the INVITEs for Stage 1.
INVITE: encrypt From header field to maintain privacy
Caller: John Doe; 555-1111 – calling name and number, as provided
Anonymity: calling num
Proxy(1) normalizes the caller number.
Proxy(2) implements the privacy function by inserting "Private" into the Caller header to the t-MTA.
Privacy – other issues to consider
From – may be encrypted; set display-name to anonymous before forwarding to User Agent
Contact – point to anonymizer
Via – may be encrypted or removed statefully by proxies
Call-ID – should not be based on endpoint’s IP-address
SDP – several fields include IP-address and user information, e.g., owner
RTCP – some messages may include user information, e.g., name
Question raised about the validation (i.e., screening) of calling numbers. The correspondence to ISDN is that the From: header corresponds to a user-provided and unscreened number. The caller field is guaranteed valid like the Calling Party Number parameter in ISUP. These are guaranteed by the DCS Proxy.
Supporting Operator Services
Fleming presented an MF operator flow that indicated use of BLV.
The MG is designed to detect the transmission tone from the operator system and the MGC re-invites with the EI call.
The flow indicates that the BLV and EI requests are made to the T-MTA. There could be security issues related to reliance on the endpoint to provide the functionality required to implement the BLV/EI functions.
Distributing Call State to Endpoints
Poornima Lalwaney – General Instrument
Managing State
Storing state at end points
Achieving Call Features with stateless proxy using state header information
Call Transfer – Illustration of the user of
State Information (Blind without consultation)
Uses the INVITE (also, replace) construct from proxy to proxy to O-MTA, rather than the BYE construct that the I-D on call control proposal. This information
The receipt of the INVITE at the O-MTA, it triggers and INVITE(stage1) message for the transfer call.
DCS-State and HTTP Cookies
http uses cookie for state management/as a handle to pass session context change from server to client
missed the DCS version…
A comparison was made between DCS-State and HTTP cookies. It appears that the HTTP cookie is a superset of the STATE required for the DCS-state. At this time, it does not appear to be useful.
Question: Does the state information capture the anonymity information and presentation restriction information? Yes. This may be used to restrict its use in call return.
JR thanked associates from PacketCable for presenting the material from their DCS proposal.
Discussion
Chair: DCS presented a set of requirements. The WG must decide if we need to support these requirements. These drafts, then, provide proposals for implementing those requirements.
Henning: Let’s formulate some goals and agree on those.
One of the architectural ideas of SIP is to avoid the buy-it-all or you get nothing philosophy. Can the proposed material be considered orthogonal items for use by particular users when needed? Can we as a group do this division up front so that things don’t depend on each other?
Text protocols have no style guide, but it would be good to keep syntax styles regular across the different headers rather than completely new methods for each one.
Try to leverage some of these ideas for things which do not have the same architectural assumptions as presented here, but share some of the same requirements.
If we want to avoid some of the protocol problems, we should always assume that we are in a heterogeneous environment and not require multiple layers of translation. We may also want to have a system that may want to use AT&T super duper service or 7-11 style off-the-shelf cheap service.
Response (KK):
All of these are good principles. Started looking at it as one integrated framework. They have tried to separate out pieces step-by-step as it evolved. This lead to writing separate drafts on these topics. Interworking with SIP is desired, but details have not been worked through. They wanted to begin with something solid first, but will work on that as well.
Scott Petrack:
The requirements are that the system act, look, feel like the PSTN. SIP was not designed with these requirements particular in mind. It should be kept in mind that some of these things may not be necessary longer term and maybe could be retired. We should not be forced to do things in the future that we don’t need to.
David Oran:
There was a conscious effort to study the user model of the PSTN and see what the user expects of the system. An assessment should be made to determine if anything was done just because it is implemented that way in the PSTN. These items should be removed. What should remain are the user expectations.
Response (KK):
A focus was made on regulatory requirements and how these reflect what societal expectations are.
Scott Petrack:
If you have an internet terminal, some of the requirements may actually change.
Johnathan Rosenberg:
Tons of really good ideas here. Leveraging the experiences of these experts is tremendously valuable. Can we think about how to generalize the feature or requirements to solve more problems? For example, the state or cookie concept storage in the terminals is a good idea. Can this be generalized? This does introduce some good reliability. It would be great if we had some general privacy and other mechanisms that expand beyond telephony.
Lawrence Conroy:
With BLV, you don’t need actually need to determine if there is an RTP stream. Maybe can send them to a voice announcement unit.
Response (Bill Marshall):
There is a desire that there is some listening to meaningful information on the voice line, not just presence of information.
JR: wants to make a more general system
?: Security implications. Could this be broken into easily?
?: There are also limitations because the SDP doesn’t include source ports. How can the gate filters handle this? It seems that there could be problems with systems that use this capability.
Two-phase INVITE process: Would it be reasonable for a call within a call method? That is, perhaps embed a reservation request into a SIP message. This proposal wasn’t too clear.
What about services that have multiple contact addresses? If redirect responses are blocked by the proxies, then the we have problems. The forwarding services should be implemented using call forwarding proxies rather than removing capabilities such as specifying an HTTP URL in a redirect that user may want to utilize.
The TEL: URL is becoming common usage. Could this be utilized for some of the LNP processing rather than a LNP field in the SIP URL?
Why you can’t charge for general RSVP reservations? User expectation is that billing starts when the called party picks up the phone. In fact, billing models with different codecs and silence suppression have different requirements. Different requirements related to amount of data transmitted may be necessary. Per minute model may not be a long-term requirement. You need to encourage billing that will enable optimization of services.
Response:
The issue of charging is for what is for reserved. Charging for holding of resources is what service provider might wish to charge for. Will allow for the capability for RSVP to determine what is being billed for rather than what is actually being used.
Differentiation between what is reserved and what is used is necessary from a user perspective.
Henning:
Do we want to have different strengths of resource reservation? If so, these are handled by on a stream by stream basis. These should be addressed by RSVP extension.
Response:
The mechanisms are in place to know when the different aspects occur: reservation occurs, usage begins, usage ends, resource is released. The mechanisms are defined so that any billing model can be implemented based on these items.
Two stages of the invitation –
Is the two stage necessary? It is difficult to coordinate the gate opening to be within 100ms is the problem. If this gate control was necessary to that degree, then two-stage method is not necessary.
JR: Does the clipping problem get solved within 100 ms in the PSTN today? If not, why are we trying to solve it better here? Is it acceptable to use best effort traffic for the 100 ms until the QoS effort kicks in?
Response: 70% upstream traffic is reserved for voice traffic.
JR: Best effort voice in the reverse direction may be sufficient then. But, cable access technology notes that best effort packets take significantly more time the
Response: Jitter buffering causes a problem. Clicks may occur when the buffer adapts.
?: Tying in of SIP signaling and QoS control is extremely necessary. Good work. MCI has proposed some similar mechanisms using policy control at the edges of the network. The MCI proposal does differ significantly for the 2-stage invite.
Question: How does the network based proxy work when the second INVITE goes directly to the endpoint? Doing this two-stage process, how does the proxy server get back into the call? How does the endpoint request services from proxies?
Response: It was intended that the proxy gets out of the call as soon as possible.
Issue: This may be constraining.
More discussion: how does the endpoint know how to invoke a feature of a proxy in this scenario? For example, How do I record that a BYE event occurred?
Response:
two-stage invite addresses the blocking issue
the direct response 200 ok is meant to solve the clipping issue
Clearly Resource Allocation is useful to tie to the call signaling. The other is a separate issue.
Reliability of data in the MTA is an issue. It would be probably be desired to have a method of having a network store for things that are critical such as for call trace.
Proxies, endpoints. There is no reason that the service provider could not provide some of these storage capabilities in a proxy.
If we divide the state information into the state required for active calls vs. state that you must have between calls. This information between calls may be useful for the service provider to maintain. There is a different fate sharing model for between calls as during calls.
Anonymity:
There are certain mechanisms in place already for the honest people. Maybe its more efficient to certify existing information rather than replace the information. Treat these as exception condition rather than removing capabilities that we already have. If you have reason to believe that the information cannot be verified, then include an XXX-sender not verified header. This is recommended to maintain backward compatibility with existing systems.
What happens next?
JR: What requirements there are and what do we want to support? This did not come clearly out of the discussion. General consensus is known on some of the items, but not all. After we reach agreement on the requirements, then we work the particular proposals.
Note: Many of the ? mark comments were generated by Dean Willis. One or two by Steve Donovan (I think). However, I cannot identify them now.