draft-ietf-pint-protocol-02.txt | draft-ietf-pint-protocol-03.txt | |||
---|---|---|---|---|
INTERNET-DRAFT Scott Petrack, | INTERNET-DRAFT Scott Petrack, | |||
Internet Engineering Task Force Metatel | Internet Engineering Task Force MetaTel | |||
PINT Working Group Lawrence Conroy, | PINT Working Group Lawrence Conroy, | |||
Issued: 14 October 1999 Siemens Roke Manor Research | Issued: 18 February 2000 Siemens Roke Manor Research | |||
Expires: 18 August 2000 | ||||
The PINT Service Protocol: | The PINT Service Protocol: | |||
Extensions to SIP and SDP for IP Access to Telephone Call Services | Extensions to SIP and SDP for IP Access to Telephone Call Services | |||
<draft-ietf-pint-protocol-02.txt> | <draft-ietf-pint-protocol-03.txt> | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
all provisions of Section 10 of RFC2026. | all provisions of Section 10 of RFC2026. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
Drafts. | Drafts. | |||
skipping to change at page 10, line ? | skipping to change at page 10, line ? | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) The Internet Society (1999). All rights reserved. | Copyright (c) The Internet Society (1999). All rights reserved. | |||
Abstract | Abstract | |||
This document contains the specification of the PINT Service Protocol 1.0, | This document contains the specification of the PINT Service Protocol | |||
which defines a protocol for invoking certain telephone services from an IP | 1.0, which defines a protocol for invoking certain telephone services | |||
network. These services include placing basic calls, sending and receiving | from an IP network. These services include placing basic calls, sending | |||
faxes, and receiving content over the telephone. The protocol is specified | and receiving faxes, and receiving content over the telephone. The | |||
as a set of enhancements and additions to the SIP 2.0 and SDP protocols. | protocol is specified as a set of enhancements and additions to the SIP | |||
2.0 and SDP protocols. | ||||
This document is intended for the PSTN-Internet Interworking (PINT) working | This document is intended for the PSTN-Internet Interworking (PINT) | |||
group of the Internet Engineering Task Force. Comments are solicited and | working group of the Internet Engineering Task Force. Comments are | |||
should be addressed to the working group's mailing list at | solicited and should be addressed to the working group's mailing list at | |||
pint@lists.research.bell-labs.com and/or the authors. | pint@lists.research.bell-labs.com and/or the authors. | |||
Petrack & Conroy [Page 1] | Petrack & Conroy [Page 1] | |||
Contents | Contents | |||
1. Introduction ......................................................... 4 | 1. Introduction .................................................... 4 | |||
1.1 Glossary ............................................................ 5 | 1.1 Glossary ....................................................... 6 | |||
2. PINT Milestone Services .............................................. 6 | 2. PINT Milestone Services ......................................... 6 | |||
2.1 Request to Call ................................................. 6 | 2.1 Request to Call ............................................ 6 | |||
2.2 Request to Fax .................................................. 6 | 2.2 Request to Fax ............................................. 6 | |||
2.3 Request to Hear Content ......................................... 6 | 2.3 Request to Hear Content .................................... 7 | |||
2.4 Relation between PINT milestone services and traditional | 2.4 Relation between PINT milestone services and traditional | |||
telephone services ............................................... 6 | telephone services .......................................... 7 | |||
3. PINT Functional and Protocol Architecture ............................. 7 | 3. PINT Functional and Protocol Architecture ........................ 7 | |||
3.1. PINT Functional Architecture .................................... 7 | 3.1. PINT Functional Architecture ............................... 7 | |||
3.2. PINT Protocol Architecture ...................................... 8 | 3.2. PINT Protocol Architecture ................................. 8 | |||
3.2.1. SDP operation in PINT ..................................... 9 | 3.2.1. SDP operation in PINT ................................ 9 | |||
3.2.2. SIP Operation in PINT ..................................... 9 | 3.2.2. SIP Operation in PINT ............................... 10 | |||
3.3. REQUIRED and OPTIONAL elements for PINT compliance ............. 10 | 3.3. REQUIRED and OPTIONAL elements for PINT compliance ........ 10 | |||
3.4. PINT Extensions to SDP 2.0 ..................................... 10 | 3.4. PINT Extensions to SDP 2.0 ................................ 11 | |||
3.4.1. Network Type "TN" and Address Type "RFC2543" ............. 11 | 3.4.1. Network Type "TN" and Address Type "RFC2543" ........ 11 | |||
3.4.2. Support for Data Objects within PINT ..................... 11 | 3.4.2. Support for Data Objects within PINT ................ 12 | |||
3.4.2.1. Use of fmtp attributes in PINT requests ............ 13 | 3.4.2.1. Use of fmtp attributes in PINT requests ....... 14 | |||
3.4.2.2. Support for Remote Data Object References in PINT .. 13 | 3.4.2.2. Support for Remote Data Object References | |||
3.4.2.3. Support for GSTN-based Data Objects in PINT ........ 14 | in PINT .................................... 15 | |||
3.4.2.4. Session Description support for included Data Objects 15 | 3.4.2.3. Support for GSTN-based Data Objects in PINT.... 15 | |||
3.4.2.4. Session Description support for included Data | ||||
Objects .................................... 17 | ||||
3.4.3. Attribute Tags to pass information into the Telephone | 3.4.3. Attribute Tags to pass information into the Telephone | |||
Network .................................................. 16 | Network .................................... 17 | |||
3.4.3.1. The phone-context attribute ........................ 17 | 3.4.3.1. The phone-context attribute ................... 18 | |||
3.4.3..2. Presentation Restriction attribute ................. 19 | 3.4.3.2. Presentation Restriction attribute ............ 20 | |||
3.4.3.3. ITU-T CalledPartyAddress attributes parameters ..... 19 | 3.4.3.3. ITU-T CalledPartyAddress attributes parameters 21 | |||
3.4.4. The "require" attribute .................................. 20 | 3.4.4. The "require" attribute ............................. 22 | |||
3.5. PINT Extensions to SIP 2.0 ..................................... 21 | 3.5. PINT Extensions to SIP 2.0 ................................ 23 | |||
3.5.1. Multi-part MIME (sending data along with SIP request) .... 21 | 3.5.1. Multi-part MIME (sending data along with SIP request) 23 | |||
3.5.2. Warning header ........................................... 22 | 3.5.2. Warning header ...................................... 24 | |||
3.5.3. Mechanism to register interest in the disposition of a PINT | 3.5.3. Mechanism to register interest in the disposition of | |||
service, and to receive indications on that disposition .. 23 | a PINT service, and to receive indications on that | |||
3.5.3.1. Opening a monitoring session with a SUBSCRIBE request 23 | disposition ........................................ 24 | |||
3.5.3.2. Sending Status Indications with a NOTIFY request ... 24 | 3.5.3.1. Opening a monitoring session with a SUBSCRIBE | |||
request .................................... 25 | ||||
3.5.3.2. Sending Status Indications with a NOTIFY | ||||
request .................................... 26 | ||||
3.5.3.3. Closing a monitoring session with an UNSUBSCRIBE | 3.5.3.3. Closing a monitoring session with an UNSUBSCRIBE | |||
request ............................................ 25 | request ....................................... 27 | |||
3.5.3.4. Timing of SUBSCRIBE requests ....................... 25 | 3.5.3.4. Timing of SUBSCRIBE requests .................. 28 | |||
3.5.4. The "Require:" header for PINT ........................... 26 | 3.5.4. The "Require:" header for PINT ...................... 28 | |||
3.5.5. PINT URLs within PINT requests ........................... 26 | 3.5.5. PINT URLs within PINT requests ...................... 29 | |||
3.5.5.1. PINT URLS within Request-URIs ...................... 27 | 3.5.5.1. PINT URLS within Request-URIs ................. 29 | |||
3.5.6. Telephony Network Parameters within PINT URLs ............ 27 | 3.5.6. Telephony Network Parameters within PINT URLs ....... 30 | |||
3.5.7. REGISTER requests within PINT ............................ 28 | 3.5.7. REGISTER requests within PINT ....................... 30 | |||
3.5.8. BYE Requests in PINT ..................................... 28 | 3.5.8. BYE Requests in PINT ................................ 31 | |||
4. Examples of PINT Requests and Responses .............................. 30 | ||||
4.1. A request to a call centre from an anonymous user to receive a | ||||
phone call ..................................................... 30 | ||||
4.2. A request from a non anonymous customer (John Jones) to receive a | ||||
phone call from a particular sales agent (Mary James) .......... 30 | ||||
4.3. A request to get a fax back .................................... 31 | ||||
Petrack & Conroy [Page 2] | Petrack & Conroy [Page 2] | |||
4.4. A request to have information read out over the phone .......... 32 | ||||
4.5. A request to send an included text page to a friend's pager .... 32 | 4. Examples of PINT Requests and Responses ......................... 32 | |||
4.1. A request to a call center from an anonymous user to receive | ||||
a phone call ........................................... 32 | ||||
4.2. A request from a non anonymous customer (John Jones) to | ||||
receive a phone call from a particular sales agent | ||||
(Mary James) ........................................... 33 | ||||
4.3. A request to get a fax back ............................... 34 | ||||
4.4. A request to have information read out over the phone ..... 34 | ||||
4.5. A request to send an included text page to a friend's pager 35 | ||||
4.6. A request to send an image as a fax to phone number | 4.6. A request to send an image as a fax to phone number | |||
+972-9-956-1867 ................................................ 33 | +972-9-956-1867 ........................................ 35 | |||
4.7. A request to read out over the phone two pieces of content in | 4.7. A request to read out over the phone two pieces of content | |||
sequence ....................................................... 33 | in sequence ............................................ 36 | |||
4.8. Request for the prices for ISDN to be sent to my fax machine ... 34 | 4.8. Request for the prices for ISDN to be sent to my fax | |||
4.9. Request for a callback ......................................... 34 | machine ................................................ 36 | |||
4.10.Sending a set of information in response to an enquiry ......... 35 | 4.9. Request for a callback .................................... 37 | |||
4.11.Sportsline "headlines" message sent to your phone/fax/pager .... 35 | 4.10.Sending a set of information in response to an enquiry .... 37 | |||
4.12.Automatically giving someone a fax copy of your phone bill ..... 37 | 4.11.Sportsline "headlines" message sent to your phone/fax/pager 38 | |||
4.12.Automatically giving someone a fax copy of your phone bill 39 | ||||
5. Security Considerations .............................................. 38 | 5. Security Considerations ......................................... 40 | |||
5.1. Basic Principles for PINT Use ................................. 38 | 5.1. Basic Principles for PINT Use ............................ 40 | |||
5.1.1. Responsibility for service requests ..................... 38 | 5.1.1. Responsibility for service requests ................ 40 | |||
5.1.2. Authority to make requests .............................. 38 | 5.1.2. Authority to make requests ......................... 41 | |||
5.1.3. Privacy ................................................. 39 | 5.1.3. Privacy ............................................ 41 | |||
5.1.4. Privacy Implications of SUBSCRIBE/NOTIFY ................ 39 | 5.1.4. Privacy Implications of SUBSCRIBE/NOTIFY ........... 42 | |||
5.2. Registration Procedures ....................................... 40 | 5.2. Registration Procedures .................................. 42 | |||
5.3. Security mechanisms and implications on PINT service .......... 40 | 5.3. Security mechanisms and implications on PINT service ..... 43 | |||
5.4. Summary of Security Implications .............................. 42 | 5.4. Summary of Security Implications ......................... 45 | |||
6. Deployment considerations and the Relationship PINT to I.N. | 6. Deployment considerations and the Relationship PINT to I.N. | |||
(Informative) ........................................................ 44 | (Informative) ................................................... 47 | |||
6.1. Web Front End to PINT Infrastructure ........................... 44 | 6.1. Web Front End to PINT Infrastructure ...................... 47 | |||
6.2. Redirects to Multiple Gateways ................................. 44 | 6.2. Redirects to Multiple Gateways ............................ 47 | |||
6.3. Competing PINT Gateways REGISTERing to offer the same service .. 45 | 6.3. Competing PINT Gateways REGISTERing to offer the same | |||
service ................................................ 48 | ||||
6.4. Limitations on Available Information and Request Timing for | 6.4. Limitations on Available Information and Request Timing for | |||
SUBSCRIBE ...................................................... 46 | SUBSCRIBE .............................................. 49 | |||
6.5. Parameters needed for invoking traditional GSTN Services within | 6.5. Parameters needed for invoking traditional GSTN Services | |||
PINT ........................................................... 47 | within PINT............................................. 51 | |||
6.5.1. Service Identifier ....................................... 47 | 6.5.1. Service Identifier .................................. 51 | |||
6.5.2. A and B parties .......................................... 47 | 6.5.2. A and B parties ..................................... 51 | |||
6.5.3. Other Service Parameters ................................. 48 | 6.5.3. Other Service Parameters ............................ 51 | |||
6.5.4. Service Parameter Summary ................................ 48 | 6.5.4. Service Parameter Summary ........................... 52 | |||
6.6. Parameter Mapping to PINT Extensions............................ 49 | 6.6. Parameter Mapping to PINT Extensions....................... 53 | |||
7. Open Issues and Draft State .......................................... 51 | ||||
7.1. Open Issues .................................................... 51 | ||||
7.2. Draft State .................................................... 51 | ||||
8. References ........................................................... 51 | ||||
9. Acknowledgements ..................................................... 52 | ||||
Appendix A: Collected ABNF for PINT Extensions .......................... 53 | ||||
Appendix B: IANA Considerations ......................................... 58 | ||||
Appendix C: Authors' Addresses .......................................... 60 | 7. Open Issues and Draft State ..................................... 55 | |||
7.1. Open Issues ............................................... 55 | ||||
7.2. Draft State ............................................... 55 | ||||
8. References ...................................................... 55 | ||||
9. Acknowledgements ................................................ 56 | ||||
Appendix A: Collected ABNF for PINT Extensions ..................... 57 | ||||
Appendix B: IANA Considerations .................................... 61 | ||||
Appendix C: Authors' Addresses ..................................... 63 | ||||
Petrack & Conroy [Page 3] | Petrack & Conroy [Page 3] | |||
1. Introduction | 1. Introduction | |||
The desire to invoke certain telephone call services from the Internet has | The desire to invoke certain telephone call services from the Internet | |||
been identified by many different groups (users, public and private network | has been identified by many different groups (users, public and private | |||
operators, call center service providers, equipment vendors, see [7]). The | network operators, call center service providers, equipment vendors, see | |||
generic scenario is as follows (when the invocation is successful): | [7]). The generic scenario is as follows (when the invocation is | |||
successful): | ||||
1. an IP host sends a request to a server on an IP network; | 1. an IP host sends a request to a server on an IP network; | |||
2. the server relays the request into a telephone network; | 2. the server relays the request into a telephone network; | |||
3. the telephone network performs the requested call service. | 3. the telephone network performs the requested call service. | |||
As examples, consider a user who wishes to have a call placed to his/her | As examples, consider a user who wishes to have a callback placed to | |||
telephone. It may be that a customer wishes to get a call from the support | his/her telephone. It may be that a customer wants someone in the | |||
department of some business, or a user wishes to hear some remote automatic | support department of some business to call them back. Similarly, a user | |||
weather service via recorded or synthesised speech. Within a local | may want to hear some announcement of a weather warning sent from a | |||
environment such a request might result in the placement of a call between | remote automatic weather service in the event of a storm. | |||
employees over the internal PBX. | ||||
We use the term "PSTN/Internet Interworking (PINT) Service" to denote such | We use the term "PSTN/Internet Interworking (PINT) Service" to denote | |||
a complete transaction, starting with the sending of a request from an IP | such a complete transaction, starting with the sending of a request from | |||
client and including the telephone call itself. PINT services are | an IP client and including the telephone call itself. PINT services are | |||
distinguished by the fact that they always involve two separate networks: | distinguished by the fact that they always involve two separate | |||
an IP network to request the placement of a call, and the Global Switched | networks: | |||
Telephone Network (GSTN) to execute the actual call. It is understood that | an IP network to request the placement of a call, and the Global | |||
Intelligent Network systems, private PBXs, cellular phone networks, and | Switched Telephone Network (GSTN) to execute the actual call. It is | |||
the ISDN can all be used to deliver PINT services. Also, the request for | understood that Intelligent Network systems, private PBXs, cellular | |||
service might come from within a private IP network that is disconnected | phone networks, and the ISDN can all be used to deliver PINT services. | |||
from the whole Internet. | Also, the request for service might come from within a private IP | |||
network that is disconnected from the whole Internet. | ||||
The requirements for the PINT protocol were deliberately restricted to | The requirements for the PINT protocol were deliberately restricted to | |||
providing the ability to invoke a small number of fixed telephone call | providing the ability to invoke a small number of fixed telephone call | |||
services. These "Milestone PINT services" are specified in section 2. Great | services. These "Milestone PINT services" are specified in section 2. | |||
care has been taken, however, to develop a protocol that is aligned with | Great care has been taken, however, to develop a protocol that is | |||
other Internet protocols where possible, so that future extensions to PINT | aligned with other Internet protocols where possible, so that future | |||
could develop along with Internet conferencing. | extensions to PINT could develop along with Internet conferencing. | |||
Within the Internet conference architecture, establishing media calls is | Within the Internet conference architecture, establishing media calls is | |||
done via a combination of protocols. SIP [1] is used to establish the | done via a combination of protocols. SIP [1] is used to establish the | |||
association between the participants within the call (this association | association between the participants within the call (this association | |||
between participants within the call is called a "session"), and SDP [2] is | between participants within the call is called a "session"), and SDP [2] | |||
used to describe the media to be exchanged within the session. The PINT | is used to describe the media to be exchanged within the session. The | |||
protocol uses these two protocols together, providing some extensions and | PINT protocol uses these two protocols together, providing some | |||
enhancements to enable SIP clients and servers to become PINT clients and | extensions and enhancements to enable SIP clients and servers to become | |||
servers. | PINT clients and servers. | |||
A PINT user who wishes to invoke a service within the telephone network uses | A PINT user who wishes to invoke a service within the telephone network | |||
SIP to invite a remote PINT server into a session. The invitation contains | uses SIP to invite a remote PINT server into a session. The invitation | |||
an SDP description of the media session that the user would like to take | contains an SDP description of the media session that the user would | |||
place. This might be a "sending a fax session" or a "telephone call | like to take place. This might be a "sending a fax session" or a | |||
session", for example. In a PINT service execution session the media is | "telephone call session", for example. In a PINT service execution | |||
transported over the phone system, while in a SIP session the media is | session the media is transported over the phone system, while in a SIP | |||
normally transported over an internet. | session the media is normally transported over an internet. | |||
Petrack & Conroy [Page 4] | Petrack & Conroy [Page 4] | |||
When used to invoke a PINT service, SIP establishes an association between a | When used to invoke a PINT service, SIP establishes an association | |||
requesting PINT client and the PINT server that is responsible for invoking | between a requesting PINT client and the PINT server that is responsible | |||
the service within the telephone network. These two entities are not the | for invoking the service within the telephone network. These two | |||
same entities as the telephone network entities involved in the telephone | entities are not the same entities as the telephone network entities | |||
network service. The SIP messages carry within their SDP payloads a | involved in the telephone network service. The SIP messages carry within | |||
description of the telephone network media session. | their SDP payloads a description of the telephone network media session. | |||
Note that the fact that a PINT server accepts an invitation and a session is | Note that the fact that a PINT server accepts an invitation and a | |||
established is no guarantee that the media will be successfully transported. | session is established is no guarantee that the media will be | |||
(This is analogous to the fact that if a SIP invitation is accepted | successfully transported. (This is analogous to the fact that if a SIP | |||
successfully, this is no guarantee against a subsequent failure of audio | invitation is accepted successfully, this is no guarantee against a | |||
hardware). | subsequent failure of audio hardware). | |||
The particular requirements of PINT users lead to some new messages. When a | The particular requirements of PINT users lead to some new messages. | |||
PINT server agrees to send a fax to telephone B, it may be that the fax | When a PINT server agrees to send a fax to telephone B, it may be that | |||
transmission fails after part of the fax is sent. Therefore, the PINT client | the fax transmission fails after part of the fax is sent. Therefore, the | |||
may wish to receive information about the status of the actual telephone | PINT client may wish to receive information about the status of the | |||
call session that was invoked as a result of the established PINT session. | actual telephone call session that was invoked as a result of the | |||
Three new requests, SUBSCRIBE, UNSIUBSCRIBE, and NOTIFY, are added here | established PINT session. Three new requests, SUBSCRIBE, UNSIUBSCRIBE, | |||
to vanilla SIP to allow this. | and NOTIFY, are added here to vanilla SIP to allow this. | |||
The enhancements and additions specified here are not intended to alter the | The enhancements and additions specified here are not intended to alter | |||
behaviour of baseline SIP or SDP in any way. The purpose of PINT extension | the behaviour of baseline SIP or SDP in any way. The purpose of PINT | |||
is to extend the usual SIP/SDP services to the telephone world. Apart from | extensions is to extend the usual SIP/SDP services to the telephone | |||
integrating well into existing protocols and architectures, and the | world. Apart from integrating well into existing protocols and | |||
advantages of reuse, this means that the protocol specified here can handle | architectures, and the advantages of reuse, this means that the protocol | |||
a rather wider class of call services than just the Milestone services. | specified here can handle a rather wider class of call services than | |||
just the Milestone services. | ||||
The rest of this document is organised as follows: Section 2 describes the | The rest of this document is organised as follows: Section 2 describes | |||
PINT Milestone services; section 3 specifies the PINT functional | the PINT Milestone services; section 3 specifies the PINT functional and | |||
and protocol architecture; section 4 gives examples of the PINT 1.0 | protocol architecture; section 4 gives examples of the PINT 1.0 | |||
extensions of SIP and SDP; section 5 contains some security considerations | extensions of SIP and SDP; section 5 contains some security | |||
for PINT. The final section contains descriptions of how the PINT protocol | considerations for PINT. The final section contains descriptions of how | |||
may be used to provide service over the GSTN. | the PINT protocol may be used to provide service over the GSTN. | |||
For a summary of the extensions to SIP and SDP specified in this | ||||
document, Section 3.2 gives an combined list, plus one each describing | ||||
the extensions to SIP and SDP respectively. | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119. In addition, the | document are to be interpreted as described in RFC 2119. In addition, | |||
construct "MUST .... OR ...." implies that it is an absolute requirement of | the construct "MUST .... OR ...." implies that it is an absolute | |||
this specification to implement one of the two possibilities stated | requirement of this specification to implement one of the two | |||
(represented by dots in the above phrase). An implementation MUST be able to | possibilities stated (represented by dots in the above phrase). An | |||
interoperate with another implementation that chooses either of the two | implementation MUST be able to interoperate with another implementation | |||
possibilities. | that chooses either of the two possibilities. | |||
Petrack & Conroy [Page 5] | ||||
1.1 Glossary | 1.1 Glossary | |||
Requestor - An Internet host from which a request for service originates | Requestor - An Internet host from which a request for service originates | |||
PINT Service - A services invoked within a phone system in response to a | PINT Service - A service invoked within a phone system in response to a | |||
request received from an PINT client. | request received from an PINT client. | |||
PINT Client - An Internet host that sends requests for invocation of a PINT | PINT Client - An Internet host that sends requests for invocation of a | |||
Service, in accordance with this document. | PINT Service, in accordance with this document. | |||
PINT Gateway - An Internet host that accepts requests for PINT Service and | ||||
dispatches them onwards towards a telephone network. | ||||
Petrack & Conroy [Page 5] | PINT Gateway - An Internet host that accepts requests for PINT Service | |||
and dispatches them onwards towards a telephone network. | ||||
Executive System - A system that interfaces to a telephone network that | Executive System - A system that interfaces to PINT Server and to a | |||
executes a PINT service, and to a PINT Server. It is not directly associated | telephone network that executes a PINT service. It need not be directly | |||
with the Internet, and is represented by the PINT Server. | associated with the Internet, and is represented by the PINT Server in | |||
transactions with Internet entities. | ||||
Requesting User - The initiator of a request for service. This role may be | Requesting User - The initiator of a request for service. This role may | |||
distinct from that of the "party" to any telephone network call that results | be distinct from that of the "party" to any telephone network call that | |||
from the request. | results from the request. | |||
(Service Call) Party - A person who is involved in a telephone network call | (Service Call) Party - A person who is involved in a telephone network | |||
that results from the execution of a PINT service request, or a telephone | call that results from the execution of a PINT service request, or a | |||
network-based resource that is involved (such as an automatic Fax Sender or | telephone network-based resource that is involved (such as an automatic | |||
a Text-to-Speech Unit). | Fax Sender or a Text-to-Speech Unit). | |||
2. PINT Milestone Services | 2. PINT Milestone Services | |||
The original motivation for defining this protocol was the desire to invoke | The original motivation for defining this protocol was the desire to | |||
the following three telephone network services from within an IP network: | invoke the following three telephone network services from within an IP | |||
network: | ||||
2.1 Request to Call | 2.1 Request to Call | |||
A request is sent from an IP host that causes a phone call to be made, | A request is sent from an IP host that causes a phone call to be made, | |||
connecting party A to some remote party B. | connecting party A to some remote party B. | |||
2.2 Request to Fax | 2.2 Request to Fax | |||
A request is sent from an IP host that causes a fax to be sent to fax | A request is sent from an IP host that causes a fax to be sent to fax | |||
machine B. The request MUST contain a pointer to the fax data (that | machine B. The request MUST contain a pointer to the fax data (that | |||
could reside in the IP network or in the Telephone Network), OR | could reside in the IP network or in the Telephone Network), OR the fax | |||
fax data itself. The content of the fax MAY be text OR some other | data itself. The content of the fax MAY be text OR some other more | |||
more general image data. The details of the fax transmission are not | general image data. The details of the fax transmission are not | |||
accessible to the IP network, but remain entirely within the telephone | accessible to the IP network, but remain entirely within the telephone | |||
network. | network. | |||
The PINT Request to Fax service does not involve "Fax over IP": the IP | The PINT Request to Fax service does not involve "Fax over IP": the IP | |||
network is only used to send the request that a certain fax be sent. Of | network is only used to send the request that a certain fax be sent. Of | |||
course, it is possible that the resulting telephone network fax call happens | course, it is possible that the resulting telephone network fax call | |||
to use a real-time IP fax solution, but this is completely transparent to | happens to use a real-time IP fax solution, but this is completely | |||
the PINT transaction. | transparent to the PINT transaction. | |||
Petrack & Conroy [Page 6] | ||||
2.3 Request to Hear Content | 2.3 Request to Hear Content | |||
A request is sent from an IP host that causes a phone call to be made to | A request is sent from an IP host that causes a phone call to be made to | |||
user A, and for some sort of content to be spoken out. The request MUST | user A, and for some sort of content to be spoken out. The request MUST | |||
EITHER contain a URL pointing to the content, OR include the content itself. | EITHER contain a URL pointing to the content, OR include the content | |||
The content MAY be text OR some other more general application data. The | itself. The content MAY be text OR some other more general application | |||
details of the content transmission are not accessible to the IP network, | data. The details of the content transmission are not accessible to the | |||
but remain entirely within the telephone network. | IP network, but remain entirely within the telephone network. This | |||
service could equally be called "Request to have Content Spoken"; the | ||||
user's goal is to hear the content spoken to them. The mechanism by | ||||
which the request is formulated is outside the scope of this document; | ||||
however, an example might be that a Web page has a button that when | ||||
pressed causes a PINT request to be passed to the PSTN, resulting in the | ||||
content of the page (or other details) being spoken to the person. | ||||
2.4 Relation between PINT milestone services and traditional telephone | 2.4 Relation between PINT milestone services and traditional telephone | |||
services | services | |||
There are many different versions and variations of each telephone call | There are many different versions and variations of each telephone call | |||
service invoked by a PINT request. Consider as an example what happens when | service invoked by a PINT request. Consider as an example what happens | |||
a user requests to call 1-800-2255-287 via the PINT Request-to-Call service. | when a user requests to call 1-800-2255-287 via the PINT Request-to-Call | |||
service. | ||||
Petrack & Conroy [Page 6] | ||||
There may be thousands of agents in the call centre, and there may be any | There may be thousands of agents in the call center, and there may be | |||
number of sophisticated algorithms and equipments that are used to decide | any number of sophisticated algorithms and pieces of equipment that are | |||
exactly which agent will return the call. And once this choice is made, | used to decide exactly which agent will return the call. And once this | |||
there may be many different ways to set up the call: the agent's phone might | choice is made, there may be many different ways to set up the call: the | |||
ring first, and only then the original user will be called; or perhaps the | agent's phone might ring first, and only then the original user will be | |||
user might be called first, and hear some horrible music or pre-recorded | called; or perhaps the user might be called first, and hear some | |||
message while the agent is located. | horrible music or pre-recorded message while the agent is located. | |||
Similarly, when a PINT request causes a fax to be sent, there are hundreds | Similarly, when a PINT request causes a fax to be sent, there are | |||
of fax protocol details to be negotiated, as well as transmission details | hundreds of fax protocol details to be negotiated, as well as | |||
within the telephone networks used. | transmission details within the telephone networks used. | |||
PINT requests do not specify too precisely the exact telephone-side service. | PINT requests do not specify too precisely the exact telephone-side | |||
Operational details of individual events within the telephone network that | service. Operational details of individual events within the telephone | |||
executes the request are outside the scope of PINT. This does not preclude | network that executes the request are outside the scope of PINT. This | |||
certain high-level details of the telephone network session from being | does not preclude certain high-level details of the telephone network | |||
expressed within a PINT request. For example, it is possible to use the SDP | session from being expressed within a PINT request. For example, it is | |||
"lang" attribute to express a language preference for the | possible to use the SDP "lang" attribute to express a language | |||
Request-to-Hear-Content Service. If a particular PINT system wishes to | preference for the Request-to-Hear-Content Service. If a particular | |||
allow requests to contain details of the telephone-network-side service, it | PINT system wishes to allow requests to contain details of the | |||
uses the SDP attribute mechanism (see section 3.4.2). | telephone-network-side service, it uses the SDP attribute mechanism (see | |||
section 3.4.2). | ||||
3. PINT Functional and Protocol Architecture | 3. PINT Functional and Protocol Architecture | |||
3.1. PINT Functional Architecture | 3.1. PINT Functional Architecture | |||
Familiarity is assumed with SIP 2.0 [1] and with SDP [2]. | Familiarity is assumed with SIP 2.0 [1] and with SDP [2]. | |||
PINT clients and servers are SIP clients and servers. SIP is used to carry | Petrack & Conroy [Page 7] | |||
the request over the IP network to the correct PINT server in a secure and | ||||
reliable manner, and SDP is used to describe the telephone network session | ||||
that is to be invoked or whose status is to be returned. | ||||
A PINT system uses SIP proxy servers and redirect servers for their usual | PINT clients and servers are SIP clients and servers. SIP is used to | |||
purpose, but at some point there must be a PINT server with the means to | carry the request over the IP network to the correct PINT server in a | |||
relay received requests into a telephone system and to receive | secure and reliable manner, and SDP is used to describe the telephone | |||
network session that is to be invoked or whose status is to be returned. | ||||
A PINT system uses SIP proxy servers and redirect servers for their | ||||
usual purpose, but at some point there must be a PINT server with the | ||||
means to relay received requests into a telephone system and to receive | ||||
acknowledgement of these relayed requests. A PINT server with this | acknowledgement of these relayed requests. A PINT server with this | |||
capability is called a "PINT gateway". A PINT gateway appears to a SIP | capability is called a "PINT gateway". A PINT gateway appears to a SIP | |||
system as a User Agent Server. Notice that a PINT gateway appears to the | system as a User Agent Server. Notice that a PINT gateway appears to the | |||
PINT infrastructure as if it represents a "user", while in fact it really | PINT infrastructure as if it represents a "user", while in fact it | |||
represents an entire telephone network infrastructure that can provide a | really represents an entire telephone network infrastructure that can | |||
set of telephone network services. | provide a set of telephone network services. | |||
So the PINT system might appear to an individual PINT client as follows: | So the PINT system might appear to an individual PINT client as follows: | |||
/\/\/\/\/\/\/\ /\/\/\/\/\/\/\/\ | /\/\/\/\/\/\/\ /\/\/\/\/\/\/\/\ | |||
___________ \ __/___ ___\_ \ | ___________ \ __/___ ___\_ \ | |||
| PINT | PINT \ PINT | PINT | |Exec| Telephone / | | PINT | PINT \ PINT | PINT | |Exec| Telephone / | |||
| client |<-------------->| server |gatewy|=====|Syst| Network \ | | client |<-------------->| server |gatewy|=====|Syst| Network \ | |||
|_________| protocol / cloud |______| |____| Cloud / | |_________| protocol / cloud |______| |____| Cloud / | |||
\ \ / \ | \ \ / \ | |||
/\/\/\/\/\/\/\ \/\/\/\/\/\/\/\/ | /\/\/\/\/\/\/\ \/\/\/\/\/\/\/\/ | |||
Figure 1: PINT Functional Architecture | Figure 1: PINT Functional Architecture | |||
Petrack & Conroy [Page 7] | ||||
The system of PINT servers is represented as a cloud to emphasise that a | The system of PINT servers is represented as a cloud to emphasise that a | |||
single PINT request might pass through a series of location servers, proxy | single PINT request might pass through a series of location servers, | |||
servers, and redirect servers, before finally reaching the correct PINT | proxy servers, and redirect servers, before finally reaching the correct | |||
gateway that can actually process the request by passing it to the | PINT gateway that can actually process the request by passing it to the | |||
Telephone Network Cloud. | Telephone Network Cloud. | |||
The PINT gateway might have a true telephone network interface, or it might | The PINT gateway might have a true telephone network interface, or it | |||
be connected via some other protocol or API to an "Executive System" that | might be connected via some other protocol or API to an "Executive | |||
is capable of invoking services within the telephone cloud. | System" that is capable of invoking services within the telephone cloud. | |||
As an example, within an I.N. (Intelligent Network) system, the PINT gateway | As an example, within an I.N. (Intelligent Network) system, the PINT | |||
might appear to realise the Service Control Gateway Function. In an office | gateway might appear to realise the Service Control Gateway Function. In | |||
environment, it might be a server adjunct to the office PBX, connected to | an office environment, it might be a server adjunct to the office PBX, | |||
both the office LAN and the office PBX. | connected to both the office LAN and the office PBX. | |||
The Executive System that lies beyond the PINT gateway is outside the scope | The Executive System that lies beyond the PINT gateway is outside the | |||
of PINT. | scope of PINT. | |||
3.2. PINT Protocol Architecture | 3.2. PINT Protocol Architecture | |||
This section explains how SIP and SDP work in combination to convey the | This section explains how SIP and SDP work in combination to convey the | |||
information necessary to invoke telephone network sessions. | information necessary to invoke telephone network sessions. | |||
Petrack & Conroy [Page 8] | ||||
The following list summarises the extension features used in PINT 1.0. | The following list summarises the extension features used in PINT 1.0. | |||
Following on from this the features are considered separately for SDP and | Following on from this the features are considered separately for SDP | |||
then for SIP: | and then for SIP: | |||
1) Telephony URLs in SDP Contact Fields | 1) Telephony URLs in SDP Contact Fields | |||
2) Refinement of SIP/SDP Telephony URLs | 2) Refinement of SIP/SDP Telephony URLs | |||
* Inclusion of private dialling plans | * Inclusion of private dialling plans | |||
3) Specification of Telephone Service Provider (TSP) and/or | 3) Specification of Telephone Service Provider (TSP) and/or | |||
phone-context URL-parameters | phone-context URL-parameters | |||
4) Data Objects as session media | 4) Data Objects as session media | |||
4a) Protocol Transport formats to indicate the treatment of the media | 4a) Protocol Transport formats to indicate the treatment of the media | |||
within the GSTN | within the GSTN | |||
5) Implicit (Indirect) media streams and opaque arguments | 5) Implicit (Indirect) media streams and opaque arguments | |||
6) In-line data objects using multipart/mime | 6) In-line data objects using multipart/mime | |||
7) Refinement/Clarification of Opaque arguments passed onwards to Executive | 7) Refinement/Clarification of Opaque arguments passed onwards to | |||
Systems | Executive Systems | |||
* Framework for Presentation Restriction Indication | * Framework for Presentation Restriction Indication | |||
* Framework for Q.763 arguments | * Framework for Q.763 arguments | |||
8) An extension mechanism for SDP to specify strictures and force | 8) An extension mechanism for SDP to specify strictures and force | |||
failure when a recipient does NOT support the specified extensions, | failure when a recipient does NOT support the specified extensions, | |||
using "require" headers. | using "require" headers. | |||
9) Mandatory support for "Warning" headers to give more detailed | 9) Mandatory support for "Warning" headers to give more detailed | |||
information on request disposition. | information on request disposition. | |||
10) Mechanism to register interest in the disposition of a requested | 10) Mechanism to register interest in the disposition of a requested | |||
service, and to receive indications on that disposition. | service, and to receive indications on that disposition. | |||
Both PINT and SIP rely on features of MIME[4]. The use of SIP 2.0 is implied | Both PINT and SIP rely on features of MIME[4]. The use of SIP 2.0 is | |||
by PINT 1.0, and this also implies compliance with version 1.0 of MIME. | implied by PINT 1.0, and this also implies compliance with version 1.0 | |||
of MIME. | ||||
Petrack & Conroy [Page 8] | ||||
3.2.1. SDP operation in PINT | 3.2.1. SDP operation in PINT | |||
The SDP payload contains a description of the particular telephone network | The SDP payload contains a description of the particular telephone | |||
session that the requestor wishes to occur in the GSTN. This information | network session that the requestor wishes to occur in the GSTN. This | |||
includes such things as the telephone network address (i.e. the "telephone | information includes such things as the telephone network address (i.e. | |||
number") of the terminal(s) involved in the call, an indication of the media | the "telephone number") of the terminal(s) involved in the call, an | |||
type to be transported (e.g. audio, text, image or application data), and an | indication of the media type to be transported (e.g. audio, text, image | |||
indication if the information is to be transported over the telephone | or application data), and an indication if the information is to be | |||
network via voice, fax, or pager transport. An indication of the content to | transported over the telephone network via voice, fax, or pager | |||
be sent to the remote telephone terminal (if there is any) is also included. | transport. An indication of the content to be sent to the remote | |||
telephone terminal (if there is any) is also included. | ||||
SDP is flexible enough to convey these parameters independently. For | SDP is flexible enough to convey these parameters independently. For | |||
example, a request to send some text via voice transport will be fulfilled | example, a request to send some text via voice transport will be | |||
by invoking some text-to-speech-over-the-phone service, and a request to | fulfilled by invoking some text-to-speech-over-the-phone service, and a | |||
send text via fax will be fulfilled by invoking some text-to-fax service. | request to send text via fax will be fulfilled by invoking some | |||
text-to-fax service. | ||||
Petrack & Conroy [Page 9] | ||||
The following is a list of PINT 1.0 enhancements and additions to SDP. | The following is a list of PINT 1.0 enhancements and additions to SDP. | |||
a. A new network type "TN" and address types "RFC2543" and "X-..." | a. A new network type "TN" and address types "RFC2543" and "X-..." | |||
(section 3.4.1) | (section 3.4.1) | |||
b. New media types "text", "image", and "application", | b. New media types "text", "image", and "application", | |||
new protocol transport keywords "voice", "fax" and | new protocol transport keywords "voice", "fax" and | |||
"pager" and the associated format types and attribute tags | "pager" and the associated format types and attribute tags | |||
(section 3.4.2) | (section 3.4.2) | |||
c. New format specific attributes for included content data | c. New format specific attributes for included content data | |||
(section 3.4.2.4) | (section 3.4.2.4) | |||
d. New attribute tags, used to pass information to the telephone | d. New attribute tags, used to pass information to the telephone | |||
network (section 3.4.3) | network (section 3.4.3) | |||
e. A new attribute tag "require", used by a client to indicate that | e. A new attribute tag "require", used by a client to indicate that | |||
some attribute is required to be supported in the server | some attribute is required to be supported in the server | |||
(section 3.4.4) | (section 3.4.4) | |||
3.2.2. SIP Operation in PINT | 3.2.2. SIP Operation in PINT | |||
SIP is used to carry the request for telephone service from the PINT client | SIP is used to carry the request for telephone service from the PINT | |||
to the PINT gateway, and may include a telephone number if needed for the | client to the PINT gateway, and may include a telephone number if needed | |||
particular service. The following is a complete list of PINT enhancements | for the particular service. The following is a complete list of PINT | |||
and additions to SIP: | enhancements and additions to SIP: | |||
f. The multipart MIME payloads (section 3.5.1) | f. The multipart MIME payloads (section 3.5.1) | |||
g. Mandatory support for "Warning:" headers (section 3.5.2) | g. Mandatory support for "Warning:" headers (section 3.5.2) | |||
h. The SUBSCRIBE and NOTIFY, and UNSUBSCRIBE requests (section 3.5.3) | h. The SUBSCRIBE and NOTIFY, and UNSUBSCRIBE requests (section 3.5.3) | |||
i. Require: headers (section 3.5.4) | i. Require: headers (section 3.5.4) | |||
j. A format for PINT URLS within a PINT request (section 3.5.5) | j. A format for PINT URLS within a PINT request (section 3.5.5) | |||
k. Telephone Network Parameters within PINT URLs (section 3.5.6) | k. Telephone Network Parameters within PINT URLs (section 3.5.6) | |||
Section 3.5.8 contains remarks about how BYE requests are used within PINT. | Section 3.5.8 contains remarks about how BYE requests are used within | |||
This is not an extension to baseline SIP; it is included here only for | PINT. This is not an extension to baseline SIP; it is included here only | |||
clarification of the semantics when used with telephone network sessions. | for clarification of the semantics when used with telephone network | |||
sessions. | ||||
Petrack & Conroy [Page 9] | ||||
3.3. REQUIRED and OPTIONAL elements for PINT compliance | 3.3. REQUIRED and OPTIONAL elements for PINT compliance | |||
Of these, only the TN network type (with its associated RFC2543 address | Of these, only the TN network type (with its associated RFC2543 address | |||
type) and the "require" attribute MUST be supported by PINT 1.0 clients | type) and the "require" attribute MUST be supported by PINT 1.0 clients | |||
and servers. In practice, most PINT service requests will use other changes, | and servers. In practice, most PINT service requests will use other | |||
of which references to Data Objects in requests are most likely to appear | changes, of which references to Data Objects in requests are most likely | |||
in PINT requests. | to appear in PINT requests. | |||
Each of the other new PINT constructs enables a different function, and a | Each of the other new PINT constructs enables a different function, and | |||
client or server that wishes to enable that particular function MUST do so | a client or server that wishes to enable that particular function MUST | |||
by the construct specified in this document. For example, building a PINT | do so by the construct specified in this document. For example, building | |||
client and server that provide only the Request-to-Call telephone call | a PINT client and server that provide only the Request-to-Call telephone | |||
service, without support for the other Milestone services, is allowed. | call service, without support for the other Milestone services, is | |||
allowed. | ||||
The "Require:" SIP header and the "require" attribute provide a mechanism | The "Require:" SIP header and the "require" attribute provide a | |||
that can be used by clients and servers to signal their need and/or | mechanism that can be used by clients and servers to signal their need | |||
ability to support specific "new" PINT protocol elements. | and/or ability to support specific "new" PINT protocol elements. | |||
It should be noted that many optional features of SIP and SDP make sense as | It should be noted that many optional features of SIP and SDP make sense | |||
specified in the PINT context. One example is the SDP a=lang: attribute, | as specified in the PINT context. One example is the SDP a=lang: | |||
which can be used to describe the preferred language of the callee. Another | attribute, which can be used to describe the preferred language of the | |||
example is the use of the "t=" parameter to indicate that the time at which | callee. Another example is the use of the "t=" parameter to indicate | |||
the PINT service is to be invoked. This is the normal use of the "t=" field. | that the time at which the PINT service is to be invoked. This is the | |||
A third example is the quality attributes. Any SIP or SDP option or | normal use of the "t=" field. A third example is the quality attributes. | |||
facility is available to PINT clients and servers without change. | Any SIP or SDP option or facility is available to PINT clients and | |||
servers without change. | ||||
Conversely, support for Data Objects within Internet Conference sessions may | Conversely, support for Data Objects within Internet Conference sessions | |||
be useful, even if the aim is not to provide a GSTN service request. In this | may be useful, even if the aim is not to provide a GSTN service request. | |||
case, the extensions covering these items may be incorporated into an | In this case, the extensions covering these items may be incorporated | |||
otherwise "plain" SIP/SDP invitation. Likewise, support for SDP "require" | into an otherwise "plain" SIP/SDP invitation. Likewise, support for SDP | |||
may be useful, as a framework for addition of features to a "traditional" | "require" may be useful, as a framework for addition of features to a | |||
SIP/SDP infrastructure. Again, these may be convenient to incorporate into | "traditional" SIP/SDP infrastructure. Again, these may be convenient to | |||
SIP/SDP implementations that would not be used for PINT service requests. | incorporate into SIP/SDP implementations that would not be used for PINT | |||
Such additions are beyond the scope of this document, however. | service requests. Such additions are beyond the scope of this document, | |||
however. | ||||
3.4. PINT Extensions to SDP | 3.4. PINT Extensions to SDP | |||
PINT 1.0 adds to SDP the possibility to describe audio, fax, and pager | PINT 1.0 adds to SDP the possibility to describe audio, fax, and pager | |||
telephone sessions. It is deliberately designed to hide the underlying | telephone sessions. It is deliberately designed to hide the underlying | |||
technical details and complexity of the telephone network. The only network | technical details and complexity of the telephone network. The only | |||
type defined for PINT is the generic "TN" (Telephone Network). More precise | network type defined for PINT is the generic "TN" (Telephone Network). | |||
tags such as "ISDN", "GSM", are not defined. Similarly, the transport | More precise tags such as "ISDN", "GSM", are not defined. Similarly, the | |||
protocols are designated simply as "fax", "voice", and "pager"; there are no | transport protocols are designated simply as "fax", "voice", and | |||
more specific identifiers for the various telephone network voice, fax, or | "pager"; there are no more specific identifiers for the various | |||
pager protocols. Similarly, the data to be transported is identified only as | telephone network voice, fax, or pager protocols. Similarly, the data to | |||
a MIME type, such as "text" data, "image" data, or some more general | be transported are identified only by a MIME content type, such as | |||
"application" data, etc. An important example of transporting "application" | "text" data, "image" data, or some more general "application" data. An | |||
data is the milestone service "Voice Access to Web Content". In this case | important example of transporting "application" data is the milestone | |||
the data to be transported is pointed to by a URI, the data type is | service "Voice Access to Web Content". In this case the data to be | |||
application/URI, and the transport protocol would be "voice". Some sort of | transported are pointed to by a URI, the data content type is | |||
speech-synthesis facility, speaking out to a Phone, will have to be invoked | application/URI, and the transport protocol would be "voice". Some sort | |||
to perform this service. | of speech-synthesis facility, speaking out to a Phone, will have to be | |||
invoked to perform this service. | ||||
This section gives details of the new SDP keywords. | This section gives details of the new SDP keywords. | |||
3.4.1. Network Type "TN" and Address Type "RFC2543" | 3.4.1. Network Type "TN" and Address Type "RFC2543" | |||
The TN ("Telephone Network") network type is used to indicate that the | The TN ("Telephone Network") network type is used to indicate that the | |||
terminal is connected to a telephone network. | terminal is connected to a telephone network. | |||
The address types allowed for network type TN are "RFC2543" and private | The address types allowed for network type TN are "RFC2543" and private | |||
address types, which MUST begin with an "X-". | address types, which MUST begin with an "X-". | |||
Address type RFC2543 is followed by a string conforming to a subset of the | Address type RFC2543 is followed by a string conforming to a subset of | |||
"telephone-subscriber" BNF specified in RFC2543, (this is specified in | the "telephone-subscriber" BNF specified in figure 4 of SIP [1]). | |||
figure 4 of SIP [1]). Note that this BNF is NOT identical to the BNF that | Note that this BNF is NOT identical to the BNF that defines the | |||
defines the "phone-number" within the "p=" field of SDP. | "phone-number" within the "p=" field of SDP. | |||
Examples: | Examples: | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
c= TN RFC2543 12014064090 | c= TN RFC2543 12014064090 | |||
A telephone-subscriber string is of one of two types: global-phone-number or | A telephone-subscriber string is of one of two types: | |||
local-phone-number. These are distinguished by preceeding a | global-phone-number or | |||
global-phone-number with a "plus" sign ("+"). A global-phone-number is by | local-phone-number. | |||
default to be interpreted as an internationally significant E.164 Number | These are distinguished by preceeding a global-phone-number with a | |||
Plan Address, as defined by [6], whilst a local-phone-number is a number | "plus" sign ("+"). A global-phone-number is by default to be interpreted | |||
specified in the default dialling plan within the context of the recipient | as an internationally significant E.164 Number Plan Address, as defined | |||
PINT Gateway. | by [6], whilst a local-phone-number is a number specified in the default | |||
dialling plan within the context of the recipient PINT Gateway. | ||||
An implementation MAY use private addressing types, which can be useful | An implementation MAY use private addressing types, which can be useful | |||
within a local domain. These address types MUST begin with an "X-", and | within a local domain. These address types MUST begin with an "X-", and | |||
SHOULD contain a domain name after the X-, e.g. "X-mytype.mydomain.com". | SHOULD contain a domain name after the X-, e.g. "X-mytype.mydomain.com". | |||
An example of such a connection line is as follows: | An example of such a connection line is as follows: | |||
c= TN X-mytype.mydomain.com A*8-HELEN | c= TN X-mytype.mydomain.com A*8-HELEN | |||
where "X-mytype.mydomain.com" identifies this private address type, and | where "X-mytype.mydomain.com" identifies this private address type, and | |||
"A*8-HELEN" is the number in this format. Such a format is defined as an | "A*8-HELEN" is the number in this format. Such a format is defined as an | |||
"OtherAddr" in the ABNF of Appendix A. | "OtherAddr" in the ABNF of Appendix A. Note that most dialable telephone | |||
Note that most dialable telephone numbers are expressable as | numbers are expressable as local-phone-numbers within address RFC2543; | |||
local-phone-numbers within address RFC2543; new address types should only be | new address types SHOULD only be used for formats which cannot be so | |||
used for formats which cannot be so written. | written. | |||
3.4.2. Support for Data Objects within PINT | 3.4.2. Support for Data Objects within PINT | |||
One significant change over traditional SIP/SDP Internet Conference sessions | One significant change over traditional SIP/SDP Internet Conference | |||
with PINT is that a PINT service request may refer to a Data Object to be | sessions with PINT is that a PINT service request may refer to a Data | |||
used as source information in that request. For example, a PINT service | Object to be used as source information in that request. For example, a | |||
request may specify a document to be processed as part of a GSTN service by | PINT service request may specify a document to be processed as part of a | |||
which a Fax is sent. Similarly, a GSTN service may be take a Web page and | GSTN service by which a Fax is sent. Similarly, a GSTN service may be | |||
result in a vocoder processing that page and speaking the contents over a | take a Web page and result in a vocoder processing that page and | |||
telephone. | speaking the contents over a telephone. | |||
The SDP specification does not have explicit support for reference to or | The SDP specification does not have explicit support for reference to or | |||
carriage of Data Objects within requests. In order to use SDP for PINT, | carriage of Data Objects within requests. In order to use SDP for PINT, | |||
there is a need to describe such media sessions as "a telephone call to a | there is a need to describe such media sessions as "a telephone call to | |||
certain number during which such-and-such an image is sent as a fax". | a certain number during which such-and-such an image is sent as a fax". | |||
To support this, two extensions to the session description format are | To support this, two extensions to the session description format are | |||
specified. These are some new allowed values for the Media Field, | specified. These are some new allowed values for the Media Field, and a | |||
and a description of the "fmtp" parameter when used with the Media | description of the "fmtp" parameter when used with the Media Field | |||
Field values (within the context of the Contact Field Network type "TN"). | values (within the context of the Contact Field Network type "TN"). | |||
An addition is also made to the SIP message format to allow the inclusion | An addition is also made to the SIP message format to allow the | |||
of data objects as sub-parts within the request message itself. | inclusion of data objects as sub-parts within the request message | |||
The original SDP syntax (from [2]) for media-field is given as: | itself. The original SDP syntax (from [2]) for media-field is given as: | |||
media-field = "m=" media space port ["/" integer] | media-field = "m=" media space port ["/" integer] | |||
space proto 1*(space fmt) CRLF | space proto 1*(space fmt) CRLF | |||
When used within PINT requests, the definition of the sub-fields is | When used within PINT requests, the definition of the sub-fields is | |||
expanded slightly. | expanded slightly. The Media sub-field definition is relaxed to accept | |||
The Media sub-field definition is relaxed to accept all of the discrete | all of the discrete "top-level" media types defined in [4]. In the | |||
"top-level" media types defined in [4]. In the milestone services the | milestone services the discrete type "video" is not used, and the extra | |||
discrete type "video" is not used, and the extra types "data" and "control" | types "data" and "control" are likewise not needed. The use of these | |||
are likewise not needed. The use of these types is not precluded, but the | types is not precluded, but the behaviour expected of a PINT Gateway | |||
behaviour expected of a PINT Gateway receiving a request including such a | receiving a request including such a type is not defined here. | |||
type is not defined here. | ||||
The Port sub-field has no meaning in PINT requests as the destination | The Port sub-field has no meaning in PINT requests as the destination | |||
terminals are specified using "TN" addressing, so the value of the port | terminals are specified using "TN" addressing, so the value of the port | |||
sub-field in PINT requests is normally set to "1". A value of "0" may | sub-field in PINT requests is normally set to "1". A value of "0" may be | |||
be used as in SDP to indicate that the terminal is not receiving media. | used as in SDP to indicate that the terminal is not receiving media. | |||
This is useful to indicate that a telephone terminal has gone "on hold" | This is useful to indicate that a telephone terminal has gone "on hold" | |||
temporarily. Likewise, the optional integer sub-field is not used in PINT. | temporarily. Likewise, the optional integer sub-field is not used in | |||
PINT. | ||||
As mentioned in [2], the Transport Protocol sub-field is specific to the | As mentioned in [2], the Transport Protocol sub-field is specific to the | |||
associated Address Type. In the case that the Address Type in the preceeding | associated Address Type. In the case that the Address Type in the | |||
Contact field is one of those defined for use with the Network Type "TN", | preceeding Contact field is one of those defined for use with the | |||
the following values are defined for the Transport Protocol sub-field: | Network Type "TN", the following values are defined for the Transport | |||
Protocol sub-field: | ||||
"voice", "fax", and "pager". | "voice", "fax", and "pager". | |||
The interpretation of this sub-field within PINT requests is the treatment | The interpretation of this sub-field within PINT requests is the | |||
or disposition of the resulting GSTN service. Thus, for transport protocol | treatment or disposition of the resulting GSTN service. Thus, for | |||
"voice", the intent is that the service will result in a GSTN voice call, | transport protocol "voice", the intent is that the service will result | |||
whilst for protocol "fax" the result will be a GSTN fax transmission, and | in a GSTN voice call, whilst for protocol "fax" the result will be a | |||
protocol "pager" will result in a pager message being sent. | GSTN fax transmission, and protocol "pager" will result in a pager | |||
message being sent. | ||||
Note that this sub-field does not necessarily dictate the media type and | Note that this sub-field does not necessarily dictate the media type and | |||
subtype of any source data; for example, one of the milestone services calls | subtype of any source data; for example, one of the milestone services | |||
for a textual source to be vocoded and spoken in a resulting telephone | calls for a textual source to be vocoded and spoken in a resulting | |||
service call. The transport protocol value in this case would be "voice", | telephone service call. The transport protocol value in this case would | |||
whilst the media type would be "text". | be "voice", whilst the media type would be "text". | |||
The Fmt sub-field is described in [2] as being transport protocol-specific. | The Fmt sub-field is described in [2] as being transport | |||
When used within PINT requests having one of the above protocol values, | protocol-specific. When used within PINT requests having one of the | |||
this sub-field consists of a list of one or more values, each of which is | above protocol values, this sub-field consists of a list of one or more | |||
a defined MIME sub-type of the associated Media sub-field value. The | values, each of which is a defined MIME sub-type of the associated Media | |||
special value "-" is allowed, meaning that there is no MIME sub-type. | sub-field value. The special value "-" is allowed, meaning that there | |||
This sub-field retains (from [2]) its meaning that the list will contain | is no MIME sub-type. This sub-field retains (from [2]) its meaning that | |||
a set of alternative sub-types, with the first being the preferred value. | the list will contain a set of alternative sub-types, with the first | |||
being the preferred value. | ||||
For experimental purposes and by mutual consent of the sender and recipient, | For experimental purposes and by mutual consent of the sender and | |||
a sub-type value may be specified as an <X-token>, i.e. a character string | recipient, a sub-type value may be specified as an <X-token>, i.e. a | |||
starting with "X-". The use of such values is discouraged, and if such a | character string starting with "X-". The use of such values is | |||
value is expected to find common use then it SHOULD be registered with IANA | discouraged, and if such a value is expected to find common use then it | |||
using the standard content type registration process (see Appendix C). | SHOULD be registered with IANA using the standard content type | |||
registration process (see Appendix C). | ||||
When the Fmt parameter is the single character "-" ( a dash ), this is | When the Fmt parameter is the single character "-" ( a dash ), this is | |||
interpreted as meaning that a unspecified or default sub-type should be used | interpreted as meaning that a unspecified or default sub-type can be | |||
for this service. Thus, the media field value "m=audio 1 voice -<CRLF>" is | used for this service. Thus, the media field value "m=audio 1 voice | |||
taken to mean that a voice call is requested, using whatever audio sub type | -<CRLF>" is taken to mean that a voice call is requested, using whatever | |||
is deemed appropriate by the Executive System. PINT service is a special | audio sub type is deemed appropriate by the Executive System. PINT | |||
case, in that the request comes from the IP network but the service call is | service is a special case, in that the request comes from the IP network | |||
provided within the GSTN. Thus the service request will not normally be able | but the service call is provided within the GSTN. Thus the service | |||
to define the particular codec used for the resulting GSTN service call. If | request will not normally be able to define the particular codec used | |||
such an intent IS required, then the quality attribute may be used (see | for the resulting GSTN service call. If such an intent IS required, then | |||
"Suggested Attributes" section of [2]). | the quality attribute may be used (see "Suggested Attributes" section of | |||
[2]). | ||||
3.4.2.1. Use of fmtp attributes in PINT requests | 3.4.2.1. Use of fmtp attributes in PINT requests | |||
For each element of the Fmt sub-field, there MUST be a following fmtp | For each element of the Fmt sub-field, there MUST be a following fmtp | |||
attribute. When used within PINT requests, the fmtp attribute has a general | attribute. When used within PINT requests, the fmtp attribute has a | |||
structure as defined here: | general structure as defined here: | |||
"a=fmtp:" <subtype> <space> resolution | "a=fmtp:" <subtype> <space> resolution | |||
*(<space> resolution) | *(<space> resolution) | |||
(<space> ";" 1(<attribute>) *(<space> <attribute>)) | (<space> ";" 1(<attribute>) | |||
*(<space> <attribute>)) | ||||
where: | where: | |||
<resolution> := (<uri-ref> | <opaque-ref> | <sub-part-ref>) | <resolution> := (<uri-ref> | <opaque-ref> | <sub-part-ref>) | |||
A fmtp attribute describes the sources used with a given Fmt entry in the | A fmtp attribute describes the sources used with a given Fmt entry in | |||
Media field. The entries in a Fmt sub-field are alternatives (with the | the Media field. The entries in a Fmt sub-field are alternatives (with | |||
preferred one first in the list). Each entry will have a matching fmtp | the preferred one first in the list). Each entry will have a matching | |||
attribute. The list of resolutions in a fmtp attribute describes the set of | fmtp attribute. The list of resolutions in a fmtp attribute describes | |||
sources that resolve the matching Fmt choice; all elements of this set will | the set of sources that resolve the matching Fmt choice; all elements of | |||
be used. | this set will be used. | |||
It should be noted that, for use in PINT services, the elements in such a | It should be noted that, for use in PINT services, the elements in such | |||
set will be sent as a sequence; it is unlikely that trying to send them in | a set will be sent as a sequence; it is unlikely that trying to send | |||
parallel would be successful. | them in parallel would be successful. | |||
A fmtp attribute can contain a mixture of different kinds of element. Thus | A fmtp attribute can contain a mixture of different kinds of element. | |||
an attribute might contain a sub-part-ref to included data held in a | Thus an attribute might contain a sub-part-ref indicating included data | |||
sub-part of the current message, followed by an opaque-ref to some content | held in a sub-part of the current message, followed by an opaque-ref | |||
on the GSTN, followed by a uri-ref pointing to some data held externally on | referring to some content on the GSTN, followed by a uri-ref pointing to | |||
the IP network. | some data held externally on the IP network. | |||
To indicate which form each resolution element takes, each of them | To indicate which form each resolution element takes, each of them | |||
starts with its own literal tag. The detailed syntax of each form is | starts with its own literal tag. The detailed syntax of each form is | |||
described in the following sub-sections. | described in the following sub-sections. | |||
3.4.2.2. Support for Remote Data Object References in PINT | 3.4.2.2. Support for Remote Data Object References in PINT Where data | |||
Where data objects stored elsewhere on the IP Network are to be used as | objects stored elsewhere on the IP Network are to be used as sources for | |||
sources for processing within a PINT service, they may be referred to using | processing within a PINT service, they may be referred to using the | |||
the uri-ref form. This is simply a Uniform Resource Identifier (URI), as | uri-ref form. This is simply a Uniform Resource Identifier (URI), as | |||
described in [9]. | described in [9]. | |||
Note that the reference SHOULD be an absolute URI, as there may not be | Note that the reference SHOULD be an absolute URI, as there may not be | |||
enough contextual information for the recipient server to resolve a relative | enough contextual information for the recipient server to resolve a | |||
reference; any use of relative references requires some private agreement | relative reference; any use of relative references requires some private | |||
between the sender and recipient of the message, and should be avoided | agreement between the sender and recipient of the message, and SHOULD be | |||
unless the sender can be sure that the recipient is the one intended and the | avoided unless the sender can be sure that the recipient is the one | |||
reference is unambiguous in context. | intended and the reference is unambiguous in context. | |||
This also holds for partial URIs (such as: "uri:http://aMachine/index.html") | This also holds for partial URIs (such as"uri:http://aNode/index.htm") | |||
as these will need to be resolved in the context of the eventual recipient | as these will need to be resolved in the context of the eventual | |||
of the message. | recipient of the message. | |||
The general syntax of a reference to an Internet-based external data object | The general syntax of a reference to an Internet-based external data | |||
in a fmtp line within a PINT session description is: | object in a fmtp line within a PINT session description is: | |||
<uri-ref> := ("uri:" URI-reference) | <uri-ref> := ("uri:" URI-reference) | |||
where URI-reference is as defined in Appendix A of [9] | where URI-reference is as defined in Appendix A of [9] | |||
For example: | For example: | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
m= text 1 fax plain | m= text 1 fax plain | |||
a=fmtp:plain uri:ftp://ftp.isi.edu/in-notes/rfc2468.txt | a=fmtp:plain uri:ftp://ftp.isi.edu/in-notes/rfc2468.txt | |||
or: | or: | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
m= text 1 fax plain | m= text 1 fax plain | |||
a=fmtp:plain uri:http://www.ietf.org/meetings/glance_minneapolis.txt | a=fmtp:plain | |||
uri:http://www.ietf.org/meetings/glance_minneapolis.txt | ||||
means get this data object from the Internet and use it as a source for the | means get this data object from the Internet and use it as a source for | |||
requested GSTN Fax service. | the requested GSTN Fax service. | |||
3.4.2.3. Support for GSTN-based Data Objects in PINT | 3.4.2.3. Support for GSTN-based Data Objects in PINT | |||
PINT services may refer to data that is held not on the IP Network but | PINT services may refer to data that are held not on the IP Network but | |||
instead within the GSTN. The way in which these items are indicated need | instead within the GSTN. The way in which these items are indicated need | |||
have no meaning within the context of the Requestor or the PINT Gateway; it | have no meaning within the context of the Requestor or the PINT Gateway; | |||
is merely some data that may be used by the Executive System to indicate the | the reference is merely some data that may be used by the Executive | |||
content intended as part of the request. This data forms an opaque | System to indicate the content intended as part of the request. These | |||
reference, in that it is sent "untouched" through the PINT infrastructure. | data form an opaque reference, in that they are sent "untouched" through | |||
the PINT infrastructure. | ||||
A reference to some data object held on the GSTN has the general definition: | A reference to some data object held on the GSTN has the general | |||
definition: | ||||
<opaque-ref> := ("opr:" *uric) | <opaque-ref> := ("opr:" *uric) | |||
where uric is as defined in Appendix A of [9]. | where uric is as defined in Appendix A of [9]. | |||
For example: | For example: | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
m= text 1 fax plain | m= text 1 fax plain | |||
a=fmtp:plain opr:APPL.123.456 | a=fmtp:plain opr:APPL.123.456 | |||
means send me the data that is indexed ON THE GSTN by the reference value | means send the data that is indexed ON THE GSTN by the reference value | |||
"APPL.123.456"; the Executive System may also take the Telephone URL held in | "APPL.123.456" to the fax machine on +1-201-406-4090. The Executive | |||
the To: field of the enclosing SIP message into account when deciding the | System may also take the Telephone URL held in the To: field of the | |||
context to be used for the data object dereference. | enclosing SIP message into account when deciding the context to be used | |||
for the data object dereference. | ||||
Of course, an opaque reference may also be used for other purposes; it | Of course, an opaque reference may also be used for other purposes; it | |||
could, for example, be needed to authorise access to a document held on the | could, for example, be needed to authorise access to a document held on | |||
GSTN rather than being required merely to disambiguate the data object. The | the GSTN rather than being required merely to disambiguate the data | |||
purpose to which an opaque reference is put, however, is out of scope for | object. The purpose to which an opaque reference is put, however, is out | |||
this document. It is merely an indicator carried within a PINT Request. | of scope for this document. It is merely an indicator carried within a | |||
PINT Request. | ||||
An opaque reference may have no value in the case where the value to be used | An opaque reference may have no value in the case where the value to be | |||
is implicit in the rest of the request. For example, suppose some company | used is implicit in the rest of the request. For example, suppose some | |||
wishes to use PINT to implement a "fax-back service". In their current | company wishes to use PINT to implement a "fax-back service". In their | |||
implementation, the image(s) to be faxed are entirely defined by the | current implementation, the image(s) to be faxed are entirely defined by | |||
telephone number dialled. Within the PINT request, this telephone number | the telephone number dialled. Within the PINT request, this telephone | |||
would appear within the "To:" field of the PINT request, and so there | number would appear within the "To:" field of the PINT request, and so | |||
is no need for an opaque reference value. | there is no need for an opaque reference value. | |||
If there are several resolutions for a PINT Service Request, and one of | If there are several resolutions for a PINT Service Request, and one of | |||
these is an opaque reference with no value, then that opaque reference MUST | these is an opaque reference with no value, then that opaque reference | |||
be included in the attribute line, but with an empty value field. | MUST be included in the attribute line, but with an empty value field. | |||
For example: | For example: | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
m= text 1 fax plain | m= text 1 fax plain | |||
a=fmtp:plain spr:<Content-ID> opr: | a=fmtp:plain uri:http://www.sun.com/index.html opr: | |||
might be used to precede some unambiguous "faxed back" data with a covering | might be used to precede some data to be faxed with a covering note. | |||
note (see next sub-section for details of the sub-part reference). | ||||
In the special case where an opaque reference is the sole resolution of a | In the special case where an opaque reference is the sole resolution of | |||
PINT Service Request, AND that reference needs no value, there is no need | a PINT Service Request, AND that reference needs no value, there is no | |||
for a Fmt list at all; the intent of the service is unambiguous without any | need for a Fmt list at all; the intent of the service is unambiguous | |||
further resolution. | without any further resolution. | |||
For example: | For example: | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
m= text 1 fax - | m= text 1 fax - | |||
means that there is an implied content stored on the GSTN, and that this is | means that there is an implied content stored on the GSTN, and that this | |||
uniquely identified by the combination of SIP To-URI and the Contact field | is uniquely identified by the combination of SIP To-URI and the Contact | |||
of the session description. | field of the session description. | |||
3.4.2.4. Session Description support for included Data Objects | 3.4.2.4. Session Description support for included Data Objects | |||
As an alternative to pointing to the data via a URI or an opaque reference | As an alternative to pointing to the data via a URI or an opaque | |||
to a data item held on the GSTN, it is possible to include the content data | reference to a data item held on the GSTN, it is possible to include the | |||
within the SIP request itself. This is done by using multipart MIME for the | content data within the SIP request itself. This is done by using | |||
SIP payload. The first MIME part contains the SDP description of the | multipart MIME for the SIP payload. The first MIME part contains the SDP | |||
telephone network session to be executed. The other MIME parts contain the | description of the telephone network session to be executed. The other | |||
content data to be transported. | MIME parts contain the content data to be transported. | |||
Format specific attribute lines within the session description are used to | Format specific attribute lines within the session description are used | |||
indicate which other MIME part within the request contains the content data. | to indicate which other MIME part within the request contains the | |||
Instead of a URI or opaque reference, the format-specific attribute | content data. Instead of a URI or opaque reference, the format-specific | |||
indicates the Content-ID of the MIME part of the request that contains the | attribute indicates the Content-ID of the MIME part of the request that | |||
actual data, and is defined as: | contains the actual data, and is defined as: | |||
<sub-part-ref> := ("spr:" Content-ID) | <sub-part-ref> := ("spr:" Content-ID) | |||
where Content-ID is as defined in Appendix A of [3] and in [10]). | where Content-ID is as defined in Appendix A of [3] and in [10]). | |||
For example: | For example: | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
m= text 1 fax plain | m= text 1 fax plain | |||
a=fmtp:plain spr:<Content-ID> | a=fmtp:plain spr:<Content-ID> | |||
The <Content-ID> parameter is the Content-ID of one of the MIME parts inside | The <Content-ID> parameter is the Content-ID of one of the MIME parts | |||
the message, and this fragment means that the requesting user would like the | inside the message, and this fragment means that the requesting user | |||
data object held in the sub-part of this message labelled <Content-ID> to be | would like the data object held in the sub-part of this message labelled | |||
faxed to the machine at phone number +1-201-406-4090. | <Content-ID> to be faxed to the machine at phone number +1-201-406-4090. | |||
See also section 3.5.1 for a discussion on the support needed in the | See also section 3.5.1 for a discussion on the support needed in the | |||
enclosing SIP request for included data objects. | enclosing SIP request for included data objects. | |||
3.4.3. Attribute Tags to pass information into the Telephone Network | 3.4.3. Attribute Tags to pass information into the Telephone Network | |||
It may be desired to include within the PINT request service parameters | It may be desired to include within the PINT request service parameters | |||
that can be understood only by some entity in the "Telephone Network | that can be understood only by some entity in the "Telephone Network | |||
Cloud". SDP attribute parameters are used for this purpose. They MAY appear | Cloud". SDP attribute parameters are used for this purpose. They MAY | |||
within a particular media description or outside of a media description. | appear within a particular media description or outside of a media | |||
description. | ||||
These attributes may also appear as parameters within PINT URLS (see section | These attributes may also appear as parameters within PINT URLS (see | |||
3.5.6) as part of a SIP request. | section 3.5.6) as part of a SIP request. | |||
This is necessary so that telephone terminals that require the attributes to | This is necessary so that telephone terminals that require the | |||
be defined can appear within the To: line of a PINT request as well as | attributes to be defined can appear within the To: line of a PINT | |||
within PINT session descriptions. | request as well as within PINT session descriptions. | |||
The purpose of these attributes is to allow the client to specify extra | The purpose of these attributes is to allow the client to specify extra | |||
context within which a particular telephone number is to be interpreted. | context within which a particular telephone number is to be interpreted. | |||
There are many reasons why extra context might be necessary to interpret a | There are many reasons why extra context might be necessary to interpret | |||
given telephone number: | a given telephone number: | |||
a. The telephone number might be reachable in many different ways | a. The telephone number might be reachable in many different ways | |||
(such as via competing telephone service providers), and the PINT | (such as via competing telephone service providers), and the PINT | |||
client wishes to indicate its selection of service provider. | client wishes to indicate its selection of service provider. | |||
b. The telephone number might be reachable only from a limited | b. The telephone number might be reachable only from a limited | |||
number of networks (such as an '800' freephone number). | number of networks (such as an '800' freephone number). | |||
c. The telephone number might be reachable only within a | c. The telephone number might be reachable only within a | |||
single telephone network (such as the '152' customer service | single telephone network (such as the '152' customer service | |||
number of BT). Similarly, the number might be an internal | number of BT). Similarly, the number might be an internal | |||
corporate extension reachable only within the PBX. | corporate extension reachable only within the PBX. | |||
However, as noted above, it is not usually necessary to use SDP | However, as noted above, it is not usually necessary to use SDP | |||
attributes to specify the phone context. URLs such as 152@pint.bt.co.il | attributes to specify the phone context. URLs such as 152@pint.bt.co.il | |||
within the To: and From: headers and/or Request-URI, normally offer | within the To: and From: headers and/or Request-URI, normally offer | |||
sufficient context to resolve telephone numbers. | sufficient context to resolve telephone numbers. | |||
skipping to change at page 16, line 54 | skipping to change at page 18, line 16 | |||
single telephone network (such as the '152' customer service | single telephone network (such as the '152' customer service | |||
number of BT). Similarly, the number might be an internal | number of BT). Similarly, the number might be an internal | |||
corporate extension reachable only within the PBX. | corporate extension reachable only within the PBX. | |||
However, as noted above, it is not usually necessary to use SDP | However, as noted above, it is not usually necessary to use SDP | |||
attributes to specify the phone context. URLs such as 152@pint.bt.co.il | attributes to specify the phone context. URLs such as 152@pint.bt.co.il | |||
within the To: and From: headers and/or Request-URI, normally offer | within the To: and From: headers and/or Request-URI, normally offer | |||
sufficient context to resolve telephone numbers. | sufficient context to resolve telephone numbers. | |||
If the client wishes the request to fail if the attributes are not | If the client wishes the request to fail if the attributes are not | |||
supported, these attributes should be used in conjunction with the | supported, these attributes SHOULD be used in conjunction with the | |||
"require" attribute (section 3.4.4) and the "Require:org.ietf.sdp.require" | "require" attribute (section 3.4.4) and the | |||
header (section 3.5.4). | "Require:org.ietf.sdp.require" header (section 3.5.4). | |||
It is not possible to standardise every possible internal telephone network | It is not possible to standardise every possible internal telephone | |||
parameter. PINT 1.0 attributes have been chosen for specification because | network parameter. PINT 1.0 attributes have been chosen for | |||
they are common enough that many different PINT systems will want to use | specification because they are common enough that many different PINT | |||
them, and therefore interoperability will be increased by having a single | systems will want to use them, and therefore interoperability will be | |||
specification. | increased by having a single specification. | |||
Proprietary attribute "a=" lines, that by definition are not interoperable, | Proprietary attribute "a=" lines, that by definition are not | |||
may be nonetheless useful when it is necessary to transport some proprietary | interoperable, may be nonetheless useful when it is necessary to | |||
internal telephone network variables over the IP network, for example to | transport some proprietary internal telephone network variables over the | |||
identify the order in which service call legs should be made. These private | IP network, for example to identify the order in which service call legs | |||
attributes SHOULD BE, however, subject to the same IANA registration | are to be be made. These private attributes SHOULD BE, however, subject | |||
procedures mentioned in the SDP specification[2] (see also this Appendix C). | to the same IANA registration procedures mentioned in the SDP | |||
specification[2] (see also this Appendix C). | ||||
3.4.3.1. The phone-context attribute | 3.4.3.1. The phone-context attribute | |||
An attribute is specified to enable "remote local dialling". This is the | An attribute is specified to enable "remote local dialling". This is the | |||
service that allows a PINT client to reach a number from far outside the | service that allows a PINT client to reach a number from far outside the | |||
area or network that can usually reach the number. It is useful when the | area or network that can usually reach the number. It is useful when the | |||
sending or receiving address is only dialable within some local context, | sending or receiving address is only dialable within some local context, | |||
which may be remote to the origin of the PINT client. | which may be remote to the origin of the PINT client. | |||
For example, if Alice wanted to report a problem with her telephone, she | For example, if Alice wanted to report a problem with her telephone, she | |||
might then dial a "network wide" customer care number; within the British | might then dial a "network wide" customer care number; within the | |||
Telecom network in the U.K., this is "152". Note that in this case she | British Telecom network in the U.K., this is "152". Note that in this | |||
doesn't dial any trunk prefix - this is the whole dialable number. If | case she doesn't dial any trunk prefix - this is the whole dialable | |||
dialled from another operator's network, it will not connect to British | number. If dialled from another operator's network, it will not connect | |||
Telecom's Engineering Enquiries service; and dialling "+44 152" will not | to British Telecom's Engineering Enquiries service; and dialling "+44 | |||
normally succeed. Such numbers are called Network-Specific Service Numbers. | 152" will not normally succeed. Such numbers are called Network-Specific | |||
Service Numbers. | ||||
Within the telephone network, the "local context" is provided by the | Within the telephone network, the "local context" is provided by the | |||
physical connection between the subscriber's terminal and the central | physical connection between the subscriber's terminal and the central | |||
office. An analogous association between the PINT client and the PINT server | office. An analogous association between the PINT client and the PINT | |||
that first receives the request may not exist, which is why it may be | server that first receives the request may not exist, which is why it | |||
necessary to supply this missing "telephone network context". | may be necessary to supply this missing "telephone network context". | |||
This attribute is defined as follows: | This attribute is defined as follows: | |||
a=phone-context: <phone-context-ident> | a=phone-context: <phone-context-ident> | |||
phone-context-ident = network-prefix / private-prefix | phone-context-ident = network-prefix / private-prefix | |||
network-prefix = intl-network-prefix / local-network-prefix | network-prefix = intl-network-prefix / local-network-prefix | |||
intl-network-prefix = "+" 1*DIGIT | intl-network-prefix = "+" 1*DIGIT | |||
local-network-prefix = 1*DIGIT | local-network-prefix = 1*DIGIT | |||
excldigandplus = (0x21-0x2d,0x2f,0x40-0x7d)) | excldigandplus = (0x21-0x2d,0x2f,0x40-0x7d)) | |||
private-prefix = 1*excldigandplus 0*uric | private-prefix = 1*excldigandplus 0*uric | |||
An intl-network-prefix and local-network-prefix MUST be a bona fide network | An intl-network-prefix and local-network-prefix MUST be a bona fide | |||
prefix, and a network-prefix that is an intl-network-prefix MUST begin with | network prefix, and a network-prefix that is an intl-network-prefix MUST | |||
an E.164 service code ("country code"). | begin with an E.164 service code ("country code"). | |||
It is possible to register new private-prefixes with IANA so as to avoid | It is possible to register new private-prefixes with IANA so as to avoid | |||
confrontation. Prefixes that are not so registered MUST begin with an "X-" | collisions. Prefixes that are not so registered MUST begin with an "X-" | |||
to indicate their private, non-standard nature (see Appendix C). | to indicate their private, non-standard nature (see Appendix C). | |||
Example 1: | Example 1: | |||
c= TN RFC2543 1-800-765-4321 | c= TN RFC2543 1-800-765-4321 | |||
a=phone-context:+972 | a=phone-context:+972 | |||
This describes an terminal whose address in Israel (E.164 country code 972) | This describes an terminal whose address in Israel (E.164 country code | |||
is 1-800-765-4321. | 972) is 1-800-765-4321. | |||
Example 2: | Example 2: | |||
c= TN RFC2543 1-800-765-4321 | c= TN RFC2543 1-800-765-4321 | |||
a=phone-context:+1 | a=phone-context:+1 | |||
This describes an terminal whose address in North America (E.164 country | This describes an terminal whose address in North America (E.164 country | |||
code 1) is 1-800-765-4321. | code 1) is 1-800-765-4321. | |||
The two telephone terminals described by examples 1 and 2 are different; in | The two telephone terminals described by examples 1 and 2 are different; | |||
fact they are located in different countries. | in fact they are located in different countries. | |||
Example 3: | Example 3: | |||
c=TN RFC2543 123 | c=TN RFC2543 123 | |||
a=phone-context:+97252 | a=phone-context:+97252 | |||
This describes a terminal whose address when dialled from within the network | This describes a terminal whose address when dialled from within the | |||
identified by +97252 is the string "123". It so happens that +97252 defines | network identified by +97252 is the string "123". It so happens that | |||
one of the Israeli cell phone providers, and 123 reaches customer service | +97252 defines one of the Israeli cell phone providers, and 123 reaches | |||
when dialled within that network. | customer service when dialled within that network. | |||
It may well be useful or necessary to use the SDP "require" parameter in | It may well be useful or necessary to use the SDP "require" parameter in | |||
conjunction with the phone-context attribute. | conjunction with the phone-context attribute. | |||
Example 4: | Example 4: | |||
c= TN RFC2543 321 | c= TN RFC2543 321 | |||
a=phone-context:X-acme.com-23 | a=phone-context:X-acme.com-23 | |||
This might describe the telephone terminal that is at extension 321 of PBX | This might describe the telephone terminal that is at extension 321 of | |||
number 23 within the acme.com private PBX network. It is expected that such | PBX number 23 within the acme.com private PBX network. It is expected | |||
a description would be understandable by the acme.com PINT server that | that such a description would be understandable by the acme.com PINT | |||
receives the request. | server that receives the request. | |||
Note that if the PINT server receiving the request is inside the acme.com | Note that if the PINT server receiving the request is inside the | |||
network, the same terminal might be addressable as follows: | acme.com network, the same terminal might be addressable as follows: | |||
c= TN RFC2543 7-23-321 | c= TN RFC2543 7-23-321 | |||
(assuming that "7" is dialled in order to reach the private PBX network from | (assuming that "7" is dialled in order to reach the private PBX network | |||
within acme.com) | from within acme.com) | |||
3.4.3.2. Presentation Restriction attribute | 3.4.3.2. Presentation Restriction attribute | |||
Although it has no affect on the transport of the service request through | Although it has no affect on the transport of the service request | |||
the IP Network, there may be a requirement to allow originators of a PINT | through the IP Network, there may be a requirement to allow originators | |||
service request to indicate whether or not they wish the "B party" in | of a PINT service request to indicate whether or not they wish the "B | |||
the resulting service call to be presented with the "A party's" calling | party" in the resulting service call to be presented with the "A | |||
telephone number. It is a legal requirement in some jurisdictions that a | party's" calling telephone number. It is a legal requirement in some | |||
caller be able to select whether or not their correspondent can find out | jurisdictions that a caller be able to select whether or not their | |||
the calling telephone number (using Automatic Number Indication or Caller | correspondent can find out the calling telephone number (using Automatic | |||
Display or Calling Line Identity Presentation equipment). Thus an attribute | Number Indication or Caller Display or Calling Line Identity | |||
may be needed to indicate the originator's preference. | Presentation equipment). Thus an attribute may be needed to indicate the | |||
originator's preference. | ||||
Whether or not the default behaviour of the Executive System is to present | Whether or not the default behaviour of the Executive System is to | |||
or not present a party's telephone number to the correspondent GSTN terminal | present or not present a party's telephone number to the correspondent | |||
is not specified, and it is not mandatory in all territories for a PINT | GSTN terminal is not specified, and it is not mandatory in all | |||
Gateway or Executive System to act on this attribute. It is, however, | territories for a PINT Gateway or Executive System to act on this | |||
defined here for use where there are regulatory restrictions on GSTN | attribute. It is, however, defined here for use where there are | |||
operation, and in that case the Executive System can use it to honour the | regulatory restrictions on GSTN operation, and in that case the | |||
originator's request. | Executive System can use it to honour the originator's request. | |||
The attribute is specified as follows: | The attribute is specified as follows: | |||
a=clir:<"true" | "false"> | a=clir:<"true" | "false"> | |||
This boolean value is needed within the attribute as it may be that the GSTN | This boolean value is needed within the attribute as it may be that the | |||
address is, by default, set to NOT present its identity to correspondents, | GSTN address is, by default, set to NOT present its identity to | |||
and the originator wants to do so for this particular call. It is in keeping | correspondents, and the originator wants to do so for this particular | |||
with the aim of this attribute to allow the originator to specify what | call. It is in keeping with the aim of this attribute to allow the | |||
treatment they want for the requested service call. | originator to specify what treatment they want for the requested service | |||
call. | ||||
The expected interpretation of this attribute is that, if it is present and | The expected interpretation of this attribute is that, if it is present | |||
the value is "false" then the Calling Line Identity CAN be presented to the | and the value is "false" then the Calling Line Identity CAN be presented | |||
correspondent terminal, whilst if it is "true" then it if possible the | to the correspondent terminal, whilst if it is "true" then it if | |||
Executive System is requested to NOT present the Calling Line Identity. | possible the Executive System is requested to NOT present the Calling | |||
Line Identity. | ||||
3.4.3.3. ITU-T CalledPartyAddress attributes parameters | 3.4.3.3. ITU-T CalledPartyAddress attributes parameters | |||
These attributes correspond to fields that appear within the ITU-T Q.763 | These attributes correspond to fields that appear within the ITU-T Q.763 | |||
"CalledPartyAddress" field (see [8] ,section 3.9). PINT clients | "CalledPartyAddress" field (see [8] ,section 3.9). PINT clients use | |||
use these attributes in order to specify further parameters relating to | these attributes in order to specify further parameters relating to | |||
Terminal Addresses, in the case when the address indicates a | Terminal Addresses, in the case when the address indicates a | |||
"local-phone-number". In the case that the PINT request contains a | "local-phone-number". In the case that the PINT request contains a | |||
reference to a GSTN terminal, the parameters may be required to correctly | reference to a GSTN terminal, the parameters may be required to | |||
identify that remote terminal. | correctly identify that remote terminal. | |||
The general form of this attribute is "a=Q763-<token>((":" <value>) |"")". | The general form of this attribute is: | |||
Three of the possible elements and their use in SDP attributes are described | "a=Q763-<token>((":" <value>) |"")". | |||
here. Where other Q763 elements are to be used, then these should be the | Three of the possible elements and their use in SDP attributes are | |||
subject of further specification to define the syntax of the attribute | described here. Where other Q763 elements are to be used, then these | |||
mapping. It is recommended that any such specification maintains the value | should be the subject of further specification to define the syntax of | |||
sets shown in Q.763. | the attribute mapping. It is recommended that any such specification | |||
maintains the value sets shown in Q.763. | ||||
The defined attributes are: | The defined attributes are: | |||
a=Q763-nature: - indicates the "nature of address indicator". | a=Q763-nature: - indicates the "nature of address indicator". | |||
The value MAY be any number between 0 and 127. | The value MAY be any number between 0 and 127. | |||
The following values are specified: | The following values are specified: | |||
"1" a subscriber number | "1" a subscriber number | |||
"2" unknown | "2" unknown | |||
"3" a nationally significant number | "3" a nationally significant number | |||
skipping to change at page 20, line 28 | skipping to change at page 21, line 46 | |||
expansion of Q.763. | expansion of Q.763. | |||
a=Q763-plan: - indicates the numbering plan to which the address | a=Q763-plan: - indicates the numbering plan to which the address | |||
belongs. The value MAY be any number between 0 and | belongs. The value MAY be any number between 0 and | |||
7. The following values are specified: | 7. The following values are specified: | |||
"1" Telephone numbering plan (ITU-T E.164) | "1" Telephone numbering plan (ITU-T E.164) | |||
"3" Data numbering plan (ITU-T X.121) | "3" Data numbering plan (ITU-T X.121) | |||
"4" Telex numbering plan (ITU-T F.69) | "4" Telex numbering plan (ITU-T F.69) | |||
The values have been chosen to coincide with the values in Q.763. | The values have been chosen to coincide with the values in Q.763. Other | |||
Other values are allowed, according to national rules or future | values are allowed, according to national rules or future expansion of | |||
expansion of Q.763. | Q.763. | |||
a=Q763-INN - indicates if routing to the Internal Network Number | a=Q763-INN - indicates if routing to the Internal Network Number | |||
is allowed. The value MUST be ONE of: | is allowed. The value MUST be ONE of: | |||
"0" routing to internal network number allowed | "0" routing to internal network number allowed | |||
"1" routing to internal network number not | "1" routing to internal network number not | |||
allowed | allowed | |||
The values have been chosen to coincide with the values in Q.763. | The values have been chosen to coincide with the values in Q.763. | |||
Note that it is possible to use a local-phone-number and indicate via | Note that it is possible to use a local-phone-number and indicate via | |||
attributes that the number is in fact an internationally significant | attributes that the number is in fact an internationally significant | |||
E.164 number. Normally this SHOULD NOT be done; an internationally | E.164 number. Normally this SHOULD NOT be done; an internationally | |||
significant E.164 number is indicated by using a "global-phone-number" | significant E.164 number is indicated by using a "global-phone-number" | |||
for the address string. | for the address string. | |||
3.4.4. The "require" attribute | 3.4.4. The "require" attribute | |||
According to the SDP specification, a PINT server is allowed simply to | According to the SDP specification, a PINT server is allowed simply to | |||
ignore attribute parameters that it does not understand. In order to force a | ignore attribute parameters that it does not understand. In order to | |||
server to fail a request if it does not understand one of the PINT | force a server to decline a request if it does not understand one of the | |||
attributes, a client should use the "require" attribute, specified as | PINT attributes, a client SHOULD use the "require" attribute, specified | |||
follows: | as follows: | |||
a=require:<attribute-list> | a=require:<attribute-list> | |||
where the attribute-list is a comma-separated list of attributes that appear | where the attribute-list is a comma-separated list of attributes that | |||
elsewhere in the session description. | appear elsewhere in the session description. | |||
In order to process the request successfully the PINT server must BOTH | In order to process the request successfully the PINT server must BOTH | |||
understand the attribute AND ALSO fulfil the request implied by the presence | understand the attribute AND ALSO fulfil the request implied by the | |||
of the attribute, for each attribute appearing within the attribute-list of | presence of the attribute, for each attribute appearing within the | |||
the require attribute. | attribute-list of the require attribute. | |||
If the server does not recognise the attribute listed, the PINT server MUST | If the server does not recognise the attribute listed, the PINT server | |||
return an error status code (such as 420 (Bad Extension) or 400 (Bad | MUST return an error status code (such as 420 (Bad Extension) or 400 | |||
Request)), and SHOULD return suitable Warning: lines explaining the problem | (Bad Request)), and SHOULD return suitable Warning: lines explaining the | |||
or an Unsupported: header containing the attribute it does not understand. | problem or an Unsupported: header containing the attribute it does not | |||
If the server recognizes the attribute listed, but cannot fulfil the | understand. If the server recognizes the attribute listed, but cannot | |||
request implied by the presence of the attribute, the request MUST fail | fulfil the request implied by the presence of the attribute, the request | |||
with a status code of (606 Not Acceptable), along with a suitable | MUST be rejected with a status code of (606 Not Acceptable), along with | |||
Unsupported: header or Warning: line. | a suitable Unsupported: header or Warning: line. | |||
The "require" attribute may appear anywhere in the session description, and | The "require" attribute may appear anywhere in the session description, | |||
any number of times, but it MUST appear before the use of the attribute | and any number of times, but it MUST appear before the use of the | |||
marked as required. | attribute marked as required. | |||
Since the "require" attribute is itself an attribute, the SIP specification | Since the "require" attribute is itself an attribute, the SIP | |||
allows a server that does not understand the require attribute to ignore | specification allows a server that does not understand the require | |||
it. In order to ensure that the PINT server will comply with the "require" | attribute to ignore it. In order to ensure that the PINT server will | |||
attribute, a PINT client should include a Require: header with the tag | comply with the "require" attribute, a PINT client SHOULD include a | |||
"ietf.org.sdp.require" (section 3.5.4) | Require: header with the tag "ietf.org.sdp.require" (section 3.5.4) | |||
Note that the majority of the PINT extensions are "tagged" and these tags | Note that the majority of the PINT extensions are "tagged" and these | |||
can be included in Require strictures. The exception is the use of phone | tags can be included in Require strictures. The exception is the use of | |||
numbers in SDP parts. However, these are defined as a new network and | phone numbers in SDP parts. However, these are defined as a new network | |||
address type, so that a receiving SIP/SDP server should be able to detect | and address type, so that a receiving SIP/SDP server should be able to | |||
whether or not it supports these forms. The default behaviour for any SDP | detect whether or not it supports these forms. The default behaviour for | |||
recipient is that it will fail a PINT request if it does not recognise or | any SDP recipient is that it will fail a PINT request if it does not | |||
support the TN and RFC2543 or X-token network and address types, as without | recognise or support the TN and RFC2543 or X-token network and address | |||
the contents being recognised no media session could be created. Thus a | types, as without the contents being recognised no media session could | |||
separate stricture is not required in this case. | be created. Thus a separate stricture is not required in this case. | |||
3.5. PINT Extensions to SIP 2.0 | 3.5. PINT Extensions to SIP 2.0 | |||
PINT requests are SIP requests; Many of the specifications within this | PINT requests are SIP requests; Many of the specifications within this | |||
document merely explain how to use existing SIP facilities for the purposes | document merely explain how to use existing SIP facilities for the | |||
of PINT. | purposes of PINT. | |||
3.5.1. Multi-part MIME (sending data along with SIP request) | 3.5.1. Multi-part MIME (sending data along with SIP request) | |||
A PINT request can contain a payload which is multipart MIME. In this case | A PINT request can contain a payload which is multipart MIME. In this | |||
the first part MUST contain an SDP session description that includes at | case the first part MUST contain an SDP session description that | |||
least one of the format specific attribute tags for "included content data" | includes at least one of the format specific attribute tags for | |||
specified above in section 3.4.3. All subsequent parts contain content data | "included content data" specified above in section 3.4.3. Subsequent | |||
that is to be transferred to the requested Telephone Call Service. As | parts contain content data that may be transferred to the requested | |||
discussed earlier, within a single PINT request, some of the data MAY be | Telephone Call Service. As discussed earlier, within a single PINT | |||
pointed to by a URI within the request, and some of the data MAY be included | request, some of the data MAY be pointed to by a URI within the request, | |||
within the request. | and some of the data MAY be included within the request. | |||
Where included data is carried within a PINT service request, the Content | Where included data is carried within a PINT service request, the | |||
Type entity header of the enclosing SIP message MUST indicate this. To do | Content Type entity header of the enclosing SIP message MUST indicate | |||
so, the media type value within this entity header MUST be set to a value of | this. To do so, the media type value within this entity header MUST be | |||
"multipart". | set to a value of "multipart". There is a content sub-type that is | |||
intended for situations like this in which sub-parts are to be handled | ||||
together. This is the multipart/related type (defined in [19]), and it's | ||||
use is recommended. | ||||
The enclosed body parts SHOULD include the part-specific Content Type | The enclosed body parts SHOULD include the part-specific Content Type | |||
headers as appropriate ("application/sdp" for the first body part holding | headers as appropriate ("application/sdp" for the first body part | |||
the session description, with an appropriate content type for each of the | holding the session description, with an appropriate content type for | |||
subsequent, "included data object" parts). This matches the standard syntax | each of the subsequent, "included data object" parts). This matches the | |||
of MIME multipart messages as defined in [4]. | standard syntax of MIME multipart messages as defined in [4]. | |||
For example, in a multipart message where the string "------next-------" is | For example, in a multipart message where the string "------next-------" | |||
the boundary, the first two parts might be as follows: | is the boundary, the first two parts might be as follows: | |||
------next------- | ------next------- | |||
Content-Type: application/sdp | Content-Type: application/sdp | |||
.... | .... | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
m= text 1 pager plain | m= text 1 pager plain | |||
a=fmtp:plain spr:17@mymessage.acme.com | a=fmtp:plain spr:17@mymessage.acme.com | |||
----------next------- | ----------next------- | |||
Content-Type: text/plain | Content-Type: text/plain | |||
Content-ID: 17@mymessage.acme.com | Content-ID: 17@mymessage.acme.com | |||
This is the text that is to be paged to +1-201-406-4090 | This is the text that is to be paged to +1-201-406-4090 | |||
----------next----------- | ----------next----------- | |||
The ability to indicate different alternatives for the content to be | The ability to indicate different alternatives for the content to be | |||
transported is useful, even when the alternatives are included within the | transported is useful, even when the alternatives are included within | |||
request. For example, a request to send a short message to a pager might | the request. For example, a request to send a short message to a pager | |||
include the message in Unicode [5] and an alternative version of the same | might include the message in Unicode [5] and an alternative version of | |||
content in text/plain, should the PINT server or telephone network not be | the same content in text/plain, should the PINT server or telephone | |||
able to process the unicode. | network not be able to process the unicode. | |||
PINT clients should be extremely careful when sending included data within a | PINT clients should be extremely careful when sending included data | |||
PINT request. Such requests SHOULD be sent via TCP, to avoid fragmentation | within a PINT request. Such requests SHOULD be sent via TCP, to avoid | |||
and to transmit the data reliably. It is possible that the PINT server is a | fragmentation and to transmit the data reliably. It is possible that the | |||
proxy server that will replicate and fork the request, which could be | PINT server is a proxy server that will replicate and fork the request, | |||
disastrous if the request contains a large amount of application data. PINT | which could be disastrous if the request contains a large amount of | |||
proxy servers should be careful not to create many copies of a request with | application data. PINT proxy servers should be careful not to create | |||
large amounts of data in it. If the client does not know the actual location | many copies of a request with large amounts of data in it. If the client | |||
of the PINT gateway, and is using the SIP location services to find it, and | does not know the actual location of the PINT gateway, and is using the | |||
the included data makes the PINT request likely to be transported in several | SIP location services to find it, and the included data makes the PINT | |||
IP datagrams, it is RECOMMENDED that the initial PINT request not include | request likely to be transported in several IP datagrams, it is | |||
the data but instead hold a reference to it. | RECOMMENDED that the initial PINT request not include the data object | |||
but instead hold a reference to it. | ||||
3.5.2. Warning header | 3.5.2. Warning header | |||
A PINT server MUST support the SIP "Warning:" header so that it can signal | A PINT server MUST support the SIP "Warning:" header so that it can | |||
lack of support for individual PINT features. As an example, suppose the | signal lack of support for individual PINT features. As an example, | |||
PINT request is to send a jpeg picture to a fax machine, but the server | suppose the PINT request is to send a jpeg picture to a fax machine, but | |||
cannot retrieve and/or translate jpeg pictures from the Internet into fax | the server cannot retrieve and/or translate jpeg pictures from the | |||
transmissions. | Internet into fax transmissions. | |||
In such a case the server fails the request and includes a | In such a case the server fails the request and includes a Warning such | |||
Warning such as the following: | as the following: | |||
Warning: 305 pint.acme.com Incompatible media format: jpeg | Warning: 305 pint.acme.com Incompatible media format: jpeg | |||
SIP servers that do not understand the PINT extensions at all are strongly | SIP servers that do not understand the PINT extensions at all are | |||
encouraged to implement Warning: headers to indicate that PINT extensions | strongly encouraged to implement Warning: headers to indicate that PINT | |||
are not understood. | extensions are not understood. | |||
Also, Warning: headers may be included within NOTIFY requests if it is | Also, Warning: headers may be included within NOTIFY requests if it is | |||
necessary to notify the client about some condition concerning the | necessary to notify the client about some condition concerning the | |||
invocation of the PINT service (see next). | invocation of the PINT service (see next). | |||
3.5.3. Mechanism to register interest in the disposition of a PINT service, | 3.5.3. Mechanism to register interest in the disposition of a PINT | |||
and to receive indications on that disposition | service, and to receive indications on that disposition | |||
It can be very useful to find out whether or not a requested service has | It can be very useful to find out whether or not a requested service has | |||
completed, and if so whether or not it was successful. This is especially | completed, and if so whether or not it was successful. This is | |||
true for PINT service, where the person requesting the service is not | especially true for PINT service, where the person requesting the | |||
(necessarily) a party to it, and so may not have an easy way of finding out | service is not (necessarily) a party to it, and so may not have an easy | |||
the disposition of that service. Equally, it may be useful to indicate when | way of finding out the disposition of that service. Equally, it may be | |||
the service has changed state, for example when the service call has | useful to indicate when the service has changed state, for example when | |||
started. | the service call has started. | |||
Arranging a flexible system to provide extensive monitoring and control | Arranging a flexible system to provide extensive monitoring and control | |||
during a service is non-trivial (see section 6.4 for some issues); PINT 1.0 | during a service is non-trivial (see section 6.4 for some issues); PINT | |||
uses a simple scheme that should nevertheless provide useful information. It | 1.0 uses a simple scheme that should nevertheless provide useful | |||
is possible to expand the scheme in a "backwards compatible" manner, so if | information. It is possible to expand the scheme in a "backwards | |||
required it can be enhanced at a later date. Such enhancement would be | compatible" manner, so if required it can be enhanced at a later date. | |||
expected to be the subject of a separate document. | Such enhancement would be expected to be the subject of a separate | |||
document. | ||||
The PINT 1.0 status registration and indication scheme uses three new | The PINT 1.0 status registration and indication scheme uses three new | |||
methods; SUBSCRIBE, UNSUBSCRIBE, and NOTIFY. These are used to allow a PINT | methods; SUBSCRIBE, UNSUBSCRIBE, and NOTIFY. These are used to allow a | |||
Requesting entity to register an interest in (or "subscribe" to) the status | PINT Requesting entity to register an interest in (or "subscribe" to) | |||
of a service request, to indicate that this monitoring session is over, | the status of a service request, to indicate that a prior interest has | |||
and for the gateway to return service indications. All of these messages | lapsed (i.e "unsubscribe" from the status), and for the gateway to | |||
follow the same procedure as used for all the SIP requests other than | return service indications. All of these messages follow the same | |||
INVITE; the recipient MUST acknowledge the request with a final response | procedure as used for all the SIP requests other than INVITE; the | |||
message, otherwise the request will be repeated. | recipient MUST acknowledge the request with a final response message, | |||
otherwise the request will be repeated. | ||||
3.5.3.1. Opening a monitoring session with a SUBSCRIBE request | 3.5.3.1. Opening a monitoring session with a SUBSCRIBE request | |||
The SUBSCRIBE request indicates that a user wishes to receive information | ||||
about the status of a session. The request identifies the session of | ||||
interest normally by including the original session description along | ||||
with the request. Where the subscription is being made by the user who | ||||
initiated the original service request, the Call-ID may be used as it | ||||
will be known to the receiver to refer to a previously established | ||||
session. (When the request comes from a user other than the original | ||||
requesting user, the request constitutes a new SIP call leg, so the | ||||
Call-ID should not be used; instead the origin-field of the session | ||||
description enclosed within the original service request must be used). | ||||
The request MUST NOT include whatever content was present in the original | ||||
request other than the session description, and a server MUST ignore | ||||
whatever content is included within a SUBSCRIBE request with the sole | ||||
exception of the enclosed session description. | ||||
The request MAY contain a "Contact:" header, specifying the PINT User Agent | When a SUBSCRIBE request is sent to a PINT Server, it indicates that a | |||
Server to which such information should be sent. In addition, it SHOULD | user wishes to receive information about the status of a service | |||
contain an Expires: header, which indicates for how long the PINT Requestor | session. The request identifies the session of interest by including the | |||
wishes to receive notification of the session status. See section 5.1.4. | original session description along with the request, using the SDP | |||
global-session-id that forms part of the origin-field to identify the | ||||
service session uniquely. | ||||
The SUBSCRIBE request (like any other SIP request about an ongoing | ||||
session) is sent to the same server as was sent the original INVITE, | ||||
or to a server which was specified in the Contact: field within a | ||||
subsequent response (this might well be the PINT gateway for the | ||||
session). | ||||
Whilst there are situations in which re-use of the Call-ID used in the | ||||
original INVITE that initiated the session of interest is possible, | ||||
there are other situations in which it is not. In detail, where the | ||||
subscription is being made by the user who initiated the original | ||||
service request, the Call-ID may be used as it will be known to the | ||||
receiver to refer to a previously established session. However, when the | ||||
request comes from a user other than the original requesting user, the | ||||
SUBSCRIBE request constitutes a new SIP call leg, so the Call-ID SHOULD | ||||
NOT be used; the only common identifier is the origin-field of the | ||||
session description enclosed within the original service request, and so | ||||
this MUST be used. | ||||
Rather than have two different methods of identifying the "session of | ||||
interest" the choice is to use the origin-field of the SDP sub-part | ||||
included both in the original INVITE and in this SUBSCRIBE request. | ||||
Note that the request MUST NOT include any sub-parts other than the | ||||
session description, even if these others were present in the original | ||||
INVITE request. A server MUST ignore whatever sub-parts are included | ||||
within a SUBSCRIBE request with the sole exception of the enclosed | ||||
session description. | ||||
The request MAY contain a "Contact:" header, specifying the PINT User | ||||
Agent Server to which such information should be sent. | ||||
In addition, it SHOULD contain an Expires: header, which indicates for | ||||
how long the PINT Requestor wishes to receive notification of the | ||||
session status. We refer to the period of time before the expiration of | ||||
the SUBSCRIBE request as the "subscription period". See section 5.1.4. | ||||
for security considerations, particularly privacy implications. | for security considerations, particularly privacy implications. | |||
A value of 0 within the Expires: header indicates a desire to receive one | A value of 0 within the Expires: header indicates a desire to receive | |||
single immediate response (i.e. the request expires immediately). We refer | one single immediate response (i.e. the request expires immediately). It | |||
to the period of time before the expiration of the SUBSCRIBE request as the | is possible for a sequence of monitoring sessions to be opened, exist, | |||
"subscription period". | and complete, all relating to the same service session. | |||
A successful response to the SUBSCRIBE request includes the session | A successful response to the SUBSCRIBE request includes the session | |||
description, according to the Gateway. Normally this will be identical to | description, according to the Gateway. Normally this will be identical | |||
the last cached response that the Gateway returned to any request concerning | to the last cached response that the Gateway returned to any request | |||
the same SDP global session id (see [2], section 6, o= field). The t= line | concerning the same SDP global session id (see [2], section 6, o= | |||
may be altered to indicate the actual start or stop time, however. The | field). The t= line may be altered to indicate the actual start or stop | |||
Gateway might add an i= line to the session description to indicate such | time, however. The Gateway might add an i= line to the session | |||
information as how many fax pages were sent. The Gateway SHOULD include an | description to indicate such information as how many fax pages were | |||
Expires: header indicating how long it is willing to maintain the monitoring | sent. The Gateway SHOULD include an Expires: header indicating how long | |||
session. If this is unacceptable to the PINT Requestor, then it can close | it is willing to maintain the monitoring session. If this is | |||
the session by sending an immediate BYE (see 3.5.3.3). | unacceptable to the PINT Requestor, then it can close the session by | |||
sending an immediate UNSUBSCRIBE message (see 3.5.3.3). | ||||
In principle, a user might send a SUBSCRIBE request after the telephone | In principle, a user might send a SUBSCRIBE request after the telephone | |||
network service has completed. This allows, for example, checking up "the | network service has completed. This allows, for example, checking up | |||
morning after" to see if the fax was successfully transmitted. However, a | "the morning after" to see if the fax was successfully transmitted. | |||
PINT gateway is only required to keep state about a call for as long as it | However, a PINT gateway is only required to keep state about a call for | |||
indicated previously in a Expires: header within the response to the | as long as it indicated previously in an Expires: header sent within the | |||
original INVITE message that triggered the service session, within the | response to the original INVITE message that triggered the service | |||
response to the SUBSCRIBE message, within the response to the BYE | session, within the response to the SUBSCRIBE message, within the | |||
message, or within its own BYE message (but see section 3.5.8, point 3). | response to any UNSUBSCRIBE message, or within its own UNSUBSCRIBE | |||
message (but see section 3.5.8, point 3). | ||||
If the Server no longer has a record of the session to which a Requestor has | If the Server no longer has a record of the session to which a Requestor | |||
SUBSCRIBEd, it returns "606 Not Acceptable", along with the appropriate | has SUBSCRIBEd, it returns "606 Not Acceptable", along with the | |||
Warning: 307 header indicating that the SDP session ID is no longer valid. | appropriate Warning: 307 header indicating that the SDP session ID is no | |||
This means that a requesting Client that knows that it will want information | longer valid. This means that a requesting Client that knows that it | |||
about the status of a session after the session terminates SHOULD send a | will want information about the status of a session after the session | |||
SUBSCRIBE request before the session terminates. | terminates SHOULD send a SUBSCRIBE request before the session | |||
terminates. | ||||
3.5.3.2. Sending Status Indications with a NOTIFY request | 3.5.3.2. Sending Status Indications with a NOTIFY request | |||
During the subscription period, the Gateway may, from time to time, send a | ||||
spontaneous NOTIFY request to the entity indicated in the Contact: header of | ||||
the "opening" SUBSCRIBE request. Normally this will happen as a result of | ||||
any change in the status of the service session for which the Requestor has | ||||
subscribed. | ||||
The receiving user agent server MUST acknowledge this by returning a final | During the subscription period, the Gateway may, from time to time, send | |||
response (normally a "200 OK"). In this version of the PINT extensions, the | a spontaneous NOTIFY request to the entity indicated in the Contact: | |||
Gateway is not required to support redirects (3xx codes), and so may treat | header of the "opening" SUBSCRIBE request. Normally this will happen as | |||
them as a failure. Thus, if the response code class is above 2xx then this | a result of any change in the status of the service session for which | |||
may be treated by the Gateway as a failure of the monitoring session, and in | the Requestor has subscribed. | |||
that situation it will immediately attempt to close the session (see next). | ||||
The NOTIFY request contains the modified session description. For example, | The receiving user agent server MUST acknowledge this by returning a | |||
the Gateway may be able to indicate a more accurate start or stop time. | final response (normally a "200 OK"). In this version of the PINT | |||
extensions, the Gateway is not required to support redirects (3xx | ||||
codes), and so may treat them as a failure. | ||||
The Gateway may include a Warning: header to describe some problem with the | Thus, if the response code class is above 2xx then this may be treated | |||
invocation of the service, and may indicate within an i= line some | by the Gateway as a failure of the monitoring session, and in that | |||
situation it will immediately attempt to close the session (see next). | ||||
The NOTIFY request contains the modified session description. For | ||||
example, the Gateway may be able to indicate a more accurate start or | ||||
stop time. | ||||
The Gateway may include a Warning: header to describe some problem with | ||||
the invocation of the service, and may indicate within an i= line some | ||||
information about the telephone network session itself. | information about the telephone network session itself. | |||
Example: | Example: | |||
NOTIFY sip:petrack@pager.com SIP/2.0 | NOTIFY sip:petrack@pager.com SIP/2.0 | |||
To: sip:petrack@pager.com | To: sip:petrack@pager.com | |||
From: sip:R2F.pint.com@service.com | From: sip:R2F.pint.com@service.com | |||
Call-ID: 19971205T234505.56.78@pager.com | Call-ID: 19971205T234505.56.78@pager.com | |||
CSeq: 4711 SUBSCRIBE | CSeq: 4711 SUBSCRIBE | |||
Warning: xxx fax aborted, will try for the next hour. | Warning: xxx fax aborted, will try for the next hour. | |||
Content-Type:application/sdp | Content-Type:application/sdp | |||
c=... | c=... | |||
i=3 pages of 5 sent | i=3 pages of 5 sent | |||
t=... | t=... | |||
3.5.3.3. Closing a monitoring session with an UNSUBSCRIBE request | 3.5.3.3. Closing a monitoring session with an UNSUBSCRIBE request | |||
At some point, either the Client's representative User Agent Server or the | ||||
Gateway may decide to terminate the monitoring session. This is achieved | At some point, either the Client's representative User Agent Server or | |||
by sending an UNSUBSCRIBE request to the correspondent server. Such a | the Gateway may decide to terminate the monitoring session. This is | |||
request indicates that the sender intends to close the monitoring session | achieved by sending an UNSUBSCRIBE request to the correspondent server. | |||
immediately, and, on receipt of the final response from the receiving | Such a request indicates that the sender intends to close the monitoring | |||
server, the session is deemed over. | session immediately, and, on receipt of the final response from the | |||
receiving server, the session is deemed over. | ||||
Note that unlike the SUBSCRIBE request, which is never sent by a PINT | ||||
gateway, an UNSUBSCRIBE request can be sent by a PINT gateway to the | ||||
User Agent Server to indicate that the monitoring session is closed. | ||||
(This is analogous to the fact that a gateway never sends an INVITE, | ||||
although it can send a BYE to indicate that a telephone call has ended.) | ||||
If the Gateway initiates closure of the monitoring session by sending an | If the Gateway initiates closure of the monitoring session by sending an | |||
UNSUBSCRIBE message, it SHOULD include an "Expires:" header showing for | UNSUBSCRIBE message, it SHOULD include an "Expires:" header showing for | |||
how much longer after this monitoring session is closed it is willing to | how much longer after this monitoring session is closed it is willing to | |||
store information on the service session. This acts as a minimum time | store information on the service session. This acts as a minimum time | |||
within which the Client can send a new SUBSCRIBE message to open another | within which the Client can send a new SUBSCRIBE message to open another | |||
monitoring session; after the time indicated in the Expires: header the | monitoring session; after the time indicated in the Expires: header the | |||
Gateway is free to dispose of any record of the service session, so that | Gateway is free to dispose of any record of the service session, so that | |||
subsequent SUBSCRIBE requests can be rejected with a "606" response. | subsequent SUBSCRIBE requests can be rejected with a "606" response. | |||
If the subscription period specified by the Client has expired, then the | If the subscription period specified by the Client has expired, then the | |||
Gateway may send an immediate UNSUBSCRIBE request to the Client's | Gateway may send an immediate UNSUBSCRIBE request to the Client's | |||
representative User Agent Server. This ensures that the monitoring session | representative User Agent Server. This ensures that the monitoring | |||
always completes with a UNSUBSCRIBE/response exchange, and that the | session always completes with a UNSUBSCRIBE/response exchange, and that | |||
representative User Agent Server can avoid maintaining state in certain | the representative User Agent Server can avoid maintaining state in | |||
circumstances. | certain circumstances. | |||
3.5.3.4. Timing of SUBSCRIBE requests | 3.5.3.4. Timing of SUBSCRIBE requests | |||
As it relies on the Gateway having a copy of the INVITEd session | As it relies on the Gateway having a copy of the INVITEd session | |||
description, the SUBSCRIBE message is limited in when it can be issued. The | description, the SUBSCRIBE message is limited in when it can be issued. | |||
Gateway must have received the service request to which this monitoring | The Gateway must have received the service request to which this | |||
session is to be associated, which from the Client's perspective happens as | monitoring session is to be associated, which from the Client's | |||
soon as the Gateway has sent a 1xx response back to it. | perspective happens as soon as the Gateway has sent a 1xx response back | |||
to it. | ||||
However, once this has been done, there is no reason why the Client should | However, once this has been done, there is no reason why the Client | |||
not send a monitoring request. It does not have to wait for the final | should not send a monitoring request. It does not have to wait for the | |||
response from the Gateway, and it can certainly send the SUBSCRIBE request | final response from the Gateway, and it can certainly send the SUBSCRIBE | |||
before sending the ACK for the Service request final response. Beyond this | request before sending the ACK for the Service request final response. | |||
point, the Client is free to send a SUBSCRIBE request when it decides, | Beyond this point, the Client is free to send a SUBSCRIBE request when | |||
unless the Gateway's final response to the initial service request indicated | it decides, unless the Gateway's final response to the initial service | |||
a short Expires: time. | request indicated a short Expires: time. | |||
However, there are good reasons (see 6.4) why it may be appropriate to start | However, there are good reasons (see 6.4) why it may be appropriate to | |||
a monitoring session immediately before the service is confirmed by the PINT | start a monitoring session immediately before the service is confirmed | |||
Client sending an ACK. At this point the Gateway will have decided whether | by the PINT Client sending an ACK. At this point the Gateway will have | |||
or not it can handle the service request, but will not have passed the | decided whether or not it can handle the service request, but will not | |||
request on to the Executive System. It is therefore in a good position to | have passed the request on to the Executive System. It is therefore in a | |||
ask the Executive System to enable monitoring when it sends the service | good position to ask the Executive System to enable monitoring when it | |||
request onwards. In practical implementations, it is likely that more | sends the service request onwards. In practical implementations, it is | |||
information on transient service status will be available if this is | likely that more information on transient service status will be | |||
indicated as being important BEFORE or AS the service execution phase | available if this is indicated as being important BEFORE or AS the | |||
starts; once execution has begun the level of information that can be | service execution phase starts; once execution has begun the level of | |||
returned may be difficult to change. | information that can be returned may be difficult to change. | |||
Thus, whilst it is free to send a SUBSCRIBE request at any point after | Thus, whilst it is free to send a SUBSCRIBE request at any point after | |||
receiving an Interim response from the Gateway to its service request, it is | receiving an Interim response from the Gateway to its service request, | |||
recommended that the Client should send such a monitoring request | it is recommended that the Client should send such a monitoring request | |||
immediately prior to sending an ACK message confirming the service if it is | immediately prior to sending an ACK message confirming the service if it | |||
interested in transient service status messages. | is interested in transient service status messages. | |||
3.5.4. The "Require:" header for PINT | 3.5.4. The "Require:" header for PINT | |||
PINT clients use the Require: header to signal to the PINT server that a | PINT clients use the Require: header to signal to the PINT server that a | |||
certain PINT extension of SIP is required. PINT 1.0 defines two strings that | certain PINT extension of SIP is required. PINT 1.0 defines two strings | |||
can go into the Require header: | that can go into the Require header: | |||
org.ietf.sip.subscribe -- the server can fulfill SUBSCRIBE requests | org.ietf.sip.subscribe -- the server can fulfill SUBSCRIBE requests | |||
and associated methods (see section 3.5.3) | and associated methods (see section 3.5.3) | |||
org.ietf.sdp.require -- the PINT server (or the SDP parser associated | org.ietf.sdp.require -- the PINT server (or the SDP parser associated | |||
to it) understands the "require" attribute | to it) understands the "require" attribute | |||
defined in (section 3.4.4) | defined in (section 3.4.4) | |||
Example: | Example: | |||
Require:org.ietf.sip.subscribe,org.ietf.sdp.require | Require:org.ietf.sip.subscribe,org.ietf.sdp.require | |||
A client should only include a Require: header where it truly requires the | A client SHOULD only include a Require: header where it truly requires | |||
server to fail the request if the option is not supported. | the server to reject the request if the option is not supported. | |||
3.5.5. PINT URLs within PINT requests | 3.5.5. PINT URLs within PINT requests | |||
Normally the hostnames and domain names that appear in the PINT URLs are the | Normally the hostnames and domain names that appear in the PINT URLs are | |||
internal affair of each individual PINT system. A client uses the | the internal affair of each individual PINT system. A client uses the | |||
appropriate SDP payload to indicate the particular service it wishes to | appropriate SDP payload to indicate the particular service it wishes to | |||
invoke; it is not necessary to use a particular URL to identify the service. | invoke; it is not necessary to use a particular URL to identify the | |||
service. | ||||
A PINT URL is used in two different ways within PINT requests: within the | A PINT URL is used in two different ways within PINT requests: within | |||
Request-URI, and within the To: and From: headers. Use within the | the Request-URI, and within the To: and From: headers. Use within the | |||
Request-URI requires clarification in order to ensure smooth interworking | Request-URI requires clarification in order to ensure smooth | |||
with the Telephone Network serviced by the PINT infrastructure, and this | interworking with the Telephone Network serviced by the PINT | |||
is covered next. | infrastructure, and this is covered next. | |||
3.5.5.1. PINT URLS within Request-URIs | 3.5.5.1. PINT URLS within Request-URIs | |||
There are some occasions when it may be useful to indicate service | There are some occasions when it may be useful to indicate service | |||
information within the URL in a standardized way: | information within the URL in a standardized way: | |||
a. it may not be possible to use SDP information to route the request if | a. it may not be possible to use SDP information to route the request | |||
it is encrypted; | if it is encrypted; | |||
b. it allows implementation that make use of I.N. "service indicators"; | b. it allows implementation that make use of I.N. "service | |||
c. It enables multiple competing PINT gateways to REGISTER with a single | indicators"; | |||
"broker" server (proxy or redirect) (see section 6.3) | c. It enables multiple competing PINT gateways to REGISTER with a | |||
single "broker" server (proxy or redirect) (see section 6.3) | ||||
For these reasons, the following conventions for URLs are offered for use | For these reasons, the following conventions for URLs are offered for | |||
in PINT requests: | use in PINT requests: | |||
1. The user portion of a sip URL indicates the service to be requested. At | 1. The user portion of a sip URL indicates the service to be requested. | |||
present the following services are defined: | At present the following services are defined: | |||
R2C (for Request-to-Call) | R2C (for Request-to-Call) | |||
R2F (for Request-to-Fax) | R2F (for Request-to-Fax) | |||
R2HC (for Request-to-Hear-Content) | R2HC (for Request-to-Hear-Content) | |||
The user portions "R2C", "R2F", and "R2HC" are reserved for the PINT | The user portions "R2C", "R2F", and "R2HC" are reserved for the PINT | |||
milestone services. Other user portions MUST be used in case the requested | milestone services. Other user portions MUST be used in case the | |||
service is not one of the Milestone services. See section 6.2 for some | requested service is not one of the Milestone services. See section 6.2 | |||
related considerations concerning registrations by competing PINT systems to | for some related considerations concerning registrations by competing | |||
a single PINT proxy server acting as a service broker. | PINT systems to a single PINT proxy server acting as a service broker. | |||
2. The host portion of a sip URL contains the domain name of the PINT | 2. The host portion of a sip URL contains the domain name of the PINT | |||
service provider. | service provider. | |||
3. A new url-parameter is defined to be "tsp" (for "telephone service | 3. A new url-parameter is defined to be "tsp" (for "telephone service | |||
provider"). This can be used to indicate the actual telephone network | provider"). This can be used to indicate the actual telephone network | |||
provider to be used to fulfil the PINT request. | provider to be used to fulfil the PINT request. | |||
Thus, for example:- | Thus, for example:- | |||
INVITE sip:R2C@pint.pintservice.com SIP/2.0 | INVITE sip:R2C@pint.pintservice.com SIP/2.0 | |||
skipping to change at page 27, line 40 | skipping to change at page 29, line 55 | |||
2. The host portion of a sip URL contains the domain name of the PINT | 2. The host portion of a sip URL contains the domain name of the PINT | |||
service provider. | service provider. | |||
3. A new url-parameter is defined to be "tsp" (for "telephone service | 3. A new url-parameter is defined to be "tsp" (for "telephone service | |||
provider"). This can be used to indicate the actual telephone network | provider"). This can be used to indicate the actual telephone network | |||
provider to be used to fulfil the PINT request. | provider to be used to fulfil the PINT request. | |||
Thus, for example:- | Thus, for example:- | |||
INVITE sip:R2C@pint.pintservice.com SIP/2.0 | INVITE sip:R2C@pint.pintservice.com SIP/2.0 | |||
INVITE sip:R2F@pint.pintservice.com;tsp=telco.com SIP/2.0 | INVITE sip:R2F@pint.pintservice.com;tsp=telco.com SIP/2.0 | |||
INVITE sip:R2HC@pint.mycom.com;tsp=pbx23.mycom.com SIP/2.0 | INVITE sip:R2HC@pint.mycom.com;tsp=pbx23.mycom.com SIP/2.0 | |||
INVITE sip:13@pint.telco.com SIP/2.0 | INVITE sip:13@pint.telco.com SIP/2.0 | |||
3.5.6. Telephony Network Parameters within PINT URLs | 3.5.6. Telephony Network Parameters within PINT URLs | |||
Any legal SIP URL can appear as a PINT URL within the Request-URI or To: | Any legal SIP URL can appear as a PINT URL within the Request-URI or To: | |||
header of a PINT request. But if the address is a telephone address, we | header of a PINT request. But if the address is a telephone address, we | |||
indicated in section 3.4.3 that it may be necessary to include more | indicated in section 3.4.3 that it may be necessary to include more | |||
information in order correctly to identify the remote telephone terminal or | information in order correctly to identify the remote telephone terminal | |||
service. PINT clients MAY include these attribute tags within PINT URLs if | or service. PINT clients MAY include these attribute tags within PINT | |||
they are necessary or a useful complement to the telephone number within the | URLs if they are necessary or a useful complement to the telephone | |||
SIP URL. These attribute tags MUST be included as URL parameters as defined | number within the SIP URL. These attribute tags MUST be included as URL | |||
in [1] (i.e. in the semi-colon separated manner). | parameters as defined in [1] (i.e. in the semi-colon separated manner). | |||
The following is an example of a PINT URL containing extra attribute tags: | The following is an example of a PINT URL containing extra attribute | |||
tags: | ||||
sip:+9725228808@pint.br.com;user=phone;require=Q763-plan;a=Q763-plan:4 | sip:+9725228808@pint.br.com;user=phone;require=Q763-plan;a=Q763-plan:4 | |||
As we noted in section 3.4.3, these extra attribute parameters will not | As we noted in section 3.4.3, these extra attribute parameters will not | |||
normally be needed within a URL, because there is a great deal of context | normally be needed within a URL, because there is a great deal of | |||
available to the help the server interpret the phone number correctly. In | context available to the help the server interpret the phone number | |||
particular, there is the SIP URL within the To: header, and there is also | correctly. In particular, there is the SIP URL within the To: header, | |||
the Request-URI. In most cases this provides sufficient information for the | and there is also the Request-URI. In most cases this provides | |||
telephone network. | sufficient information for the telephone network. | |||
The SDP attributes defined in section 3 above will normally only be used | The SDP attributes defined in section 3 above will normally only be used | |||
when they are needed to supply necessary context to identify a telephone | when they are needed to supply necessary context to identify a telephone | |||
terminal. | terminal. | |||
3.5.7. REGISTER requests within PINT | 3.5.7. REGISTER requests within PINT | |||
A PINT gateway is a SIP user agent server. A User Agent Server uses the | A PINT gateway is a SIP user agent server. A User Agent Server uses the | |||
REGISTER request to tell a proxy or redirect server that it is available to | REGISTER request to tell a proxy or redirect server that it is available | |||
"receive calls" (i.e. to service requests). Thus a PINT Gateway registers | to "receive calls" (i.e. to service requests). Thus a PINT Gateway | |||
with a proxy or redirect server the service that is accessible via itself, | registers with a proxy or redirect server the service that is accessible | |||
whilst in SIP, a user is registering his/her presence at a particular SIP | via itself, whilst in SIP, a user is registering his/her presence at a | |||
Server. | particular SIP Server. | |||
There may be competing PINT servers that can offer the same PINT service | There may be competing PINT servers that can offer the same PINT service | |||
trying to register at a single PINT server. The PINT server might act as a | trying to register at a single PINT server. The PINT server might act as | |||
"broker" among the various PINT gateways that can fulfil a request. A | a "broker" among the various PINT gateways that can fulfil a request. A | |||
format for PINT URLs was specified in section 3.5.5 that enables independent | format for PINT URLs was specified in section 3.5.5 that enables | |||
PINT systems to REGISTER an offer to provide the same service. The registrar | independent PINT systems to REGISTER an offer to provide the same | |||
can apply its own mechanisms and policies to decide how to respond to | service. The registrar can apply its own mechanisms and policies to | |||
INVITEs from clients seeking service (See section 6.3 for some possible | decide how to respond to INVITEs from clients seeking service (See | |||
deployment options). There is no change between SIP and PINT REGISTER | section 6.3 for some possible deployment options). There is no change | |||
semantics or syntax. | between SIP and PINT REGISTER semantics or syntax. | |||
Of course, the information in the PINT URLs within the REGISTER request may | Of course, the information in the PINT URLs within the REGISTER request | |||
not be sufficient to completely define the service that a gateway can offer. | may not be sufficient to completely define the service that a gateway | |||
The use of SIP and SDP within PINT REGISTER requests to enable a gateway to | can offer. The use of SIP and SDP within PINT REGISTER requests to | |||
specify in more detail the services it can offer is the subject of future | enable a gateway to specify in more detail the services it can offer is | |||
study. | the subject of future study. | |||
3.5.8. BYE Requests in PINT | 3.5.8. BYE Requests in PINT | |||
The semantics of BYE requests within PINT requires some extra precision. One | The semantics of BYE requests within PINT requires some extra precision. | |||
issue concerns conferences that "cannot be left", and the other concerns | One issue concerns conferences that "cannot be left", and the other | |||
keeping call state after the BYE. | concerns keeping call state after the BYE. | |||
The BYE request [1] is normally used to indicate that the originating entity | The BYE request [1] is normally used to indicate that the originating | |||
no longer wishes to be involved in the specified call. The request | entity no longer wishes to be involved in the specified call. The | |||
terminates the call and the media session. Applying this model to PINT, if a | request terminates the call and the media session. Applying this model | |||
PINT client makes a request that results in invocation of a telephone call | to PINT, if a PINT client makes a request that results in invocation of | |||
from A to B, a BYE request from the client, if accepted, should result in a | a telephone call from A to B, a BYE request from the client, if | |||
termination of the phone call. | accepted, should result in a termination of the phone call. | |||
A question arises when the telephone call might not have even started at the | One might expect this to be the case if the telephone call has not | |||
time when the BYE request is received. For example, if a request to fax is | started when the BYE request is received. For example, if a request to | |||
sent with a t= line indicating that the fax is to be sent tomorrow at 4 AM, | fax is sent with a t= line indicating that the fax is to be sent | |||
the requestor might wish to cancel the request before the specified time. | tomorrow at 4 AM, the requestor might wish to cancel the request before | |||
the specified time. | ||||
Even if the call has yet to start, it may not be possible to terminate the | However, even if the call has yet to start, it may not be possible to | |||
media session on the telephone system side. For example, the fax call may | terminate the media session on the telephone system side. For example, | |||
be in progress when the BYE arrives, and perhaps it is just not possible to | the fax call may be in progress when the BYE arrives, and perhaps it is | |||
cancel the fax in session. Another possibility is that the entire | just not possible to cancel the fax in session. Another possibility is | |||
telephone-side service might be completed before the BYE is received. In the | that the entire telephone-side service might be completed before the BYE | |||
above Request-to-Fax example, the BYE might be sent the following morning, | is received. In the above Request-to-Fax example, the BYE might be sent | |||
and the entire fax has been sent before the BYE was received. It is too late | the following morning, and the entire fax has been sent before the BYE | |||
to send the BYE. | was received. It is too late to send the BYE. | |||
In the case where the telephone network cannot terminate the call, the | In the case where the telephone network cannot terminate the call, the | |||
server MUST return a "606 Not Acceptable" response to the BYE, along with a | server MUST return a "606 Not Acceptable" response to the BYE, along | |||
session description that indicates the telephone network session that is | with a session description that indicates the telephone network session | |||
causing the problem. | that is causing the problem. | |||
Thus, in PINT, a "Not Acceptable" response can be returned to INVITE or | Thus, in PINT, a "Not Acceptable" response MAY be returned both to | |||
BYE requests. It indicates that some aspect of the session description makes | INVITE and BYE requests. It indicates that some aspect of the session | |||
the request unacceptable. | description makes the request unacceptable. | |||
By allowing a server to return a "Not Acceptable" response to BYE requests, | By allowing a server to return a "Not Acceptable" response to BYE | |||
we are not changing its semantics, just enlarging its use. | requests, we are not changing its semantics, just enlarging its use. | |||
A combination of Warning: headers and i= lines within the session | A combination of Warning: headers and i= lines within the session | |||
description can be used to indicate the precise nature of the problem. | description can be used to indicate the precise nature of the problem. | |||
Example: | Example: | |||
SIP/2.0 606 Not Acceptable | SIP/2.0 606 Not Acceptable | |||
From: ... | From: ... | |||
To: ....... | To: ....... | |||
..... | ..... | |||
Warning: 399 pint.mycom.com Fax in progress, service cannot be aborted | Warning: 399 pint.mycom.com Fax in progress, service cannot be | |||
aborted | ||||
Content-Type: application/sdp | Content-Type: application/sdp | |||
Content-Length: ... | Content-Length: ... | |||
v=0 | v=0 | |||
... | ... | |||
... | ... | |||
i=3 of 5 pages sent OK | i=3 of 5 pages sent OK | |||
c=TN RFC2543 +12014064090 | c=TN RFC2543 +12014064090 | |||
m=image 1 fax tif | m=image 1 fax tif | |||
a=fmtp:tif uri:http://tifsRus.com/yyyyyy.tif | a=fmtp:tif uri:http://tifsRus.com/yyyyyy.tif | |||
Note that the server may return an updated session description within a | Note that the server might return an updated session description within | |||
successful response to a BYE as well. This can be used, for example, to | a successful response to a BYE as well. This can be used, for example, | |||
indicate the actual start times and stop times of the telephone session, or | to indicate the actual start times and stop times of the telephone | |||
how many pages were sent in the fax transmission. | session, or how many pages were sent in the fax transmission. | |||
The second issue concerns how long must a server keep call state after | The second issue concerns how long must a server keep call state after | |||
receiving a BYE. A question arises because other clients might still wish to | receiving a BYE. A question arises because other clients might still | |||
send queries about the telephone network session that was the subject of | wish to send queries about the telephone network session that was the | |||
the PINT transaction. Ordinary SIP semantics have three important | subject of the PINT transaction. Ordinary SIP semantics have three | |||
implications for this situation: | important implications for this situation: | |||
1. A BYE indicates that the requesting client will clear out all call state | 1. A BYE indicates that the requesting client will clear out all call | |||
as soon as it receives a successful response. A client SHOULD NOT send a | state as soon as it receives a successful response. A client SHOULD NOT | |||
SUBSCRIBE request after it has sent a BYE. | send a SUBSCRIBE request after it has sent a BYE. | |||
2. A server may return an Expires: header within a successful response to a | 2. A server may return an Expires: header within a successful response | |||
BYE request. This indicates for how long the server will retain session | to a BYE request. This indicates for how long the server will retain | |||
state about the telephone network session. At any point during this time, a | session state about the telephone network session. At any point during | |||
client may send a SUBSCRIBE request to the server to learn about the session | this time, a client may send a SUBSCRIBE request to the server to learn | |||
state. | about the session state (although as explained in the previous paragraph, | |||
a client that has sent a BYE will not normally send a SUBSCRIBE). | ||||
3. When engaged in a SUBSCRIBE/NOTIFY monitoring session, PINT servers that | 3. When engaged in a SUBSCRIBE/NOTIFY monitoring session, PINT servers | |||
send BYE to a URL listed in the Contact: header of a client request SHOULD | that send UNSUBSCRIBE to a URL listed in the Contact: header of a client | |||
not clear session state until after the successful response to the BYE is | request SHOULD not clear session state until after the successful | |||
received. For example, it may be that the requesting client host is turned | response to the UNSUBSCRIBE message is received. For example, it may be | |||
off when the telephone service is executed (and is therefore not available | that the requesting client host is turned off (or in a low power mode) | |||
at the location previously specified in the Contact: attribute) to receive | when the telephone service is executed (and is therefore not available | |||
the PINT server's BYE. Of course, it is possible that the BYE request will | at the location previously specified in the Contact: attribute) to | |||
simply time out. | receive the PINT server's UNSUBSCRIBE. Of course, it is possible that | |||
the UNSUBSCRIBE request will simply time out. | ||||
4. Examples of PINT Requests and Responses | 4. Examples of PINT Requests and Responses | |||
4.1. A request to a call centre from an anonymous user to receive a phone | 4.1. A request to a call center from an anonymous user to receive a | |||
call. | phone call. | |||
C->S: INVITE sip:R2C@pint.mailorder.com SIP/2.0 | C->S: INVITE sip:R2C@pint.mailorder.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
From: sip:anon-1827631872@chinet.net | From: sip:anon-1827631872@chinet.net | |||
To: sip:+1-201-456-7890@iron.org;user=phone | To: sip:+1-201-456-7890@iron.org;user=phone | |||
Call-ID: 19971205T234505.56.78@pager.com | Call-ID: 19971205T234505.56.78@pager.com | |||
CSeq: 4711 INVITE | CSeq: 4711 INVITE | |||
Subject: Sale on Ironing Boards | Subject: Sale on Ironing Boards | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 174 | Content-Length: 174 | |||
skipping to change at page 30, line 38 | skipping to change at page 33, line 4 | |||
C->S: INVITE sip:R2C@pint.mailorder.com SIP/2.0 | C->S: INVITE sip:R2C@pint.mailorder.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
From: sip:anon-1827631872@chinet.net | From: sip:anon-1827631872@chinet.net | |||
To: sip:+1-201-456-7890@iron.org;user=phone | To: sip:+1-201-456-7890@iron.org;user=phone | |||
Call-ID: 19971205T234505.56.78@pager.com | Call-ID: 19971205T234505.56.78@pager.com | |||
CSeq: 4711 INVITE | CSeq: 4711 INVITE | |||
Subject: Sale on Ironing Boards | Subject: Sale on Ironing Boards | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 174 | Content-Length: 174 | |||
v=0 | v=0 | |||
o=- 2353687637 2353687637 IN IP4 128.3.4.5 | o=- 2353687637 2353687637 IN IP4 128.3.4.5 | |||
s=R2C | s=R2C | |||
i=Ironing Board Promotion | i=Ironing Board Promotion | |||
e=anon-1827631872@chinet.net | e=anon-1827631872@chinet.net | |||
t=2353687637 0 | t=2353687637 0 | |||
m=audio 1 voice - | m=audio 1 voice - | |||
c=TN RFC2543 +1-201-406-4090 | c=TN RFC2543 +1-201-406-4090 | |||
In this example, the context that is required to interpret the To: address | In this example, the context that is required to interpret the To: | |||
as a telephone number is not given explicitly; it is implicitly known to the | address as a telephone number is not given explicitly; it is implicitly | |||
R2C@pint.mailorder.com server. But the telephone of the person who wishes to | known to the R2C@pint.mailorder.com server. But the telephone of the | |||
receive the call is explicitly identified as an internationally significant | person who wishes to receive the call is explicitly identified as an | |||
E.164 number that falls within the North American numbering plan | internationally significant E.164 number that falls within the North | |||
(because of the "+1" within the c= line). | American numbering plan (because of the "+1" within the c= line). | |||
4.2. A request from a non anonymous customer (John Jones) to receive a phone | 4.2. A request from a non anonymous customer (John Jones) to receive a | |||
call from a particular sales agent (Mary James) concerning the defective | phone call from a particular sales agent (Mary James) concerning the | |||
ironing board that was purchased | defective ironing board that was purchased | |||
C->S: INVITE sip:marketing@pint.mailorder.com SIP/2.0 | C->S: INVITE sip:marketing@pint.mailorder.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
From: sip:john.jones.3@chinet.net | From: sip:john.jones.3@chinet.net | |||
To: sip:mary.james@mailorder.com | To: sip:mary.james@mailorder.com | |||
Call-ID: 19971205T234505.56.78@pager.com | Call-ID: 19971205T234505.56.78@pager.com | |||
CSeq: 4712 INVITE | CSeq: 4712 INVITE | |||
Subject: Defective Ironing Board - want refund | Subject: Defective Ironing Board - want refund | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 150 | Content-Length: 150 | |||
v=0 | v=0 | |||
o=- 2353687640 2353687640 IN IP4 128.3.4.5 | o=- 2353687640 2353687640 IN IP4 128.3.4.5 | |||
s=marketing | s=marketing | |||
e=john.jones.3@chinet.net | e=john.jones.3@chinet.net | |||
c= TN RFC2543 +1-201-406-4090 | c= TN RFC2543 +1-201-406-4090 | |||
t=2353687640 0 | t=2353687640 0 | |||
m=audio 1 voice - | m=audio 1 voice - | |||
The To: line might include the Mary James's phone number instead of a | The To: line might include the Mary James's phone number instead of a | |||
email-like address. An implementation that cannot accept email-like URLs in | email-like address. An implementation that cannot accept email-like URLs | |||
the "To:" header must fail the request with a 606 Not Acceptable. | in the "To:" header must decline the request with a 606 Not Acceptable. | |||
Note that the sending PINT client "knows" that the PINT Gateway contacted | Note that the sending PINT client "knows" that the PINT Gateway | |||
with the "marketing@pint.mailorder.com" Request-URI is capable of processing | contacted with the "marketing@pint.mailorder.com" Request-URI is capable | |||
the client request as expected. (see 3.5.5.1 for a discussion on this). | of processing the client request as expected. (see 3.5.5.1 for a | |||
discussion on this). | ||||
Note also that such a telephone call service could be implemented on the | Note also that such a telephone call service could be implemented on the | |||
phone side with different details. For example, it might be that first the | phone side with different details. For example, it might be that first | |||
agent's phone rings, and then the customer's phone rings, or it might be | the agent's phone rings, and then the customer's phone rings, or it | |||
that first the customer's phone rings and he hears silly music until the | might be that first the customer's phone rings and he hears silly music | |||
agent comes on line. If necessary, such service parameter details might be | until the agent comes on line. If necessary, such service parameter | |||
indicated in "a=" attribute lines within the session description. The | details might be indicated in "a=" attribute lines within the session | |||
specification of such attribute lines for service consistency is beyond the | description. The specification of such attribute lines for service | |||
scope of the PINT 1.0 specifications. | consistency is beyond the scope of the PINT 1.0 specifications. | |||
4.3. A request from the same user to get a fax back on how to assemble the | 4.3. A request from the same user to get a fax back on how to assemble | |||
Ironing Board | the Ironing Board | |||
C->S: INVITE sip:faxback@pint.mailorder.com SIP/2.0 | C->S: INVITE sip:faxback@pint.mailorder.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
From: sip:john.jones.3@chinet.net | From: sip:john.jones.3@chinet.net | |||
To: sip:1-800-3292225K@steam.edu;user=phone;phone-context=+1 | To: sip:1-800-3292225K@steam.edu;user=phone;phone-context=+1 | |||
Call-ID: 19971205T234505.66.79@chinet.net | Call-ID: 19971205T234505.66.79@chinet.net | |||
CSeq: 4713 INVITE | CSeq: 4713 INVITE | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 218 | Content-Length: 218 | |||
skipping to change at page 32, line 8 | skipping to change at page 34, line 29 | |||
s=faxback | s=faxback | |||
e=john.jones.3@chinet.net | e=john.jones.3@chinet.net | |||
t=2353687660 0 | t=2353687660 0 | |||
m=application 1 fax URI | m=application 1 fax URI | |||
c=TN RFC2543 1-201-406-4091 | c=TN RFC2543 1-201-406-4091 | |||
a=fmtp:URI uri:http://localstore/Products/IroningBoards/2344.html | a=fmtp:URI uri:http://localstore/Products/IroningBoards/2344.html | |||
In this example, the fax to be sent is stored on some local server | In this example, the fax to be sent is stored on some local server | |||
(localstore), whose name may be only resolvable, or that may only be | (localstore), whose name may be only resolvable, or that may only be | |||
reachable, from within the IP network on which the PINT server sits. The | reachable, from within the IP network on which the PINT server sits. The | |||
phone number to be dialled is a "local phone number" as well. There is no | phone number to be dialled is a "local phone number" as well. There is | |||
"phone-context" attribute, so the context (in this case, for which nation | no "phone-context" attribute, so the context (in this case, for which | |||
the number is "nationally significant") must be supplied by the | nation the number is "nationally significant") must be supplied by the | |||
faxback@pint.mailorder.com PINT server. | faxback@pint.mailorder.com PINT server. | |||
If the server that receives does not understand the number, it should fail | If the server that receives it does not understand the number, it SHOULD | |||
the request with and include a "Network Address Not Understood" warning. | decline the request and include a "Network Address Not Understood" warning. | |||
Note that no "require" attribute was used here, since it is very likely | Note that no "require" attribute was used here, since it is very likely | |||
that the request can be serviced even by a server that does not support | that the request can be serviced even by a server that does not support | |||
the "require" attribute. | the "require" attribute. | |||
4.4. A request from same user to have that same information read out over | 4.4. A request from same user to have that same information read out | |||
the phone | over the phone | |||
C->S: INVITE sip:faxback@pint.mailorder.com SIP/2.0 | C->S: INVITE sip:faxback@pint.mailorder.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
From: sip:john.jones.3@chinet.net | From: sip:john.jones.3@chinet.net | |||
To: sip:1-800-3292225@steam.edu;user=phone;phone-context=+1 | To: sip:1-800-3292225@steam.edu;user=phone;phone-context=+1 | |||
Call-ID: 19971205T234505.66.79@chinet.net | Call-ID: 19971205T234505.66.79@chinet.net | |||
CSeq: 4713 INVITE | CSeq: 4713 INVITE | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 220 | Content-Length: 220 | |||
v=0 | v=0 | |||
skipping to change at page 32, line 47 | skipping to change at page 35, line 13 | |||
a=fmtp:URI uri:http://localstore/Products/IroningBoards/2344.html | a=fmtp:URI uri:http://localstore/Products/IroningBoards/2344.html | |||
4.5. A request to send an included text page to a friend's pager. | 4.5. A request to send an included text page to a friend's pager. | |||
In this example, the text to be paged out is included in the request. | In this example, the text to be paged out is included in the request. | |||
C->S: INVITE sip:R2F@pint.pager.com SIP/2.0 | C->S: INVITE sip:R2F@pint.pager.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
From: sip:scott.petrack@chinet.net | From: sip:scott.petrack@chinet.net | |||
To: sip:R2F@pint.pager.com | To: sip:R2F@pint.pager.com | |||
Call-ID: 19974505.66.79@chinet.net | Call-ID: 19974505.66.79@chinet.net | |||
CSeq: 4714 INVITE | CSeq: 4714 INVITE | |||
Content-Type: multipart/mixed; boundary=--next | Content-Type: multipart/related; boundary=--next | |||
----next | ----next | |||
Content-Type: application/sdp | Content-Type: application/sdp | |||
Content-Length: 236 | Content-Length: 236 | |||
v=0 | v=0 | |||
o=- 2353687680 2353687680 IN IP4 128.3.4.5 | o=- 2353687680 2353687680 IN IP4 128.3.4.5 | |||
s=R2F | s=R2F | |||
e=scott.petrack@chinet.net | e=scott.petrack@chinet.net | |||
t=2353687680 0 | t=2353687680 0 | |||
m=text 1 pager plain | m=text 1 pager plain | |||
skipping to change at page 33, line 34 | skipping to change at page 36, line 5 | |||
v=0 | v=0 | |||
o=- 2353687700 2353687700 IN IP4 128.3.4.5 | o=- 2353687700 2353687700 IN IP4 128.3.4.5 | |||
s=faxserver | s=faxserver | |||
e=scott.petrack@chinet.net | e=scott.petrack@chinet.net | |||
t=2353687700 0 | t=2353687700 0 | |||
m=image 1 fax tif gif | m=image 1 fax tif gif | |||
c= TN RFC2543 +972-9-956-1867 | c= TN RFC2543 +972-9-956-1867 | |||
a=fmtp:tif uri:http://petrack/images/tif/picture1.tif | a=fmtp:tif uri:http://petrack/images/tif/picture1.tif | |||
a=fmtp:gif uri:http://petrack/images/gif/picture1.gif | a=fmtp:gif uri:http://petrack/images/gif/picture1.gif | |||
The image is available as tif or as gif. The tif is the preferred format. | The image is available as tif or as gif. The tif is the preferred | |||
Note that the http server where the pictures reside is local, and the PINT | format. Note that the http server where the pictures reside is local, | |||
server is also local (because it can resolve machine name "petrack") | and the PINT server is also local (because it can resolve machine name | |||
"petrack") | ||||
4.7. A request to read out over the phone two pieces of content in sequence. | 4.7. A request to read out over the phone two pieces of content in | |||
First some included text is read out by text-to-speech. Then some text that | sequence. | |||
is stored at some URI on the internet is read out. | First some included text is read out by text-to-speech. Then some text | |||
that is stored at some URI on the internet is read out. | ||||
C->S: INVITE sip:R2HC@pint.acme.com SIP/2.0 | C->S: INVITE sip:R2HC@pint.acme.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
From: sip:scott.petrack@chinet.net | From: sip:scott.petrack@chinet.net | |||
To: sip:R2HC@pint.acme.com | To: sip:R2HC@pint.acme.com | |||
Call-ID: 19974505.66.79@chinet.net | Call-ID: 19974505.66.79@chinet.net | |||
CSeq: 4716 INVITE | CSeq: 4716 INVITE | |||
Content-Type: multipart/mixed; boundary=next | Content-Type: multipart/related; boundary=next | |||
--next | --next | |||
Content-Type: application/sdp | Content-Type: application/sdp | |||
Content-Length: 316 | Content-Length: 316 | |||
v=0 | v=0 | |||
o=- 2353687720 2353687720 IN IP4 128.3.4.5 | o=- 2353687720 2353687720 IN IP4 128.3.4.5 | |||
s=R2HC | s=R2HC | |||
e=scott.petrack@chinet.net | e=scott.petrack@chinet.net | |||
c= TN RFC2543 +1-201-406-4091 | c= TN RFC2543 +1-201-406-4091 | |||
t=2353687720 0 | t=2353687720 0 | |||
m=text 1 voice plain | m=text 1 voice plain | |||
a=fmtp:plain spr:2@53655768 | a=fmtp:plain spr:2@53655768 | |||
m=text 1 voice plain | m=text 1 voice plain | |||
a=fmtp:plain uri:http://www.your.com/texts/stuff.doc | a=fmtp:plain uri:http://www.your.com/texts/stuff.doc | |||
--next | --next | |||
Content-Type: text/plain | Content-Type: text/plain | |||
Content-ID: 2@53655768 | Content-ID: 2@53655768 | |||
skipping to change at page 35, line 14 | skipping to change at page 37, line 42 | |||
4.10.Sending a set of information in response to an enquiry | 4.10.Sending a set of information in response to an enquiry | |||
INVITE sip:R2FB@pint.bt.co.uk SIP/2.0 | INVITE sip:R2FB@pint.bt.co.uk SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
To: sip:0345-12347-01@pint.bt.co.uk;user=phone;phone-context=+44 | To: sip:0345-12347-01@pint.bt.co.uk;user=phone;phone-context=+44 | |||
From: sip:colin.masterton@sales.hh.bt.co.uk | From: sip:colin.masterton@sales.hh.bt.co.uk | |||
Call-ID: 19981205T234505.56.78@sales.hh.bt.co.uk | Call-ID: 19981205T234505.56.78@sales.hh.bt.co.uk | |||
CSeq: 1147 INVITE | CSeq: 1147 INVITE | |||
Subject: Price Info, as requested | Subject: Price Info, as requested | |||
Content-Type: multipart/mixed; boundary=next | Content-Type: multipart/related; boundary=next | |||
--next | --next | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 325 | Content-Length: 325 | |||
v=0 | v=0 | |||
o=- 2353687780 2353687780 IN IP4 128.3.4.5 | o=- 2353687780 2353687780 IN IP4 128.3.4.5 | |||
s=R2FB | s=R2FB | |||
i=Your documents | i=Your documents | |||
e=colin.masterton@sales.hh.bt.co.uk | e=colin.masterton@sales.hh.bt.co.uk | |||
t=2353687780 0 | t=2353687780 0 | |||
skipping to change at page 35, line 29 | skipping to change at page 38, line 4 | |||
v=0 | v=0 | |||
o=- 2353687780 2353687780 IN IP4 128.3.4.5 | o=- 2353687780 2353687780 IN IP4 128.3.4.5 | |||
s=R2FB | s=R2FB | |||
i=Your documents | i=Your documents | |||
e=colin.masterton@sales.hh.bt.co.uk | e=colin.masterton@sales.hh.bt.co.uk | |||
t=2353687780 0 | t=2353687780 0 | |||
m=application 1 fax octet-stream | m=application 1 fax octet-stream | |||
c=TN RFC2543 +44-1794-8331010 | c=TN RFC2543 +44-1794-8331010 | |||
a=fmtp:octet-stream uri:http://www.bt.co.uk/imgs/pipr.gif opr: | a=fmtp:octet-stream uri:http://www.bt.co.uk/imgs/pipr.gif opr: | |||
spr:2@53655768 | spr:2@53655768 | |||
--next | --next | |||
Content-Type: text/plain | Content-Type: text/plain | |||
Content-ID: 2@53655768 | Content-ID: 2@53655768 | |||
Content-Length: 352 | Content-Length: 352 | |||
Dear Sir, | Dear Sir, | |||
Thank you for your enquiry. I have checked availability in your | Thank you for your enquiry. I have checked availability in your | |||
area, and we can provide service to your cottage. I enclose a quote | area, and we can provide service to your cottage. I enclose a | |||
for the costs of installation, together with the ongoing rental | quote for the costs of installation, together with the ongoing | |||
costs for the line. If you want to proceed with this, please quote | rental costs for the line. If you want to proceed with this, | |||
job reference isdn/hh/123.45.9901. | please quote job reference isdn/hh/123.45.9901. | |||
Yours Sincerely, | Yours Sincerely, | |||
Colin Masterton | Colin Masterton | |||
--next-- | --next-- | |||
Note that the "implicit" faxback content is given by an EMPTY opaque | Note that the "implicit" faxback content is given by an EMPTY opaque | |||
reference in the middle of the fmtp line in this example. | reference in the middle of the fmtp line in this example. | |||
4.11.Sportsline "headlines" message sent to your phone/pager/fax | 4.11.Sportsline "headlines" message sent to your phone/pager/fax | |||
(i) phone | (i) phone | |||
INVITE sip:R2FB@pint.wwos.skynet.com SIP/2.0 | INVITE sip:R2FB@pint.wwos.skynet.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
To: sip:1-900-123-456-7@wwos.skynet.com;user=phone;phone-context=+1 | To: | |||
sip:1-900-123-456-7@wwos.skynet.com;user=phone;phone-context=+1 | ||||
From: sip:fred.football.fan@skynet.com | From: sip:fred.football.fan@skynet.com | |||
Call-ID: 19971205T234505.56.78@chinet.net | Call-ID: 19971205T234505.56.78@chinet.net | |||
CSeq: 4721 INVITE | CSeq: 4721 INVITE | |||
Subject: Wonderful World Of Sports NFL Final Scores | Subject: Wonderful World Of Sports NFL Final Scores | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 220 | Content-Length: 220 | |||
v=0 | v=0 | |||
o=- 2353687800 2353687800 IN IP4 128.3.4.5 | o=- 2353687800 2353687800 IN IP4 128.3.4.5 | |||
s=R2FB | s=R2FB | |||
i=NFL Final Scores | i=NFL Final Scores | |||
e=fred.football.fan@skynet.com | e=fred.football.fan@skynet.com | |||
c=TN RFC2543 +44-1794-8331013 | c=TN RFC2543 +44-1794-8331013 | |||
t=2353687800 0 | t=2353687800 0 | |||
m=audio 1 voice x-pay | m=audio 1 voice x-pay | |||
a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | |||
skipping to change at page 36, line 17 | skipping to change at page 38, line 48 | |||
i=NFL Final Scores | i=NFL Final Scores | |||
e=fred.football.fan@skynet.com | e=fred.football.fan@skynet.com | |||
c=TN RFC2543 +44-1794-8331013 | c=TN RFC2543 +44-1794-8331013 | |||
t=2353687800 0 | t=2353687800 0 | |||
m=audio 1 voice x-pay | m=audio 1 voice x-pay | |||
a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | |||
(ii) fax | (ii) fax | |||
INVITE sip:R2FB@pint.wwos.skynet.com SIP/2.0 | INVITE sip:R2FB@pint.wwos.skynet.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
To: sip:1-900-123-456-7@wwos.skynet.com;user=phone;phone-context=+1 | To: sip:1-900-123-456-7@wwos.skynet.com;user=phone; | |||
phone-context=+1 | ||||
From: sip:fred.football.fan@skynet.com | From: sip:fred.football.fan@skynet.com | |||
Call-ID: 19971205T234505.56.78@chinet.net | Call-ID: 19971205T234505.56.78@chinet.net | |||
CSeq: 4722 INVITE | CSeq: 4722 INVITE | |||
Subject: Wonderful World Of Sports NFL Final Scores | Subject: Wonderful World Of Sports NFL Final Scores | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 217 | Content-Length: 217 | |||
v=0 | v=0 | |||
o=- 2353687820 2353687820 IN IP4 128.3.4.5 | o=- 2353687820 2353687820 IN IP4 128.3.4.5 | |||
s=R2FB | s=R2FB | |||
i=NFL Final Scores | i=NFL Final Scores | |||
e=fred.football.fan@skynet.com | e=fred.football.fan@skynet.com | |||
c=TN RFC2543 +44-1794-8331010 | c=TN RFC2543 +44-1794-8331010 | |||
t=2353687820 0 | t=2353687820 0 | |||
m=text 1 fax x-pay | m=text 1 fax x-pay | |||
a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | |||
skipping to change at page 36, line 38 | skipping to change at page 39, line 17 | |||
i=NFL Final Scores | i=NFL Final Scores | |||
e=fred.football.fan@skynet.com | e=fred.football.fan@skynet.com | |||
c=TN RFC2543 +44-1794-8331010 | c=TN RFC2543 +44-1794-8331010 | |||
t=2353687820 0 | t=2353687820 0 | |||
m=text 1 fax x-pay | m=text 1 fax x-pay | |||
a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | a=fmtp:x-pay opr:mci.com/md5:<crypto signature> | |||
(iii) pager | (iii) pager | |||
INVITE sip:R2FB@pint.wwos.skynet.com SIP/2.0 | INVITE sip:R2FB@pint.wwos.skynet.com SIP/2.0 | |||
Via: SIP/2.0/UDP 169.130.12.5 | Via: SIP/2.0/UDP 169.130.12.5 | |||
To: sip:1-900-123-456-7@wwos.skynet.com;user=phone;phone-context=+1 | To: sip:1-900-123-456-7@wwos.skynet.com;user=phone; | |||
phone-context=+1 | ||||
From: sip:fred.football.fan@skynet.com | From: sip:fred.football.fan@skynet.com | |||
Call-ID: 19971205T234505.56.78@chinet.net | Call-ID: 19971205T234505.56.78@chinet.net | |||
CSeq: 4723 INVITE | CSeq: 4723 INVITE | |||
Subject: Wonderful World Of Sports NFL Final Scores | Subject: Wonderful World Of Sports NFL Final Scores | |||
Content-type: application/sdp | Content-type: application/sdp | |||
Content-Length: 219 | Content-Length: 219 | |||
v=0 | v=0 | |||
o=- 2353687840 2353687840 IN IP4 128.3.4.5 | o=- 2353687840 2353687840 IN IP4 128.3.4.5 | |||
s=R2FB | s=R2FB | |||
skipping to change at page 37, line 27 | skipping to change at page 40, line 14 | |||
v=0 | v=0 | |||
o=- 2353687860 2353687860 IN IP4 128.3.4.5 | o=- 2353687860 2353687860 IN IP4 128.3.4.5 | |||
s=BillsRUs | s=BillsRUs | |||
i=Joe Pendleton's Phone Bill | i=Joe Pendleton's Phone Bill | |||
e=agent.mulder@fbi.gov | e=agent.mulder@fbi.gov | |||
c=TN RFC2543 +1-202-833-1010 | c=TN RFC2543 +1-202-833-1010 | |||
t=2353687860 0 | t=2353687860 0 | |||
m=text 1 fax x-files-id | m=text 1 fax x-files-id | |||
a=fmtp:x-files-id opr:fbi.gov/jdcn-123@45:3des;base64,<signature> | a=fmtp:x-files-id opr:fbi.gov/jdcn-123@45:3des;base64,<signature> | |||
Note: in this case the opaque reference is data used to convince the | Note: in this case the opaque reference is a collection of data used to | |||
Executive System that the requester has the right to get this information, | convince the Executive System that the requester has the right to get | |||
rather than selecting the particular content (the A party in the To: field | this information, rather than selecting the particular content (the A | |||
of the SIP "wrapper" does that alone). | party in the To: field of the SIP "wrapper" does that alone). | |||
5. Security Considerations | 5. Security Considerations | |||
5.1. Basic Principles for PINT Use | 5.1. Basic Principles for PINT Use | |||
A PINT Gateway, and the Executive System(s) with which that Gateway is | A PINT Gateway, and the Executive System(s) with which that Gateway is | |||
associated, exist to provide service to PINT Requestors. The aim of the PINT | associated, exist to provide service to PINT Requestors. The aim of the | |||
protocol is to pass requests from those users on to a PINT Gateway so an | PINT protocol is to pass requests from those users on to a PINT Gateway | |||
associated Executive System can service those requests. | so an associated Executive System can service those requests. | |||
5.1.1. Responsibility for service requests | 5.1.1. Responsibility for service requests | |||
The facility of making a GSTN-based call to numbers specified in the PINT | ||||
request, however, comes with some risks. The request can specify an incorrect | ||||
telephone of fax number. It is also possible that the Requestor has purposely | ||||
entered the telephone number of an innocent third party. Finally, the request | ||||
may have been intercepted on its way through any intervening PINT or SIP | ||||
infrastructure, and the request may have been altered. | ||||
In any of these cases, the result may be that a call is placed incorrectly. | The facility of making a GSTN-based call to numbers specified in the | |||
Where there is intent or negligence, this may be construed as harrasment of | PINT request, however, comes with some risks. The request can specify an | |||
the person incorrectly receiving the call. Whilst the regulatory framework for | incorrect telephone of fax number. It is also possible that the | |||
misuse of Internet connections differs throughout the world and is not always | Requestor has purposely entered the telephone number of an innocent | |||
mature, the rules under which GSTN calls are made are much more settled. | third party. Finally, the request may have been intercepted on its way | |||
Someone may be liable for mistaken or incorrect calls. | through any intervening PINT or SIP infrastructure, and the request may | |||
have been altered. | ||||
Understandably, the GSTN Operators would prefer that this someone is not them, | In any of these cases, the result may be that a call is placed | |||
so they will need to ensure that any PINT Gateway and Executive System | incorrectly. Where there is intent or negligence, this may be construed | |||
combination does not generate incorrect calls through some error in the | as harrasment of the person incorrectly receiving the call. Whilst the | |||
Gateway or Executive system implementation or GSTN-internal communications | regulatory framework for misuse of Internet connections differs | |||
fault. Equally, it is important that the Operator can show that they act only | throughout the world and is not always mature, the rules under which | |||
on requests that they have good reason to believe are correct. This means that | GSTN calls are made are much more settled. Someone may be liable for | |||
the Gateway must not pass on requests unless it is sure that they have not | mistaken or incorrect calls. | |||
been corrupted in transit from the Requestor. | ||||
If a request can be shown to have come from a particular Requestor and to have | Understandably, the GSTN Operators would prefer that this someone is not | |||
been acted on in good faith by the PINT service provider, then responsibility | them, so they will need to ensure that any PINT Gateway and Executive | |||
for making requests may well fall to the Requestor rather than the Operator | System combination does not generate incorrect calls through some error | |||
who executed these requests. | in the Gateway or Executive system implementation or GSTN-internal | |||
communications fault. Equally, it is important that the Operator can | ||||
show that they act only on requests that they have good reason to | ||||
believe are correct. This means that the Gateway must not pass on | ||||
requests unless it is sure that they have not been corrupted in transit | ||||
from the Requestor. | ||||
Finally, it may be important for the PINT service provider to be able to show | If a request can be shown to have come from a particular Requestor and | |||
that they act only on requests for which they have some degree of assurance of | to have been acted on in good faith by the PINT service provider, then | |||
origin. In many jurisdictions, it is a requirement on GSTN Operators that they | responsibility for making requests may well fall to the Requestor rather | |||
place calls only when they can, if required, identify the parties to the call | than the Operator who executed these requests. | |||
(such as when required to carry out a Malicious Call Trace). It is at least | ||||
likely that the provider of PINT services will have a similar responsibility | ||||
placed on them. | ||||
It follows that the PINT service provider may require that the identity of the | Finally, it may be important for the PINT service provider to be able to | |||
Requestor be confirmed. If such confirmation is not available, then they may | show that they act only on requests for which they have some degree of | |||
be forced (or choose) not to provide service. This identification will require | assurance of origin. In many jurisdictions, it is a requirement on GSTN | |||
personal authentication of the Requesting User. | Operators that they place calls only when they can, if required, | |||
identify the parties to the call (such as when required to carry out a | ||||
Malicious Call Trace). It is at least likely that the provider of PINT | ||||
services will have a similar responsibility placed on them. | ||||
It follows that the PINT service provider may require that the identity | ||||
of the Requestor be confirmed. If such confirmation is not available, | ||||
then they may be forced (or choose) not to provide service. This | ||||
identification may require personal authentication of the Requesting | ||||
User. | ||||
5.1.2. Authority to make requests | 5.1.2. Authority to make requests | |||
Where GSTN resources are used to provide a PINT service, it is at least | Where GSTN resources are used to provide a PINT service, it is at least | |||
possible that someone will have to pay for it. This person may not be the | possible that someone will have to pay for it. This person may not be | |||
Requestor, as, for example, in the case of existing GSTN split-charging | the Requestor, as, for example, in the case of existing GSTN | |||
services like free phone in which the recipient of a call rather than the | split-charging services like free phone in which the recipient of a call | |||
originator is responsible for the call cost. | rather than the originator is responsible for the call cost. | |||
This is not, of course, the only possibility; for example, PINT service may be | This is not, of course, the only possibility; for example, PINT service | |||
provided on a subscription basis, and there are a number of other models. | may be provided on a subscription basis, and there are a number of other | |||
However, whichever model is chosen, there may be a requirement that the | models. However, whichever model is chosen, there may be a requirement | |||
authority of a Requestor to make a PINT request is confirmed. | that the authority of a Requestor to make a PINT request is confirmed. | |||
If such confirmation is not available, then, again, the PINT Gateway and | If such confirmation is not available, then, again, the PINT Gateway and | |||
associated Executive System may choose not to provide service. | associated Executive System may choose not to provide service. | |||
5.1.3. Privacy | 5.1.3. Privacy | |||
Even if the identity of the Requesting User and the Authority under which they | Even if the identity of the Requesting User and the Authority under | |||
make their request is known, there remains the possibility that the request is | which they make their request is known, there remains the possibility | |||
either corrupted, maliciously altered, or even replaced whilst in transit | that the request is either corrupted, maliciously altered, or even | |||
between the Requestor and the PINT Gateway. | replaced whilst in transit between the Requestor and the PINT Gateway. | |||
Similarly, information on the Authority under which a request is made may well | Similarly, information on the Authority under which a request is made | |||
be carried within that request. This can be sensitive information, as an | may well be carried within that request. This can be sensitive | |||
eavesdropper might steal this and use it within their own requests. Such | information, as an eavesdropper might steal this and use it within their | |||
authority should be treated as if it were financial information (such as a | own requests. Such authority SHOULD be treated as if it were financial | |||
credit card number or PIN). | information (such as a credit card number or PIN). | |||
The data authorizing a Requesting User to make a PINT request should be known | The data authorizing a Requesting User to make a PINT request should be | |||
only to them and the service provider. However, this information may be in a | known only to them and the service provider. However, this information | |||
form that does not match the schemes normally used within the Internet. For | may be in a form that does not match the schemes normally used within | |||
example, X.509 certificates[14] are commonly used for secured transactions on | the Internet. For example, X.509 certificates[14] are commonly used for | |||
the Internet both in the IP Security Architecture[12] and in the TLS | secured transactions on the Internet both in the IP Security | |||
protocol[13], but the GSTN provider may only store an account code and PIN | Architecture[12] and in the TLS protocol[13], but the GSTN provider may | |||
(i.e. a fixed string of numbers). | only store an account code and PIN (i.e. a fixed string of numbers). | |||
A Requesting User has a reasonable expectation that their requests for service | A Requesting User has a reasonable expectation that their requests for | |||
are confidential. For some PINT services, no content data is carried over the | service are confidential. For some PINT services, no content is carried | |||
Internet; however, the telephone or fax numbers of the parties to a resulting | over the Internet; however, the telephone or fax numbers of the parties | |||
service calls may be considered sensitive. As a result, it is likely that the | to a resulting service calls may be considered sensitive. As a result, | |||
Requestor (and their PINT service provider) will require that any request that | it is likely that the Requestor (and their PINT service provider) will | |||
is sent across the Internet be protected against eavesdroppers; in short, the | require that any request that is sent across the Internet be protected | |||
requests should to be encrypted. | against eavesdroppers; in short, the requests SHOULD to be encrypted. | |||
5.1.4. Privacy Implications of SUBSCRIBE/NOTIFY | 5.1.4. Privacy Implications of SUBSCRIBE/NOTIFY | |||
Some special considerations relate to monitoring sessions using the SUBSCRIBE | Some special considerations relate to monitoring sessions using the | |||
and NOTIFY messages. The SUBSCRIBE message that is used to register an | SUBSCRIBE and NOTIFY messages. The SUBSCRIBE message that is used to | |||
interest in the disposition of a PINT service transaction uses the original | register an interest in the disposition of a PINT service transaction | |||
Session Description carried in the related INVITE message. This current | uses the original Session Description carried in the related INVITE | |||
specification does not restrict the source of such a SUBSCRIBE message, so it | message. This current specification does not restrict the source of such | |||
is possible for an eavesdropper to capture an unprotected session description | a SUBSCRIBE message, so it is possible for an eavesdropper to capture an | |||
and use this in a subsequent SUBSCRIBE request. In this way it is possible to | unprotected session description and use this in a subsequent SUBSCRIBE | |||
find out details on that transaction that may well be considered sensitive. | request. In this way it is possible to find out details on that | |||
transaction that may well be considered sensitive. | ||||
The initial solution to this risk is to recommend that a session description | The initial solution to this risk is to recommend that a session | |||
that may be used within a subsequent SUBSCRIBE message SHOULD be protected. | description that may be used within a subsequent SUBSCRIBE message | |||
SHOULD be protected. | ||||
However, there is a further risk; if the origin-field used is "guessable" then | However, there is a further risk; if the origin-field used is | |||
it might be possible for an attacker to reconstruct the session description | "guessable" then it might be possible for an attacker to reconstruct the | |||
and use this reconstruction within a SUBSCRIBE message. | session description and use this reconstruction within a SUBSCRIBE | |||
message. | ||||
SDP (see section 6 of [2], "o=" field) does not specify the mechansim used to | SDP (see section 6 of [2], "o=" field) does not specify the mechansim | |||
generate the sess-id field, and suggests that a method based on timestamps | used to generate the sess-id field, and suggests that a method based on | |||
produced by Network Time Protocol [16] can be used. This is sufficient to | timestamps produced by Network Time Protocol [16] can be used. This is | |||
guarantee uniqueness, but may allow the value to be guessed, particularly if | sufficient to guarantee uniqueness, but may allow the value to be | |||
other unprotected requests from the same originator are available. | guessed, particularly if other unprotected requests from the same | |||
originator are available. | ||||
Thus, to ensure that the session identifier is not guessable the techniques | Thus, to ensure that the session identifier is not guessable the | |||
described in section 6.3 of [17] can be used when generating the origin-field | techniques described in section 6.3 of [17] can be used when generating | |||
for a session description to be used inside a PINT INVITE message. If all | the origin-field for a session description to be used inside a PINT | |||
requests from (and responses to) a particular PINT requesting entity are | INVITE message. If all requests from (and responses to) a particular | |||
protected, then this is not needed. Where such a situation is not assured, AND | PINT requesting entity are protected, then this is not needed. Where | |||
where session monitoring is supported, then a method by which an origin-field | such a situation is not assured, AND where session monitoring is | |||
within a session description is not guessable SHOULD be used. | supported, then a method by which an origin-field within a session | |||
description is not guessable SHOULD be used. | ||||
5.2. Registration Procedures | 5.2. Registration Procedures | |||
Any number of PINT Gateways may register to provide the same service; this is | Any number of PINT Gateways may register to provide the same service; | |||
indicated by the Gateways specifying the same "userinfo" part in the To: | this is indicated by the Gateways specifying the same "userinfo" part in | |||
header field of the REGISTER request. Whilst such ambiguity would be unlikely | the To: header field of the REGISTER request. Whilst such ambiguity | |||
to occur with the scenarios covered by "core" SIP, it is very likely for PINT; | would be unlikely to occur with the scenarios covered by "core" SIP, it | |||
there could be any number of service providers all willing to support a | is very likely for PINT; there could be any number of service providers | |||
"Request-To-Fax" service, for example. Unless a request specifies the Gateway | all willing to support a "Request-To-Fax" service, for example. | |||
name explicitly, an intervening Proxy that acts on a registration database to | ||||
which several Gateways have all registered is in a position to select from the | Unless a request specifies the Gateway name explicitly, an intervening | |||
registrands using whatever algorithm it chooses; in principle, any Gateway | Proxy that acts on a registration database to which several Gateways | |||
that has registered as "R2F" would be appropriate. | have all registered is in a position to select from the registrands | |||
using whatever algorithm it chooses; in principle, any Gateway that has | ||||
registered as "R2F" would be appropriate. | ||||
However, this opens up an avenue for attack, and this is one in which a | However, this opens up an avenue for attack, and this is one in which a | |||
"rogue" Gateway operator stands to make a significant gain. The standard SIP | "rogue" Gateway operator stands to make a significant gain. The standard | |||
procedure for releasing a registration is to send a REGISTER request with a | SIP procedure for releasing a registration is to send a REGISTER request | |||
Contact field having a wildcard value and an expires parameter with a value of | with a Contact field having a wildcard value and an expires parameter | |||
0. It is important that a PINT Registrar uses authentication of the | with a value of 0. It is important that a PINT Registrar uses | |||
Registrand, as otherwise one PINT service provider would be able to "spoof" | authentication of the Registrand, as otherwise one PINT service provider | |||
another and remove their registration. As this would stop the Proxy passing | would be able to "spoof" another and remove their registration. As this | |||
any requests to that provider, this would both increase requests being sent to | would stop the Proxy passing any requests to that provider, this would | |||
the rogue and stop requests going to the victim. | both increase requests being sent to the rogue and stop requests going | |||
to the victim. | ||||
Another variant on this attack would be to register a Gateway using a name | Another variant on this attack would be to register a Gateway using a | |||
that has been registered by another provider; thus a rogue Operator might | name that has been registered by another provider; thus a rogue Operator | |||
register its Gateway as "R2C@pint.att.com", thereby hijacking requests. | might register its Gateway as "R2C@pint.att.com", thereby hijacking | |||
requests. | ||||
The solution is the same; all registrations by PINT Gateways MUST be | The solution is the same; all registrations by PINT Gateways MUST be | |||
authenticated; this includes both new or apparent replacement registrations, | authenticated; this includes both new or apparent replacement | |||
and any cancellation of current registrations. This recommendation is also | registrations, and any cancellation of current registrations. This | |||
made in the SIP specification, but for the correct operation of PINT, it is | recommendation is also made in the SIP specification, but for the | |||
very important indeed. | correct operation of PINT, it is very important indeed. | |||
5.3. Security mechanisms and implications on PINT service | 5.3. Security mechanisms and implications on PINT service | |||
PINT is a set of extensions to SIP[1] and SDP[2], and will use the security | PINT is a set of extensions to SIP[1] and SDP[2], and will use the | |||
procedures described in SIP. There are several implications of this, and these | security procedures described in SIP. There are several implications of | |||
are covered here. | this, and these are covered here. | |||
For several of the PINT services, the To: header field of SIP is used to | For several of the PINT services, the To: header field of SIP is used to | |||
identify one of the parties to the resulting service call. The PINT | identify one of the parties to the resulting service call. The PINT | |||
Request-To-Call service is an example. As mentioned in the SIP specification, | Request-To-Call service is an example. As mentioned in the SIP | |||
this field is used to route SIP messages through an infrastructure of Redirect | specification, this field is used to route SIP messages through an | |||
and Proxy server between the corresponding User Agent Servers, and so cannot | infrastructure of Redirect and Proxy server between the corresponding | |||
be encrypted. This means that, although the majority of personal or sensitive | User Agent Servers, and so cannot be encrypted. This means that, | |||
data can be protected whilst in transit, the telephone (or fax) number of one | although the majority of personal or sensitive data can be protected | |||
of the parties to a PINT service call cannot, and will be "visible" to any | whilst in transit, the telephone (or fax) number of one of the parties | |||
interception. For the PINT milestone services this may be acceptable, since | to a PINT service call cannot, and will be "visible" to any | |||
the caller named in the To: service is typically a "well known" provider | interception. For the PINT milestone services this may be acceptable, | |||
address, such as a Call Centre. | since the caller named in the To: service is typically a "well known" | |||
provider address, such as a Call Center. | ||||
Another aspect of this is that, even if the Requesting User does not consider | Another aspect of this is that, even if the Requesting User does not | |||
the telephone or fax numbers of the parties to a PINT service to be private, | consider the telephone or fax numbers of the parties to a PINT service | |||
those parties might. Where PINT servers have reason to believe this might be | to be private, those parties might. Where PINT servers have reason to | |||
the case they SHOULD encrypt the request, even if the Requestor has not done | believe this might be the case they SHOULD encrypt the request, even if | |||
so. This could happen, for example, if a Requesting User within a company | the Requestor has not done so. This could happen, for example, if a | |||
placed a PINT request and this was carried via the company's Intranet to their | Requesting User within a company placed a PINT request and this was | |||
Proxy/firewall and thence over the Internet to a PINT Gateway at another | carried via the company's Intranet to their Proxy/firewall and thence | |||
location. | over the Internet to a PINT Gateway at another location. | |||
If a request carries data that can be reused by an eavesdropper either to | If a request carries data that can be reused by an eavesdropper either | |||
"spoof" the Requestor or to obtain PINT service by inserting the Requestor's | to "spoof" the Requestor or to obtain PINT service by inserting the | |||
authorization token into an eavesdropper's request, then this data MUST be | Requestor's authorization token into an eavesdropper's request, then | |||
protected. This is particularly important if the authorization token consists | this data MUST be protected. This is particularly important if the | |||
of static text (such as an account code and/or PIN). | authorization token consists of static text (such as an account code | |||
and/or PIN). | ||||
One approach is to encrypt the whole of the request, using the methods | One approach is to encrypt the whole of the request, using the methods | |||
described in the SIP specification. As an alternative, it may be acceptable | described in the SIP specification. As an alternative, it may be | |||
for the authorization token to be held as an opaque reference (see section | acceptable for the authorization token to be held as an opaque reference | |||
3.4.2.3 and examples 4.11 and 4.12), using some proprietary scheme agreed | (see section 3.4.2.3 and examples 4.11 and 4.12), using some proprietary | |||
between the Requestor and the PINT service provider, as long as this is | scheme agreed between the Requestor and the PINT service provider, as | |||
resistant to interception and re-use. Also, it may be that the authorization | long as this is resistant to interception and re-use. Also, it may be | |||
token cannot be used outside of a request cryptographically signed by the | that the authorization token cannot be used outside of a request | |||
Requestor; if so then this requirement can be relaxed, as in this case the | cryptographically signed by the Requestor; if so then this requirement | |||
token cannot be re-used by another. However, unless both the Requestor and the | can be relaxed, as in this case the token cannot be re-used by another. | |||
Gateway are assured that this is the case, any authorization token MUST be | However, unless both the Requestor and the Gateway are assured that this | |||
treated as sensitive, and so MUST be encrypted. | is the case, any authorization token MUST be treated as sensitive, and | |||
so MUST be encrypted. | ||||
A PINT request may contain data within the SDP message body that can be used | A PINT request may contain data within the SDP message body that can be | |||
more efficiently to route that request. For example, it may be that one | used more efficiently to route that request. For example, it may be that | |||
Gateway and Executive System combination cannot handle a request that | one Gateway and Executive System combination cannot handle a request | |||
specifies one of the parties as a pager, whilst another can. Both gateways may | that specifies one of the parties as a pager, whilst another can. Both | |||
have registered with a PINT/SIP Registrar, and this information may be | gateways may have registered with a PINT/SIP Registrar, and this | |||
available to intervening PINT/SIP Proxies. However, if the message body is | information may be available to intervening PINT/SIP Proxies. However, | |||
encrypted, then the request cannot be decoded at the Proxy server, and so | if the message body is encrypted, then the request cannot be decoded at | |||
Gateway selection based on contained information cannot be made there. | the Proxy server, and so Gateway selection based on contained | |||
information cannot be made there. | ||||
The result is that the Proxy may deliver the request to a Gateway that cannot | The result is that the Proxy may deliver the request to a Gateway that | |||
handle it; the implication is that a PINT/SIP Proxy SHOULD consider its choice | cannot handle it; the implication is that a PINT/SIP Proxy SHOULD | |||
for the appropriate Gateway subject to correction, and, on receiving a 501 or | consider its choice for the appropriate Gateway subject to correction, | |||
415 rejection from the first gateway chosen, try another. In this way, the | and, on receiving a 501 or 415 rejection from the first gateway chosen, | |||
request will succeed if at all possible, even though it may be delayed (and | try another. In this way, the request will succeed if at all possible, | |||
tie up resources in the inappropriate Gateways). | even though it may be delayed (and tie up resources in the inappropriate | |||
Gateways). | ||||
This opens up an interesting avenue for Denial Of Service; sending a valid | This opens up an interesting avenue for Denial Of Service; sending a | |||
request that appears to be suitable for a number of different Gateways, and | valid request that appears to be suitable for a number of different | |||
simply occupying those Gateways in decrypting a message requesting a service | Gateways, and simply occupying those Gateways in decrypting a message | |||
they cannot provide. As mentioned in section 3.5.5.1, the choice of service | requesting a service they cannot provide. As mentioned in section | |||
name to be passed in the userinfo portion of the SIP Request-URI is flexible, | 3.5.5.1, the choice of service name to be passed in the userinfo portion | |||
and it is RECOMMENDED that names be chosen that allow a Proxy to select an | of the SIP Request-URI is flexible, and it is RECOMMENDED that names be | |||
appropriate Gateway without having to examine the SDP body part. Thus, in the | chosen that allow a Proxy to select an appropriate Gateway without | |||
example given here, the service might be called "Request-To-Page" or "R2P" | having to examine the SDP body part. Thus, in the example given here, | |||
rather than the more general use of "R2F", if there is a possibility of the | the service might be called "Request-To-Page" or "R2P" rather than the | |||
SDP body part being protected during transit. | more general use of "R2F", if there is a possibility of the SDP body | |||
part being protected during transit. | ||||
A variation on this attack is to provide a request that is syntactically | A variation on this attack is to provide a request that is syntactically | |||
invalid but that, due to the encryption, cannot be detected without expending | invalid but that, due to the encryption, cannot be detected without | |||
resources in decoding it. The effects of this form of attack can be minimised | expending resources in decoding it. The effects of this form of attack | |||
in the same way as for any SIP Invitation; the Proxy should detect the 400 | can be minimised in the same way as for any SIP Invitation; the Proxy | |||
rejection returned from the initial Gateway, and not pass the request onwards | should detect the 400 rejection returned from the initial Gateway, and | |||
to another. | not pass the request onwards to another. | |||
Finally, note that the Requesting User may not have a prior relationship with | Finally, note that the Requesting User may not have a prior relationship | |||
a PINT Gateway, whilst still having a prior relationship with the Operator of | with a PINT Gateway, whilst still having a prior relationship with the | |||
the Executive System that fulfils their request. Thus there may be two levels | Operator of the Executive System that fulfils their request. Thus there | |||
of authentication and authorization; one carried out using the techniques | may be two levels of authentication and authorization; one carried out | |||
described in the SIP specification (for use between the Requestor and the | using the techniques described in the SIP specification (for use between | |||
Gateway), with another being used between the Requesting User or the Requestor | the Requestor and the Gateway), with another being used between the | |||
and the Executive System. | Requesting User or the Requestor and the Executive System. | |||
For example, the Requesting User may have an account with the PINT service | For example, the Requesting User may have an account with the PINT | |||
provider. That provider might require that requests include this identity | service provider. That provider might require that requests include this | |||
before they will be convinced to provide service. In addition, to counter | identity before they will be convinced to provide service. In addition, | |||
attacks on the request whilst it is in transit across the Internet, the | to counter attacks on the request whilst it is in transit across the | |||
Gateway may require a separate X.509-based certification of the request. These | Internet, the Gateway may require a separate X.509-based certification | |||
are two separate procedures, and data needed for the former would normally be | of the request. These are two separate procedures, and data needed for | |||
expected to be held in opaque references inside the SDP body part of the | the former would normally be expected to be held in opaque references | |||
request. | inside the SDP body part of the request. | |||
The detailed operation of this mechanism is, by definition, outside the scope | The detailed operation of this mechanism is, by definition, outside the | |||
of an Internet Protocol, and so must be considered a private matter. However, | scope of an Internet Protocol, and so must be considered a private | |||
one approach to indicating to the Requestor that such "second level" | matter. However, one approach to indicating to the Requestor that such | |||
authentication or authorization is required by their Service Provider would be | "second level" authentication or authorization is required by their | |||
to ask for this inside the textual description carried with a 401 response | Service Provider would be to ask for this inside the textual description | |||
returned from the PINT Gateway. | carried with a 401 response returned from the PINT Gateway. | |||
5.4. Summary of Security Implications | 5.4. Summary of Security Implications | |||
>From the above discussion, PINT always carries data items that are sensitive, | ||||
and there may be financial considerations as well as the more normal privacy | ||||
concerns. As a result, the transactions MUST be protected from interception, | ||||
modification and replay in transit. | ||||
PINT is based on SIP and SDP, and can use the security procedures outlined in | From the above discussion, PINT always carries data items that are | |||
[1] (sections 13 and 15). However, in the case of PINT, the SIP recommendation | sensitive, and there may be financial considerations as well as the more | |||
that requests and responses MAY be protected is not enough. PINT messages MUST | normal privacy concerns. As a result, the transactions MUST be protected | |||
be protected, so PINT Implementations MUST support SIP Security (as described | from interception, modification and replay in transit. | |||
in [1], sections 13 & 15), and be capable of handling such received messages. | ||||
In some configurations, PINT Clients, Servers, and Gateways can be sure that | PINT is based on SIP and SDP, and can use the security procedures | |||
they operate using the services of network level security [13], transport | outlined in [1] (sections 13 and 15). However, in the case of PINT, the | |||
layer security [12], or physical security for all communications between them. | SIP recommendation that requests and responses MAY be protected is not | |||
In these cases messages MAY be exchanged without SIP security, since all | enough. PINT messages MUST be protected, so PINT Implementations MUST | |||
traffic is protected already. Clients and servers SHOULD support manual | support SIP Security (as described in [1], sections 13 & 15), and be | |||
configuration to use such lower layer security facilities. | capable of handling such received messages. | |||
In some configurations, PINT Clients, Servers, and Gateways can be sure | ||||
that they operate using the services of network level security [13], | ||||
transport layer security [12], or physical security for all | ||||
communications between them. In these cases messages MAY be exchanged | ||||
without SIP security, since all traffic is protected already. Clients | ||||
and servers SHOULD support manual configuration to use such lower layer | ||||
security facilities. | ||||
When using network layer security [13], the Security Policy Database | When using network layer security [13], the Security Policy Database | |||
MUST be configured to provide appropriate protection to PINT traffic. | MUST be configured to provide appropriate protection to PINT traffic. | |||
When using TLS, a port configured MUST NOT also | When using TLS, a port configured MUST NOT also be configured for | |||
be configured for non-TLS traffic. When TLS is used, basic authentication | non-TLS traffic. When TLS is used, basic authentication MUST be | |||
MUST be supported, and client-side certificates MAY be supported. | supported, and client-side certificates MAY be supported. | |||
Authentication of the Client making the request is required, however, so | Authentication of the Client making the request is required, however, so | |||
if this is not provided by the underlying mechanism used, then it MUST be | if this is not provided by the underlying mechanism used, then it MUST | |||
included within the PINT messages using SIP authentication techniques. In | be included within the PINT messages using SIP authentication | |||
contrast with SIP, PINT requests are often sent to parties with which a | techniques. In contrast with SIP, PINT requests are often sent to | |||
prior communications relationship exists (such as a Telephone Carrier). In | parties with which a prior communications relationship exists (such as a | |||
this case, there may be a shared secret between the client and the PINT | Telephone Carrier). In this case, there may be a shared secret between | |||
Gateway. Such PINT systems MAY use authentication based on shared secrets, | the client and the PINT Gateway. Such PINT systems MAY use | |||
with HTTP "basic authentication". When this is done, the message integrity | authentication based on shared secrets, with HTTP "basic | |||
and privacy must be guaranteed by some lower layer mechanism. | authentication". When this is done, the message integrity and privacy | |||
must be guaranteed by some lower layer mechanism. | ||||
There are implications on the operation of PINT here though. If a PINT proxy | There are implications on the operation of PINT here though. If a PINT | |||
or redirect server is used, then it must be able to examine the contents of | proxy or redirect server is used, then it must be able to examine the | |||
the IP datagrams carried. It follows that an end-to-end approach using | contents of the IP datagrams carried. It follows that an end-to-end | |||
network-layer security between the PINT Client and a PINT Gateway precludes | approach using network-layer security between the PINT Client and a PINT | |||
the use of an intervening proxy; communication between the Client and Gateway | Gateway precludes the use of an intervening proxy; communication between | |||
is carried via a tunnel to which any intervening entity cannot gain access, | the Client and Gateway is carried via a tunnel to which any intervening | |||
even if the IP datagrams are carried via this node. Conversely, if a | entity cannot gain access, even if the IP datagrams are carried via this | |||
"hop-by-hop" approach is used, then any intervening PINT proxies (or redirect | node. Conversely, if a "hop-by-hop" approach is used, then any | |||
servers) are, by implication, trusted entities. | intervening PINT proxies (or redirect servers) are, by implication, | |||
trusted entities. | ||||
However, if there is any doubt that there is an underlying network or | However, if there is any doubt that there is an underlying network or | |||
transport layer security association in place, then the players in a PINT | transport layer security association in place, then the players in a | |||
protocol exchange MUST use encryption and authentication techniques within the | PINT protocol exchange MUST use encryption and authentication techniques | |||
protocol itself. The techniques described in section 15 of RFC2543 MUST be | within the protocol itself. The techniques described in section 15 of | |||
used, unless there is an alternative protection scheme that is agreed between | RFC2543 MUST be used, unless there is an alternative protection scheme | |||
the parties. In either case, the content of any message body (or bodies) | that is agreed between the parties. In either case, the content of any | |||
carried within a PINT request or response MUST be protected; this has | message body (or bodies) carried within a PINT request or response MUST | |||
implications on the options for routing requests via Proxies (see 5.3). | be protected; this has implications on the options for routing requests | |||
via Proxies (see 5.3). | ||||
Using SIP techniques for protection, the Request-URI and To: fields headers | Using SIP techniques for protection, the Request-URI and To: fields | |||
within PINT requests cannot be protected. In the baseline PINT services these | headers within PINT requests cannot be protected. In the baseline PINT | |||
fields may contain sensitive information. This is a consideration, and if | services these fields may contain sensitive information. This is a | |||
these data ARE considered sensitive, then this will preclude the sole use of | consideration, and if these data ARE considered sensitive, then this | |||
SIP techniques; in such a situation, transport [12] or network layer [13] | will preclude the sole use of SIP techniques; in such a situation, | |||
protection mechanisms MUST be used. | transport [12] or network layer [13] protection mechanisms MUST be used. | |||
As a final point, this choice will in turn have an influence on the choice of | As a final point, this choice will in turn have an influence on the | |||
transport layer protocol that can be used; if a TLS association is available | choice of transport layer protocol that can be used; if a TLS | |||
between two nodes, then TCP will have to be used. This is different from | association is available between two nodes, then TCP will have to be | |||
the default behaviour of SIP (try UDP, then try TCP if that fails). | used. This is different from the default behaviour of SIP (try UDP, then | |||
try TCP if that fails). | ||||
6. Deployment considerations and the Relationship PINT to I.N. (Informative) | 6. Deployment considerations and the Relationship PINT to I.N. | |||
(Informative) | ||||
6.1. Web Front End to PINT Infrastructure | 6.1. Web Front End to PINT Infrastructure | |||
It is possible that some other protocol may be used to communicate a | It is possible that some other protocol may be used to communicate a | |||
Requesting User's requirements. Due to the high numbers of available Web | Requesting User's requirements. Due to the high numbers of available Web | |||
Browsers and servers it seems likely that some PINT systems will use | Browsers and servers it seems likely that some PINT systems will use | |||
HTML/HTTP as a "front end". In this scenario, HTTP will be used over a | HTML/HTTP as a "front end". In this scenario, HTTP will be used over a | |||
connection from the Requesting User's Web Browser (WC) to an Intermediate | connection from the Requesting User's Web Browser (WC) to an | |||
Web Server (WS). This will be closely associated with a PINT Client (using | Intermediate Web Server (WS). This will be closely associated with a | |||
some unspecified mechanism to transfer the data from the Web Server to the | PINT Client (using some unspecified mechanism to transfer the data from | |||
PINT Client). The PINT Client will represent the Requesting User to the PINT | the Web Server to the PINT Client). The PINT Client will represent the | |||
Gateway, and thus to the Executive System that carries out the required | Requesting User to the PINT Gateway, and thus to the Executive System | |||
action. | that carries out the required action. | |||
[WC]------[WS] | [WC]------[WS] | |||
[PC] | [PC] | |||
\ | \ | |||
\ | \ | |||
[PG] | [PG] | |||
[XS] | [XS] | |||
Figure 2: Basic "Web-fronted" Configuration | Figure 2: Basic "Web-fronted" Configuration | |||
6.2. Redirects to Multiple Gateways | 6.2. Redirects to Multiple Gateways | |||
It is quite possible that a given PINT Gateway is associated with an | It is quite possible that a given PINT Gateway is associated with an | |||
Executive System (or systems) that can connect to the GSTN at different | Executive System (or systems) that can connect to the GSTN at different | |||
places. Equally, if there is a chain of PINT Servers, then each of these | places. Equally, if there is a chain of PINT Servers, then each of these | |||
intermediate or proxy servers (PP) may be able to route PINT requests to | intermediate or proxy servers (PP) may be able to route PINT requests to | |||
Executive Systems that connect at specific points to the GSTN. The result of | Executive Systems that connect at specific points to the GSTN. The | |||
this is that there may be more than one PINT Gateway or Executive System that | result of this is that there may be more than one PINT Gateway or | |||
can deal with a given request. The mechanisms by which the choice on where | Executive System that can deal with a given request. The mechanisms by | |||
to deliver a request are outside the scope of this document. | which the choice on where to deliver a request are outside the scope of | |||
this document. | ||||
[WC]------[WS] [WC]------[WS] | [WC]------[WS] [WC]------[WS] | |||
[PC] [PC] | [PC] [PC] | |||
\ \ | \ \ | |||
\ \ | \ \ | |||
[PG] [PP] | [PG] [PP] | |||
.........[XS]......... / \ | .........[XS]......... / \ | |||
: : / \ | : : / \ | |||
[PG] [PG] | [PG] [PG] | |||
[XS] [XS] | [XS] [XS] | |||
skipping to change at page 44, line 48 | skipping to change at page 48, line 14 | |||
[WC]------[WS] [WC]------[WS] | [WC]------[WS] [WC]------[WS] | |||
[PC] [PC] | [PC] [PC] | |||
\ \ | \ \ | |||
\ \ | \ \ | |||
[PG] [PP] | [PG] [PP] | |||
.........[XS]......... / \ | .........[XS]......... / \ | |||
: : / \ | : : / \ | |||
[PG] [PG] | [PG] [PG] | |||
[XS] [XS] | [XS] [XS] | |||
Figure 3: Multiple Access Configurations | Figure 3: Multiple Access Configurations | |||
However, there do seem to be two approaches. Either a Server that acts as a | However, there do seem to be two approaches. Either a Server that acts | |||
proxy or redirect will select the appropriate Gateway itself and will cause | as a proxy or redirect will select the appropriate Gateway itself and | |||
the request to be sent on accordingly, or a list of possible Locations will | will cause the request to be sent on accordingly, or a list of possible | |||
be returned to the Requesting User from which they can select their choice. | Locations will be returned to the Requesting User from which they can | |||
select their choice. | ||||
In SIP, the implication is that, if a proxy cannot resolve to a single | In SIP, the implication is that, if a proxy cannot resolve to a single | |||
unique match for a request destination, then a response containing a list of | unique match for a request destination, then a response containing a | |||
the choices should be returned to the Requesting User for selection. This is | list of the choices should be returned to the Requesting User for | |||
not too likely a scenario within the normal use of SIP. | selection. This is not too likely a scenario within the normal use of | |||
SIP. | ||||
However, within PINT, such ambiguity may be quite common; it implies that | However, within PINT, such ambiguity may be quite common; it implies | |||
there are a number of possible providers of a given service. | that there are a number of possible providers of a given service. | |||
6.3. Competing PINT Gateways REGISTERing to offer the same service | 6.3. Competing PINT Gateways REGISTERing to offer the same service | |||
With PINT, the registration is not for an individual but instead for a | With PINT, the registration is not for an individual but instead for a | |||
service that can be handled by a service provider. Thus, one can envisage a | service that can be handled by a service provider. Thus, one can | |||
registration by the PINT Server of the domain telcoA.com of its ability to | envisage a registration by the PINT Server of the domain telcoA.com of | |||
support the service R2C as "R2C@telcoA.com", sent to an intermediary server | its ability to support the service R2C as "R2C@telcoA.com", sent to an | |||
that acts as registrar for the "broker.telcos.com" domain from | intermediary server that acts as registrar for the "broker.telcos.com" | |||
"R2C@pint.telcoA.com" as follows: | domain from "R2C@pint.telcoA.com" as follows: | |||
REGISTER sip:registrar@broker.telcos.com SIP/2.0 | REGISTER sip:registrar@broker.telcos.com SIP/2.0 | |||
To: sip:R2C@pint.telcoA.com | To: sip:R2C@pint.telcoA.com | |||
From: sip:R2C@pint.telcoA.com | From: sip:R2C@pint.telcoA.com | |||
... | ... | |||
This is the standard SIP registration service. | This is the standard SIP registration service. | |||
However, what happens if there are a number of different Service Providers, | However, what happens if there are a number of different Service | |||
all of whom support the "R2C" service? Suppose there is a PINT system at | Providers, all of whom support the "R2C" service? Suppose there is a | |||
domain "broker.com". PINT clients requesting a Request-to-Call service from | PINT system at domain "broker.com". PINT clients requesting a | |||
broker.com might be very willing to be redirected or proxied to any one of | Request-to-Call service from broker.com might be very willing to be | |||
the various service providers that had previously registered with the | redirected or proxied to any one of the various service providers that | |||
registrar. PINT servers might also be interested in providing service for | had previously registered with the registrar. PINT servers might also be | |||
requests that did not specify the service provider explicitly, as well as | interested in providing service for requests that did not specify the | |||
those requests that were directed "at them". | service provider explicitly, as well as those requests that were | |||
directed "at them". | ||||
To enable such service, PINT servers would REGISTER at the broker PINT | To enable such service, PINT servers would REGISTER at the broker PINT | |||
server registrations of the form: | server registrations of the form: | |||
REGISTER sip:registrar@broker.com SIP/2.0 | REGISTER sip:registrar@broker.com SIP/2.0 | |||
To: sip:R2C@broker.com | To: sip:R2C@broker.com | |||
From: sip:R2C@pint.telcoA.com | From: sip:R2C@pint.telcoA.com | |||
When several such REGISTER messages appear at the registrar, each differing | When several such REGISTER messages appear at the registrar, each | |||
only in the URL in the From: line, the registrar has many possibilities, | differing only in the URL in the From: line, the registrar has many | |||
e.g.: | possibilities, e.g.: | |||
(i) it overwrites the prior registration for "R2C@broker.telcos.com" | (i) it overwrites the prior registration for "R2C@broker.telcos.com" | |||
when the next comes in; | when the next comes in; | |||
(ii) it rejects the subsequent registration for "R2C@broker.telcos.com"; | (ii) it rejects the subsequent registration for | |||
"R2C@broker.telcos.com"; | ||||
(iii) it maintains all such registrations. | (iii) it maintains all such registrations. | |||
In this last case, on receiving an Invitation for the "general" service, | In this last case, on receiving an Invitation for the "general" service, | |||
either: | either: | |||
(iii.1) it passes on the invitation to all registered service | (iii.1) it passes on the invitation to all registered service | |||
providers, returning a collated response with all | providers, returning a collated response with all | |||
acceptances, using multiple Location: headers, | acceptances, using multiple Location: headers, | |||
or | or | |||
(iii.2) it silently selects one of the registrations (using, for | (iii.2) it silently selects one of the registrations (using, for | |||
example, a "round robin" approach) and routes the Invitation | example, a "round robin" approach) and routes the Invitation | |||
and response onwards without further comment. | and response onwards without further comment. | |||
As an alternative to all of the above approaches, it: | As an alternative to all of the above approaches, it: | |||
(iv) may choose to not allow registrations for the "general" service, | (iv) may choose to not allow registrations for the "general" service, | |||
rejecting all such REGISTER requests. | rejecting all such REGISTER requests. | |||
The algorithm by which such a choice is made will be | The algorithm by which such a choice is made will be | |||
implementation-dependent, and is outside the scope of PINT. Where a | implementation-dependent, and is outside the scope of PINT. Where a | |||
behaviour is to be defined by requesting users, then some sort of call | behaviour is to be defined by requesting users, then some sort of call | |||
processing language might be used to allow those clients, as a pre-service | processing language might be used to allow those clients, as a | |||
operation, to download the behaviour they expect to the server making such | pre-service operation, to download the behaviour they expect to the | |||
decisions. This, however, is a topic for other protocols, not for PINT. | server making such decisions. This, however, is a topic for other | |||
protocols, not for PINT. | ||||
6.4. Limitations on Available Information and Request Timing for SUBSCRIBE | 6.4. Limitations on Available Information and Request Timing for | |||
SUBSCRIBE | ||||
A reference configuration for PINT is that service requests are sent, via a | A reference configuration for PINT is that service requests are sent, | |||
PINT Gateway, to an Executive System that fulfils the Service Control | via a PINT Gateway, to an Executive System that fulfils the Service | |||
Function (SCF) of an Intelligent Network (see [11]). The success or failure | Control Function (SCF) of an Intelligent Network (see [11]). The success | |||
of the resulting service call may be information available to the SCF and so | or failure of the resulting service call may be information available to | |||
may potentially be made available to the PINT Gateway. In terms of | the SCF and so may potentially be made available to the PINT Gateway. In | |||
historical record of whether or not a service succeeded, a large SCF may be | terms of historical record of whether or not a service succeeded, a | |||
dealing with a million call attempts per hour. Given that volume of service | large SCF may be dealing with a million call attempts per hour. Given | |||
transactions, there are finite limits beyond which it cannot store service | that volume of service transactions, there are finite limits beyond | |||
disposition records; expecting to find out if a Fax was sent last month from | which it cannot store service disposition records; expecting to find out | |||
a busy SCF is unrealistic. | if a Fax was sent last month from a busy SCF is unrealistic. | |||
Other status changes, such as that on completion of a successful service | Other status changes, such as that on completion of a successful service | |||
call, require the SCF to arrange monitoring of the service call in a way | call, require the SCF to arrange monitoring of the service call in a way | |||
that the service may not do normally, for performance reasons. In most | that the service may not do normally, for performance reasons. In most | |||
implementations, it is difficult efficiently to interrupt a service to | implementations, it is difficult efficiently to interrupt a service to | |||
change it once it has begun execution, so it may be necessary to have two | change it once it has begun execution, so it may be necessary to have | |||
different services; one that sets GSTN resources to monitor service call | two different services; one that sets GSTN resources to monitor service | |||
termination, and one that doesn't. It is unlikely to be possible to decide | call termination, and one that doesn't. It is unlikely to be possible to | |||
that monitoring is required once the service has started. | decide that monitoring is required once the service has started. | |||
These factors can have implications both on the information that is | These factors can have implications both on the information that is | |||
potentially available at the PINT Gateway, and when a request to register | potentially available at the PINT Gateway, and when a request to | |||
interest in the status of a PINT service can succeed. The alternative to | register interest in the status of a PINT service can succeed. The | |||
using a general SCF is to provide a dedicated Service Node just for PINT | alternative to using a general SCF is to provide a dedicated Service | |||
services. As this node is involved in placing all service calls, it is in a | Node just for PINT services. As this node is involved in placing all | |||
position to collect the information needed. However, it may well still not | service calls, it is in a position to collect the information needed. | |||
be able to respond successfully to a registration of interest in call state | However, it may well still not be able to respond successfully to a | |||
changes once a service logic program instance is running. | registration of interest in call state changes once a service logic | |||
program instance is running. | ||||
Thus, although a Requesting User may register an interest in the status of a | Thus, although a Requesting User may register an interest in the status | |||
service request, the PINT Gateway may not be in a position to comply with | of a service request, the PINT Gateway may not be in a position to | |||
that request. Although this does not affect the protocol used between the | comply with that request. Although this does not affect the protocol | |||
Requestor and the PINT Gateway, it may influence the response returned. | used between the Requestor and the PINT Gateway, it may influence the | |||
To avoid the problem of changing service logic once running, any | response returned. To avoid the problem of changing service logic once | |||
registration of interest in status changes should be made at or before the | running, any registration of interest in status changes should be made | |||
time at which the service request is made. | at or before the time at which the service request is made. | |||
Conversely, if a historical request is made on the disposition of a service, | Conversely, if a historical request is made on the disposition of a | |||
this should be done within a short time after the service has completed; the | service, this should be done within a short time after the service has | |||
Executive System is unlikely to store the results of service requests for | completed; the Executive System is unlikely to store the results of | |||
service requests for | ||||
long; these will have been processed as AMA (Automatic Message Accounting) | long; these will have been processed as AMA (Automatic Message | |||
records quickly, after which the Executive System has no reason to keep | Accounting) records quickly, after which the Executive System has no | |||
them, and so they may be discarded. | reason to keep them, and so they may be discarded. | |||
Where the PINT Gateway and the Executive System are intimately linked, the | Where the PINT Gateway and the Executive System are intimately linked, | |||
Gateway can respond to status subscription requests that occur while a | the Gateway can respond to status subscription requests that occur while | |||
service is running. It may accept these requests and simply not even try to | a service is running. It may accept these requests and simply not even | |||
query the Executive System until it has information that a service has | try to query the Executive System until it has information that a | |||
completed, merely returning the final status. Thus the PINT Requestor may be | service has completed, merely returning the final status. Thus the PINT | |||
in what it believes is a monitoring state, whilst the PINT Gateway has not | Requestor may be in what it believes is a monitoring state, whilst the | |||
even informed the Executive System that a request has been made. This will | PINT Gateway has not even informed the Executive System that a request | |||
increase the internal complexity of the PINT Gateway in that it will have a | has been made. This will increase the internal complexity of the PINT | |||
complex set of interlocking state machines, but does mean that status | Gateway in that it will have a complex set of interlocking state | |||
registration and indication CAN be provided in conjunction with an I.N. | machines, but does mean that status registration and indication CAN be | |||
system. | provided in conjunction with an I.N. system. | |||
6.5. Parameters needed for invoking traditional GSTN Services within PINT | 6.5. Parameters needed for invoking traditional GSTN Services within | |||
PINT | ||||
This section describes how parameters needed to specify certain traditional | This section describes how parameters needed to specify certain | |||
GSTN services can be carried within PINT requests. | traditional GSTN services can be carried within PINT requests. | |||
6.5.1. Service Identifier | 6.5.1. Service Identifier | |||
When a Requesting User asks for a service to be performed, he or she will, | When a Requesting User asks for a service to be performed, he or she | |||
of course, have to specify in some way which service. This can be done | will, of course, have to specify in some way which service. This can be | |||
in the URLs within the To: header and the Request-URI (see section 3.5.5.1). | done in the URLs within the To: header and the Request-URI (see section | |||
3.5.5.1). | ||||
6.5.2. A and B parties | 6.5.2. A and B parties | |||
With the Request-to-Call service, they will also need to specify the A and B | With the Request-to-Call service, they will also need to specify the A | |||
parties they want to be engaged in the resulting service call. The A party | and B parties they want to be engaged in the resulting service call. The | |||
could identify, for example, the Call Centre from which they want a call | A party could identify, for example, the Call Center from which they | |||
back, whilst the B party is their telephone number (i.e. who the Call Centre | want a call back, whilst the B party is their telephone number (i.e. who | |||
agent is to call). | the Call Center agent is to call). | |||
The Request-to-Fax and Request-to-Hear-Content services require the B party | The Request-to-Fax and Request-to-Hear-Content services require the B | |||
to be specified (respectively the telephone number of the destination Fax | party to be specified (respectively the telephone number of the | |||
machine or the telephone to which spoken content is to be delivered), but | destination Fax machine or the telephone to which spoken content is to | |||
the A party is a Telephone Network based resource (either a Fax or speech | be delivered), but the A party is a Telephone Network based resource | |||
transcoder/sender), and is implicit; the Requesting User does not (and | (either a Fax or speech transcoder/sender), and is implicit; the | |||
cannot) specify it. | Requesting User does not (and cannot) specify it. | |||
With the "Fax-Back" variant of the Request-to-Fax service, (i.e. where the | With the "Fax-Back" variant of the Request-to-Fax service, (i.e. where | |||
content to be delivered resides on the GSTN) they will also have specify two | the content to be delivered resides on the GSTN) they will also have | |||
parties. As before, the B party is the telephone number of the fax machine | specify two parties. As before, the B party is the telephone number of | |||
to which they want a fax to be sent. However, within this variant the A | the fax machine to which they want a fax to be sent. However, within | |||
party identifies the "document context" for the GSTN-based document store | this variant the A party identifies the "document context" for the | |||
from which a particular document is to be retrieved; the analogy here is to | GSTN-based document store from which a particular document is to be | |||
a GSTN user dialling a particular telephone number and then entering the | retrieved; the analogy here is to a GSTN user dialling a particular | |||
document number to be returned using "touch tone" digits. The telephone | telephone number and then entering the document number to be returned | |||
number they dial is that of the document store or A party, with the "touch | using "touch tone" digits. The telephone number they dial is that of the | |||
tone" digits selecting the document within that store. | document store or A party, with the "touch tone" digits selecting the | |||
document within that store. | ||||
6.5.3. Other Service Parameters | 6.5.3. Other Service Parameters | |||
In terms of the extra parameters to the request, the services again differ. | In terms of the extra parameters to the request, the services again | |||
The Request-to-Call service needs only the A and B parties. Also it is | differ. The Request-to-Call service needs only the A and B parties. Also | |||
convenient to assert that the resulting service call will carry voice, as | it is convenient to assert that the resulting service call will carry | |||
the Executive System within the destination GSTN may be able to check that | voice, as the Executive System within the destination GSTN may be able | |||
assertion against the A and B party numbers specified and may treat the call | to check that assertion against the A and B party numbers specified and | |||
differently. | may treat the call differently. | |||
With the Request-to-Fax and Request-to-Hear-Content services, the source | With the Request-to-Fax and Request-to-Hear-Content services, the source | |||
information to be transcoded is held on the Internet. That means either that | information to be transcoded is held on the Internet. That means either | |||
this information is carried along with the request itself, or that a | that this information is carried along with the request itself, or that | |||
reference to the source of this information is given. In addition, it is | a reference to the source of this information is given. | |||
convenient to assert that the service call will carry fax or voice, and, | ||||
where possible, to specify the format for the source information. | ||||
The GSTN-based content or "Fax-Back" variant of the Request-to-Fax service | In addition, it is convenient to assert that the service call will carry | |||
needs to specify the Document Store number and the Fax machine number to | fax or voice, and, where possible, to specify the format for the source | |||
which the information is to be delivered. It is convenient to assert that | information. | |||
the call will carry Fax data, as the destination Executive System may be | ||||
able to check that assertion against the document store number and that of | ||||
the destination Fax machine. | ||||
In addition, the document number may also need to be sent. This parameter is | The GSTN-based content or "Fax-Back" variant of the Request-to-Fax | |||
an opaque reference that is carried through the Internet but has | service needs to specify the Document Store number and the Fax machine | |||
significance only within the GSTN. The document store number and document | number to which the information is to be delivered. It is convenient to | |||
number together uniquely specify the actual content to be faxed. | assert that the call will carry Fax data, as the destination Executive | |||
System may be able to check that assertion against the document store | ||||
number and that of the destination Fax machine. | ||||
In addition, the document number may also need to be sent. This | ||||
parameter is an opaque reference that is carried through the Internet | ||||
but has significance only within the GSTN. The document store number and | ||||
document number together uniquely specify the actual content to be | ||||
faxed. | ||||
6.5.4. Service Parameter Summary | 6.5.4. Service Parameter Summary | |||
The following table summarises the information needed in order to specify | The following table summarises the information needed in order to | |||
fully the intent of a GSTN service request. Note that it excludes any other | specify fully the intent of a GSTN service request. Note that it | |||
parameters (such as authentication or authorisation tokens, or Expires: or | excludes any other parameters (such as authentication or authorisation | |||
CallId: headers) that may be used in a request. | tokens, or Expires: or CallId: headers) that may be used in a request. | |||
Service ServiceID AParty BParty CallFmt Source SourceFmt | Service ServiceID AParty BParty CallFmt Source SourceFmt | |||
------- --------- ------ ------ ------- ------ ------- | ------- --------- ------ ------ ------- ------ ------- | |||
R2C x x x voice - - | R2C x x x voice - - | |||
R2F x - x fax URI/IL ISF/ILSF | R2F x - x fax URI/IL ISF/ILSF | |||
R2FB x x x fax OR - | R2FB x x x fax OR - | |||
R2HC x - x voice URI/IL ISF/ILSF | R2HC x - x voice URI/IL ISF/ILSF | |||
In this table, "x" means that the parameter is required, whilst "-" means | In this table, "x" means that the parameter is required, whilst "-" | |||
that the parameter is not required. | means that the parameter is not required. | |||
The Services listed are Request-to-Call (R2C), Request-to-Fax (R2F), the | The Services listed are Request-to-Call (R2C), Request-to-Fax (R2F), the | |||
GSTN-based content or "Fax-back" Variant of Request-to-Fax (R2FB), and | GSTN-based content or "Fax-back" Variant of Request-to-Fax (R2FB), and | |||
Request-to-Hear-Content (R2HC). | Request-to-Hear-Content (R2HC). | |||
The Call Format parameter values "voice" or "fax" indicate the kind of | The Call Format parameter values "voice" or "fax" indicate the kind of | |||
service call that results. | service call that results. | |||
The Source Indicator "URI/IL" implies either that the data is either an | The Source Indicator "URI/IL" implies either that the information is | |||
Internet source reference (a Universal Resource Identifier, or URI) or is | either an Internet source reference (a Universal Resource Identifier, or | |||
URI) or is carried "in-line" with the message. The Source indicator "OR" | ||||
carried "in-line" with the message. The Source indicator "OR" means that | means that the value passed is an Opaque Reference that should be | |||
the value passed is an Opaque Reference that should be carried along | carried along with the rest of the message but is to be interpreted only | |||
with the rest of the message but is to be interpreted only within the | within the destination (GSTN) context. As an alternative, it could be | |||
destination (GSTN) context. As an alternative, it could be given as a | given as a "local" reference with the "file" style, or even using a | |||
"local" reference with the "file" style, or even using a partial reference | partial reference with the "http" style. However, the way in which such | |||
with the "http" style. However, the way in which such a reference is | a reference is interpreted is a matter for the receiving PINT Server and | |||
interpreted is a matter for the receiving PINT Server and Executive System; | Executive System; it remains, in effect, an opaque reference. | |||
it remains, in effect, an opaque reference. | ||||
The Source Format value "ISF/ILSF" means that the format of the source is | The Source Format value "ISF/ILSF" means that the format of the source | |||
specified either in terms of the URI or that it is carried "in-line". Note | is specified either in terms of the URI or that it is carried "in-line". | |||
that, for some data, the format either can be detected by inspection or, if | Note that, for some data, the format either can be detected by | |||
all else fails, can be assumed from the URI (for example, by assuming that | inspection or, if all else fails, can be assumed from the URI (for | |||
the file extension part of a URL indicates the data type). For an opaque | example, by assuming that the file extension part of a URL indicates the | |||
reference, the Source Format is not available on the Internet, and so is not | data type). For an opaque reference, the Source Format is not available | |||
given. | on the Internet, and so is not given. | |||
6.6. Parameter Mapping to PINT Extensions | 6.6. Parameter Mapping to PINT Extensions | |||
This section describes the way in which the parameters needed to specify a | This section describes the way in which the parameters needed to specify | |||
GSTN service request fully might be carried within a "PINT extended" message. | a GSTN service request fully might be carried within a "PINT extended" | |||
There are other choices, and these are not precluded. However, in order to | message. There are other choices, and these are not precluded. However, | |||
ensure that the Requesting User receives the service that they expect, it is | in order to ensure that the Requesting User receives the service that | |||
necessary to have some shared understanding of the parameters passed and the | they expect, it is necessary to have some shared understanding of the | |||
behaviour expected of the PINT Server and its attendant Executive System. | parameters passed and the behaviour expected of the PINT Server and its | |||
attendant Executive System. | ||||
The Service Identifier can be sent as the userinfo element of the | The Service Identifier can be sent as the userinfo element of the | |||
Request-URI. Thus, the first line of a PINT Invitation would be of the form: | Request-URI. Thus, the first line of a PINT Invitation would be of the | |||
form: | ||||
INVITE <serviceID>@<pint-server>.<domain> SIP/2.0 | INVITE <serviceID>@<pint-server>.<domain> SIP/2.0 | |||
The A Party for the Request-to-Call and "Fax-back" variant of Request-to-Fax | The A Party for the Request-to-Call and "Fax-back" variant of | |||
service can be held in the "To:" header field. In this case the "To:" header | Request-to-Fax service can be held in the "To:" header field. In this | |||
value will be different from the Request-URI. In the services where the A | case the "To:" header value will be different from the Request-URI. In | |||
party is not specified, the "To:" field is free to repeat the value held in | the services where the A party is not specified, the "To:" field is free | |||
the Request-URI. This is the case for Request-to-Fax and | to repeat the value held in the Request-URI. This is the case for | |||
Request-to-Hear-Content services. | Request-to-Fax and Request-to-Hear-Content services. | |||
The B party is needed in all these milestone services, and can be held in | The B party is needed in all these milestone services, and can be held | |||
the enclosed SDP sub-part, as the value of the "c=" field. | in the enclosed SDP sub-part, as the value of the "c=" field. | |||
The call format parameter can be held as part of the "m=" field value. It | The call format parameter can be held as part of the "m=" field value. | |||
maps to the "transport protocol" element as described in section 3.4.2 of | It maps to the "transport protocol" element as described in section | |||
this document. | 3.4.2 of this document. | |||
..-- | ||||
The source format specifier is held in the "m=", as a type and either "-" | The source format specifier is held in the "m=", as a type and either | |||
or sub-type. The latter is normally required for all services except | "-" or sub-type. The latter is normally required for all services except | |||
Request-to-Call or "Faxback", where the "-" form may be used. As shown | Request-to-Call or "Faxback", where the "-" form may be used. As shown | |||
earlier, the source format and source are not always required when | earlier, the source format and source are not always required when | |||
generating requests for services. However, the inclusion in all requests | generating requests for services. However, the inclusion in all requests | |||
of a source format specifier can make parsing the request simpler and | of a source format specifier can make parsing the request simpler and | |||
allows for other services to be specified in the future, and so values | allows for other services to be specified in the future, and so values | |||
are always given. The source format parameter is covered in section 3.4.2 | are always given. The source format parameter is covered in section | |||
as the "media type" element. | 3.4.2 as the "media type" element. | |||
The source itself is identified by an "a=fmtp:" field value, where needed. | The source itself is identified by an "a=fmtp:" field value, where | |||
With the exception of the Request-to-Call service, all invitations will | needed. With the exception of the Request-to-Call service, all | |||
normally include such a field. From the perspective of the SDP extensions, | invitations will normally include such a field. From the perspective of | |||
it can be considered as qualifying the media sub-type, as if to say, | the SDP extensions, it can be considered as qualifying the media | |||
for example, "when I say jpeg, what I mean is the following". | sub-type, as if to say, for example, "when I say jpeg, what I mean is | |||
the following". | ||||
In summary, the parameters needed by the different services are carried in | In summary, the parameters needed by the different services are carried | |||
fields as shown in the following table: | in fields as shown in the following table: | |||
Service Svc Param PINT/SIP or SDP field used Example value | Service Svc Param PINT/SIP or SDP field used Example value | |||
------- --------- -------------------------- ------------- | ------- --------- -------------------------- ------------- | |||
R2C | R2C | |||
ServiceID: <SIP Request-URI userinfo> R2C | ServiceID: <SIP Request-URI userinfo> R2C | |||
BParty: <SIP To: field> sip:123@p.com | BParty: <SIP To: field> sip:123@p.com | |||
AParty: <SDP c= field> TN RFC2543 4567 | AParty: <SDP c= field> TN RFC2543 4567 | |||
CallFormat: <SDP transport protocol | CallFormat: <SDP transport protocol | |||
sub-field of m= field> voice | sub-field of m= field> voice | |||
skipping to change at page 51, line 50 | skipping to change at page 55, line 51 | |||
"Multipurpose Internet Mail Extensions (MIME) | "Multipurpose Internet Mail Extensions (MIME) | |||
Part Two: Media Types", | Part Two: Media Types", | |||
RFC2046, November 1996. | RFC2046, November 1996. | |||
[5] The Unicode Consortium, | [5] The Unicode Consortium, | |||
"The Unicode Standard -- Version 2.0", | "The Unicode Standard -- Version 2.0", | |||
Addison-Wesley, 1996. | Addison-Wesley, 1996. | |||
[6] ITU-T Study Group 2, | [6] ITU-T Study Group 2, | |||
"E.164 - The International Public Network Numbering Plan", | "E.164 - The International Public Network Numbering Plan", | |||
ITU-T, June 1997. | ITU-T, June 1997. | |||
[7] H. Lu et al, | [7] H. Lu et al, | |||
"Toward the PSTN/Internet Inter-Networking--Pre-PINT Implementations", | "Toward the PSTN/Internet Inter-Networking--Pre-PINT | |||
Informational RFC2458, Internet Engineering Task Force, Nov 1998. | Implementations", Informational RFC2458, | |||
Internet Engineering Task Force, Nov 1998. | ||||
[8] ITU-T Study Group XI, | [8] ITU-T Study Group XI, | |||
"Q.763 - Formats and Codes for the ISDN User Part of SS No7" | "Q.763 - Formats and Codes for the ISDN User Part of SS No7" | |||
ITU-T, August 1994. | ITU-T, August 1994. | |||
[9] T. Berners-Lee, R. Fielding, & L. Masinter, | [9] T. Berners-Lee, R. Fielding, & L. Masinter, | |||
"Uniform Resource Identifiers (URI): Generic Syntax", RFC2396, | "Uniform Resource Identifiers (URI): Generic Syntax", RFC2396, | |||
Internet Engineering Task Force, August 1998. | Internet Engineering Task Force, August 1998. | |||
[10] D. Crocker, | [10] D. Crocker, | |||
"Standard for the format of ARPA Internet text messages",RFC822, | "Standard for the format of ARPA Internet text messages",RFC822, | |||
Internet Engineering Task Force, August 1982. | Internet Engineering Task Force, August 1982. | |||
[11] ITU-T Study Group XI, | [11] ITU-T Study Group XI, | |||
"Q.1204 - IN Distributed Functional Plane Architecture", | "Q.1204 - IN Distributed Functional Plane Architecture", | |||
ITU-T, February 1994. | ITU-T, February 1994. | |||
[12] T. Dierks & C. Allen, | [12] T. Dierks & C. Allen, | |||
"The TLS Protocol Version 1.0", RFC2246, | "The TLS Protocol Version 1.0", RFC2246, | |||
Internet Engineering Task Force, January 1999. | Internet Engineering Task Force, January 1999. | |||
[13] S. Kent, R. Atkinson, | [13] S. Kent, R. Atkinson, | |||
skipping to change at page 52, line 18 | skipping to change at page 56, line 21 | |||
[11] ITU-T Study Group XI, | [11] ITU-T Study Group XI, | |||
"Q.1204 - IN Distributed Functional Plane Architecture", | "Q.1204 - IN Distributed Functional Plane Architecture", | |||
ITU-T, February 1994. | ITU-T, February 1994. | |||
[12] T. Dierks & C. Allen, | [12] T. Dierks & C. Allen, | |||
"The TLS Protocol Version 1.0", RFC2246, | "The TLS Protocol Version 1.0", RFC2246, | |||
Internet Engineering Task Force, January 1999. | Internet Engineering Task Force, January 1999. | |||
[13] S. Kent, R. Atkinson, | [13] S. Kent, R. Atkinson, | |||
"Security Architecture for the Internet Protocol", RFC2401, | "Security Architecture for the Internet Protocol", RFC2401, | |||
Internet Engineering Task Force, November 1998. | Internet Engineering Task Force, November 1998. | |||
[14] R. Housley, W. Ford, W. Polk & D. Solo, | [14] R. Housley, W. Ford, W. Polk & D. Solo, | |||
"Internet X.509 Public Key Infrastructure Certificate and CRL Profile", | "Internet X.509 Public Key Infrastructure Certificate and CRL | |||
RFC2459, Internet Engineering Task Force, January 1999. | Profile", RFC2459, | |||
Internet Engineering Task Force, January 1999. | ||||
[15] D. Crocker & P. Overall, | [15] D. Crocker & P. Overall, | |||
"Augmented BNF for Syntax Specifications: ABNF", RFC2234, | "Augmented BNF for Syntax Specifications: ABNF", RFC2234, | |||
Internet Engineering Task Force, November 1997. | Internet Engineering Task Force, November 1997. | |||
[16] D. Mills, "Network Time Protocol (version 3) specification and | [16] D. Mills, "Network Time Protocol (version 3) specification and | |||
implementation", RFC1305, Internet Engineering Task Force, March 1992. | implementation", RFC1305, Internet Engineering Task Force, | |||
March 1992. | ||||
[17] D. Eastlake, S. Crocker & J.Schiller, | [17] D. Eastlake, S. Crocker & J.Schiller, | |||
"Randomness Recommendations for Security", Informational RFC 1305, | "Randomness Recommendations for Security", Informational RFC 1305, | |||
Internet Engineering Task Force, March 1992. | Internet Engineering Task Force, March 1992. | |||
[18] P. Mockapetris, | [18] P. Mockapetris, | |||
"Domain Names - Implementation and Specification" RFC 1035, | "Domain Names - Implementation and Specification" RFC 1035, | |||
Inernet Engineering Task Force November 1987. | Inernet Engineering Task Force November 1987. | |||
[19] E. Levinson, | ||||
"The MIME Multipart/Related Content-type" RFC 2387, | ||||
Inernet Engineering Task Force August 1998. | ||||
9. Acknowledgements | 9. Acknowledgements | |||
The authors wish to thank the members of the PINT working group for | The authors wish to thank the members of the PINT working group for | |||
comments that were helpful to the preparation of this specification. | comments that were helpful to the preparation of this specification. Ian | |||
Ian Elz's comments were extremely useful to our understanding of internal | Elz's comments were extremely useful to our understanding of internal | |||
PSTN operations. The SUBSCRIBE and NOTIFY requests were first suggested | PSTN operations. The SUBSCRIBE and NOTIFY requests were first suggested | |||
by Henning Schulzrinne and Jonathan Rosenberg. Finally, thanks to Bernie | by Henning Schulzrinne and Jonathan Rosenberg. The suggestion to use | |||
an audio port of 0 to express that the phone is "on hold" (i.e. not | ||||
receiving voice) is due to Ray Zibman. Finally, thanks to Bernie | ||||
Hoeneisen for his close proofreading. | Hoeneisen for his close proofreading. | |||
Appendix A: Collected ABNF for PINT Extensions | Appendix A: Collected ABNF for PINT Extensions | |||
;; --(ABNF is specified in RFC 2234 [15]) | ;; --(ABNF is specified in RFC 2234 [15]) | |||
;; --Variations on SDP definitions | ;; --Variations on SDP definitions | |||
connection-field = ["c=" nettype space addrtype space | connection-field = ["c=" nettype space addrtype space | |||
connection-address CRLF] | connection-address CRLF] | |||
; -- this is the original definition from SDP, included for completeness | ; -- this is the original definition from SDP, included for completeness | |||
skipping to change at page 54, line 23 | skipping to change at page 58, line 23 | |||
INProto = 1* (<alpha-numeric>) | INProto = 1* (<alpha-numeric>) | |||
; -- this is the "classic" SDP protocol, defined if nettype == "IN" | ; -- this is the "classic" SDP protocol, defined if nettype == "IN" | |||
; -- alpha-numeric is as defined in SDP | ; -- alpha-numeric is as defined in SDP | |||
..-- | ..-- | |||
TNProto = ("voice"/"fax"/"pager") | TNProto = ("voice"/"fax"/"pager") | |||
; -- this is the PINT protocol, defined if nettype == "TN" | ; -- this is the PINT protocol, defined if nettype == "TN" | |||
fmt = (<subtype> / "-") | fmt = (<subtype> / "-") | |||
; -- NOTE redefined as a subset of the original SDP definition | ; -- NOTE redefined as a subset of the original SDP definition | |||
; -- subtype as defined in RFC2046, or "-". MUST be a subtype of type held | ; -- subtype as defined in RFC2046, or "-". MUST be a subtype of type | |||
held | ||||
; -- in associated media sub-field or the special value "-". | ; -- in associated media sub-field or the special value "-". | |||
attribute-fields = *("a=" attribute-list <CRLF>) | attribute-fields = *("a=" attribute-list <CRLF>) | |||
; -- redefined as a superset of the definition given in SDP | ; -- redefined as a superset of the definition given in SDP | |||
; -- CRLF is as defined in SDP | ; -- CRLF is as defined in SDP | |||
attribute-list = 1(PINT-attribute / <attribute>) | attribute-list = 1(PINT-attribute / <attribute>) | |||
; -- attribute is as defined in SDP | ; -- attribute is as defined in SDP | |||
PINT-attribute = (clir-attribute / q763-nature-attribute / | PINT-attribute = (clir-attribute / q763-nature-attribute / | |||
skipping to change at page 55, line 40 | skipping to change at page 59, line 37 | |||
tsp-attribute = tsp-tag "=" provider-domainname | tsp-attribute = tsp-tag "=" provider-domainname | |||
tsp-tag = "tsp" | tsp-tag = "tsp" | |||
provider-domainname = <domain> | provider-domainname = <domain> | |||
; -- domain is defined in RFC1035 | ; -- domain is defined in RFC1035 | |||
; -- NOTE the following is redefined relative to the normal use in SDP | ; -- NOTE the following is redefined relative to the normal use in SDP | |||
pint-fmtp-attribute = "fmtp:" <subtype> <space> resolution | pint-fmtp-attribute = "fmtp:" <subtype> <space> resolution | |||
*(<space> resolution) | *(<space> resolution) | |||
(<space> ";" 1(<attribute>) *(<space> <attribute>)) | (<space> ";" 1(<attribute>) *(<space> | |||
<attribute>)) | ||||
; -- subtype as defined in RFC2046. | ; -- subtype as defined in RFC2046. | |||
; -- NOTE that this value MUST match a fmt on the ultimately preceeding | ; -- NOTE that this value MUST match a fmt on the ultimately preceeding | |||
; -- media-field | ; -- media-field | |||
; -- attribute is as defined in SDP | ; -- attribute is as defined in SDP | |||
resolution = (uri-ref / opaque-ref / sub-part-ref) | resolution = (uri-ref / opaque-ref / sub-part-ref) | |||
uri-ref = uri-tag ":" <URI-Reference> | uri-ref = uri-tag ":" <URI-Reference> | |||
; -- URI-Reference defined in RFC2396 | ; -- URI-Reference defined in RFC2396 | |||
skipping to change at page 58, line 9 | skipping to change at page 61, line 9 | |||
; -- NOTE this is redefined as a subset of the SIP definition | ; -- NOTE this is redefined as a subset of the SIP definition | |||
; -- (from RFC2543/section 6.30) | ; -- (from RFC2543/section 6.30) | |||
required-extensions = ("org.ietf.sip.subscribe" / | required-extensions = ("org.ietf.sip.subscribe" / | |||
"org.ietf.sdp.require") | "org.ietf.sdp.require") | |||
Appendix B: IANA Considerations | Appendix B: IANA Considerations | |||
There are three kinds of identifier used in PINT extensions that SHOULD | There are three kinds of identifier used in PINT extensions that SHOULD | |||
be registered with IANA, if a new value is specified. These are: | be registered with IANA, if a new value is specified. These are: | |||
* Media Format sub-types, as described in section 3.4.2 of this document. | * Media Format sub-types, as described in section 3.4.2 of this | |||
document. | ||||
* Private Attributes as mentioned in section 3.4.3 | * Private Attributes as mentioned in section 3.4.3 | |||
* Private Phone Context values, as described in section 3.4.3.1. | * Private Phone Context values, as described in section 3.4.3.1. | |||
It should be noted that private Address Types (in section 3.4.1) have been | It should be noted that private Address Types (in section 3.4.1) have | |||
explicitly excluded from this process, as they must be in the form of | been explicitly excluded from this process, as they must be in the form | |||
an X-Token. | of an X-Token. | |||
B.1. Media Format Sub-types | B.1. Media Format Sub-types | |||
Taking these in turn, the media format sub-types are used within the PINT | Taking these in turn, the media format sub-types are used within the | |||
extensions to SDP to specify the attribute line that holds the data source | PINT extensions to SDP to specify the attribute line that holds the data | |||
definitions. In normal use, the values in this field are sub-types of MIME | source definitions. In normal use, the values in this field are | |||
discrete types[4]. If a value other than an IANA-registered sub-type is to | sub-types of MIME discrete types[4]. If a value other than an | |||
be used, then it should either be an X-Token (i.e. start with "X-") or it | IANA-registered sub-type is to be used, then it should either be an | |||
should be registered with IANA. if the intention is to describe a new MIME | X-Token (i.e. start with "X-") or it should be registered with IANA. if | |||
sub-type, then the procedures specified in RFC 2048 should be used. It is | the intention is to describe a new MIME sub-type, then the procedures | |||
ASSUMED that any new MIME sub-type would follow the syntactic rules for | specified in RFC 2048 should be used. It is ASSUMED that any new MIME | |||
interpretation of associated PINT fmtp lines defined in this document. | sub-type would follow the syntactic rules for interpretation of | |||
associated PINT fmtp lines defined in this document. | ||||
Note that, in keeping with the SDP description, such registrations SHOULD | Note that, in keeping with the SDP description, such registrations | |||
include the "proto" field values within which they are defined; however, it | SHOULD include the "proto" field values within which they are defined; | |||
is appropriate to specify only that they can be used with "all values of | however, it is appropriate to specify only that they can be used with | |||
TNProto". | "all values of TNProto". | |||
Conversely, if the intent is to define a new way of including data source | Conversely, if the intent is to define a new way of including data | |||
definitions within PINT, then it will be necessary to specify, in the | source definitions within PINT, then it will be necessary to specify, in | |||
documentation supporting any such new "PINT Media Format Sub-type" | the documentation supporting any such new "PINT Media Format Sub-type" | |||
registration, the syntax of the associated "fmtp" attribute line, as | registration, the syntax of the associated "fmtp" attribute line, as the | |||
the identifier serves to indicate the interpretation that should be made | identifier serves to indicate the interpretation that should be made of | |||
of format specific attribute lines "tagged" with with such a sub-type. | format specific attribute lines "tagged" with with such a sub-type. | |||
If the fmtp interpretation follows the PINT default, then it is adequate | If the fmtp interpretation follows the PINT default, then it is adequate | |||
to mention this in the defining document rather than repeating the syntax | to mention this in the defining document rather than repeating the | |||
definition given here (although, in this case, it is unclear why such a new | syntax definition given here (although, in this case, it is unclear why | |||
registration would be required). As before, the Media Format sub-type SHOULD | such a new registration would be required). As before, the Media Format | |||
specify the values of "proto" field within which it is defined, but this can | sub-type SHOULD specify the values of "proto" field within which it is | |||
be "all values of TNProto". | defined, but this can be "all values of TNProto". | |||
B.2. Private Attributes | B.2. Private Attributes | |||
Any proprietary attribute lines that are added may be registered with IANA | Any proprietary attribute lines that are added may be registered with | |||
using the procedures mentioned in [2]; the mechanism is the same as that | IANA using the procedures mentioned in [2]; the mechanism is the same as | |||
used in SDP. If the attribute is defined for use only within PINT, then it | that used in SDP. If the attribute is defined for use only within PINT, | |||
may be approapriate to mention this in the supporting documentation. Note | then it may be approapriate to mention this in the supporting | |||
that, in the PINT 1.0 specification covered here, there is no mechanism to | documentation. Note that, in the PINT 1.0 specification covered here, | |||
add such freshly registered attribute lines to a "require:" clause. | there is no mechanism to add such freshly registered attribute lines to | |||
a "require:" clause. | ||||
B.3. Private phone-contexts | B.3. Private phone-contexts | |||
Within the session description used for PINT requests, a phone-context | Within the session description used for PINT requests, a phone-context | |||
attribute may be used to specify the prefix or context within which an | attribute may be used to specify the prefix or context within which an | |||
associated telephone-number (in a connextion line) should be interpreted. | associated telephone-number (in a connextion line) should be | |||
interpreted. | ||||
For "public" phone contexts the prefix to be used MUST start with either | For "public" phone contexts the prefix to be used MUST start with either | |||
a DIGIT or a "+". Private phone contexts may be registered with IANA that | a DIGIT or a "+". Private phone contexts may be registered with IANA | |||
do NOT start with either of these characters. Such a prefix may be useful | that do NOT start with either of these characters. Such a prefix may be | |||
to identify a private network, potentially with an associated numeric ID | useful to identify a private network, potentially with an associated | |||
(see example 4 in section 3.4.3.1). In the example, the prefix acts as | numeric ID (see example 4 in section 3.4.3.1). In the example, the | |||
the context for X-acme.com's private network numbering plan. | prefix acts as the context for X-acme.com's private network numbering | |||
plan. | ||||
It is recommended that any private context to be registered have the general | It is recommended that any private context to be registered have the | |||
form of a token including a domain name, optionally followed by a digit string | general form of a token including a domain name, optionally followed by | |||
or other token. The appropriate form of the initial token name space will be | a digit string or other token. The appropriate form of the initial token | |||
similar to that used for private or vendor registrations for sub-types | name space will be similar to that used for private or vendor | |||
(e.g. vnd.acme.com). However, note that the registration will be used to | registrations for sub-types (e.g. vnd.acme.com). However, note that the | |||
specify a customer's private network numbering plan format rather than being | registration will be used to specify a customer's private network | |||
used generally for all of their equipment vendor's customer's; thus, fbi.gov | numbering plan format rather than being used generally for all of their | |||
would be appropriate, but lucent.com would not (unless the private network | equipment vendor's customer's; thus, fbi.gov would be appropriate, but | |||
were to be that used by Lucent internally). | lucent.com would not (unless the private network were to be that used by | |||
Lucent internally). | ||||
In addition, the supporting documentation MUST either declare that there is | In addition, the supporting documentation MUST either declare that there | |||
no associated token, or define the syntax by which that token can be parsed | is no associated token, or define the syntax by which that token can be | |||
(e.g. vnd.fbi.gov <space> 1*DIGIT). Note that the registration describes a | parsed (e.g. vnd.fbi.gov <space> 1*DIGIT). Note that the registration | |||
format, not a value range; it is sufficient that the private context can be | describes a format, not a value range; it is sufficient that the private | |||
parsed, without the value being interpreted. | context can be parsed, without the value being interpreted. | |||
In detail, the registration request should include: | In detail, the registration request SHOULD include: | |||
* Kind of registration (i.e. private phone-context attribute to be used | * Kind of registration (i.e. private phone-context attribute to be | |||
within the service description of PINT service requests) | used within the service description of PINT service requests) | |||
* Contact details for the person responsible for the registration request | * Contact details for the person responsible for the registration | |||
(name, organisation, e-mail address, public telephone number) | request (name, organisation, e-mail address, public telephone | |||
number) | ||||
* Private Prefix initial token name (e.g. vnd.fbi.gov) | * Private Prefix initial token name (e.g. vnd.fbi.gov) | |||
* syntax for private context (e.g. "vnd.fbi.gov" <space> 1*DIGIT, or | * syntax for private context (e.g. "vnd.fbi.gov" <space> 1*DIGIT, or | |||
"vnd.gtn.gov.uk") | "vnd.gtn.gov.uk") | |||
* Description of use (e.g. "This phone context declares an associated | * Description of use (e.g. "This phone context declares an associated | |||
telephone number to be within the 'government telecommunications | telephone number to be within the 'government telecommunications | |||
network'; the number is in an internal or private number plan form) | network'; the number is in an internal or private number plan form) | |||
* Network Type and Address Type with which this private context is | * Network Type and Address Type with which this private context is | |||
associated; If the "normal" telephone types (as specified in this | associated; If the "normal" telephone types (as specified in this | |||
document) are used, then the values would be shown as: | document) are used, then the values would be shown as: | |||
"nettype=TN" , addrtype="RFC2543Addr". If, however, this context were | "nettype=TN" , addrtype="RFC2543Addr". If, however, this context | |||
to be used with another address type, then a reference to that | were to be used with another address type, then a reference to that | |||
address type name and the syntax of that address value would be required. | address type name and the syntax of that address value would be | |||
required. | ||||
In short, this context is the telephone equivalent of a "Net 10" address | In short, this context is the telephone equivalent of a "Net 10" address | |||
space behind a NAT, and the initial name (and contact information) shows | space behind a NAT, and the initial name (and contact information) shows | |||
the context within which that address is valid. It also specifies the format | the context within which that address is valid. It also specifies the | |||
for the network and address types (and address value syntax) with which this | format for the network and address types (and address value syntax) with | |||
context is associated. | which this context is associated. | |||
Of course, IANA may refer the requested registration to the IESG or an | Of course, IANA may refer the requested registration to the IESG or an | |||
appropriate IETF working group for review, and may require revisions to be | appropriate IETF working group for review, and may require revisions to | |||
made before the registration is accepted. | be made before the registration is accepted. | |||
Appendix C: Author's Addresses | Appendix C: Author's Addresses | |||
Scott Petrack | Scott Petrack | |||
MetaTel, Inc. | MetaTel, Inc. | |||
284 North Ave. | 35 Rumford Avd. | |||
Weston, MA 02493 | Waltham, MA 02453 | |||
scott.petrack@metatel.com | scott.petrack@metatel.com | |||
+1 (781)-891-9000 | +1 (781)-891-9000 | |||
Lawrence Conroy | Lawrence Conroy | |||
Siemens Roke Manor Research | Siemens Roke Manor Research | |||
Roke Manor | Roke Manor | |||
Old Salisbury Lane | Old Salisbury Lane | |||
Romsey, Hampshire | Romsey, Hampshire | |||
U.K. SO51 0ZN | U.K. SO51 0ZN | |||
lwc@roke.co.uk | lwc@roke.co.uk | |||
+44 (1794) 833666 | +44 (1794) 833666 | |||
Petrack & Conroy [Page 63] | ||||
End of changes. 344 change blocks. | ||||
1451 lines changed or deleted | 1619 lines changed or added | |||
This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |