Implementations of the RUE interface
MUST conform to the following core SIP standards:
In the above documents, the RUE device conforms to the requirements of a SIP user agent, and the provider conforms to the requirements of the registrar and proxy server where the document specifies different behavior for different roles. For providers offering a video mail service, [
RFC 6665] (SIP Events)
MUST be implemented to support the Message-Waiting Indicator (MWI) (see
Section 8).
In addition, implementations
MUST conform to:
Implementations
MUST implement full ICE, although they
MAY interwork with user agents that implement ICE-lite.
Implementations
MUST include a "User-Agent" header field uniquely identifying the RUE application, platform, and version in all SIP requests and
MUST include a "Server" header field with the same content in SIP responses.
Implementations intended to support mobile platforms
MUST support [
RFC 8599] and
MUST use it as at least one way to support waking up the client from the background state.
The SIP signaling for registration and placing/receiving calls depends on the configuration of various values into the RUE device.
Section 9.2 describes the configuration mechanism that provides values that are used in the signaling. When the device starts, the configuration mechanism is run, which retrieves the configuration data; then, SIP registration occurs using the values from the configuration. After registration, calls may be sent or received by the RUE device.
The RUE
MUST register with a SIP registrar, following [
RFC 3261] and [
RFC 5626], at a provider it has an account with. If the configuration (see
Section 9.2) contains multiple "outbound-proxies" in "RueConfigurationData", then the RUE
MUST use them as specified in [
RFC 5626] to establish multiple flows.
The Request-URI for the REGISTER request
MUST contain the "provider-domain" from the configuration. The To URI and From URI
MUST be identical URIs and formatted as follows:
-
if "user-name" is provided: "username@provider-domain"
-
if "user-name" is not provided: as specified in Section 5.4, use "phone-number" and "provider-domain" from the configuration
The RUE determines the URI to resolve by initially determining if one or more "outbound-proxies" are configured. If they are configured, the URI will be that of one of the "outbound-proxies". If no "outbound-proxies" are configured, the URI will be the Request-URI from the REGISTER request. The RUE extracts the domain from that URI and consults the DNS record for that domain. The DNS entry
MUST contain NAPTR records conforming to [
RFC 3263]. One of those NAPTR records
MUST specify TLS as the preferred transport for SIP. For example, a DNS NAPTR query for "sip: p1.red.example.net" could return:
IN NAPTR 50 50 "s" "SIPS+D2T" "" _sips._tcp.p1.red.example.net
IN NAPTR 90 50 "s" "SIP+D2T" "" _sip._tcp.p1.red.example.net
If the RUE receives a 439 (First Hop Lacks Outbound Support) response to a REGISTER request, it
MUST reattempt registration without using the outbound mechanism.
The registrar
MAY authenticate the RUE using SIP digest authentication. The credentials to be used
MUST come from the configuration in
Section 9.2: "user-name" if provided or "phone-number" if user-name is not provided, and "sip-password". This "user-name"/"sip-password" combination
SHOULD NOT be the same as that used for other purposes, except as expressly described below, such as retrieving the RUE configuration or logging into the provider's customer service portal. [
RFC 8760]
MUST be supported by all implementations, and SHA-512 digest algorithms
MUST be supported.
If the registration request fails with an indication that credentials from the configuration are invalid, then the RUE
MUST retrieve a fresh version of the configuration. If credentials from a freshly retrieved configuration are found to be invalid, then the RUE
MUST cease attempts to register and inform the RUE user of the problem.
Support for multiple simultaneous registrations with multiple providers by the RUE is
OPTIONAL for the RUE (and providers do not need any support for this option).
Multiple simultaneous RUE SIP registrations from different RUE devices with the same SIP URI
SHOULD be permitted by the provider. The provider
MAY limit the total number of simultaneous registrations. When a new registration request is received that results in exceeding the limit on simultaneous registrations, the provider
MAY then prematurely terminate another registration; however, it
SHOULD NOT do this if it would disconnect an active call.
If a provider prematurely terminates a registration to reduce the total number of concurrent registrations with the same URI, it
SHOULD take some action to prevent the affected RUE from automatically re-registering and re-triggering the condition.
After initial SIP registration, the RUE adheres to SIP [
RFC 3261] basic call flows, as documented in [
RFC 3665].
A RUE device
MUST route all outbound calls through an outbound proxy if configured.
The SIP URIs in the To field and the Request-URI
MUST be formatted as specified in
Section 5.4 using the destination phone number or as SIP URIs as provided in the configuration (
Section 9.2). The domain field of the URIs
SHOULD be the "provider-domain" from the configuration (e.g., sip:+15551234567@red.example.com;user=phone), except that an anonymous call would not use the provider domain.
Anonymous calls
MUST be supported by all implementations. An anonymous call is signaled per [
RFC 3323].
The From URI
MUST be formatted as specified in
Section 5.4, using the "phone-number" and "provider-domain" from the configuration. It
SHOULD also contain the display-name from the configuration when present. (Please refer to
Section 9.2.)
Negotiated media
MUST follow the requirements specified in
Section 6 of this document.
To allow time for an unanswered call to time out and direct it to a videomail server, the User Agent Client
MUST NOT impose a time limit less than the default SIP INVITE transaction timeout of 3 minutes.
Providers and RUE devices
MUST support both one-stage and two-stage dial-around.
Outbound dial-around calls allow a RUE user to select any provider to provide interpreting services for any call. "Two-stage" dial-around calls involve the RUE calling a telephone number that reaches the dial-around provider and using signing or dual-tone multi-frequency (DTMF) to provide the called party's telephone number. In two-stage dial-around, the To URI is the "front-door" URI (see
Section 9.2) in "ProviderConfigurationData" of the dial-around provider. The RUE Provider Selection service (
Section 9.1) can be used by the RUE to obtain a list of providers; then, the provider configuration (
Section 9.2.1) can be used to find the front-door URI for each of these providers.
One-stage dial-around is a method where the called party's telephone number is provided in the To URI and the Request-URI, using the domain of the dial-around provider.
For one-stage dial-around, the RUE
MUST follow the procedures in
Section 5.2.1 with the following exception: the domain part of the SIP URIs in the To field and the Request-URI
MUST be the domain of the dial-around provider discovered as described in
Section 9.1.
The following is a partial example of a one-stage dial-around call from VRS user +1-555-222-0001 hosted by red.example.com to a hearing user +1-555-123-4567 using dial-around to green.example.com for the relay service. Only important details of the messages are shown, and many header fields have been omitted:
,-+-. ,----+----. ,-----+-----.
|RUE| |Default | |Dial-Around|
| | |Provider | | Provider |
`-+-' `----+----' `-----+-----'
| | |
| [1] INVITE | |
|-------------->| [2] INVITE |
| |-------------->|
Message Details:
[1] INVITE Rue -> Default Provider
INVITE sip:+15551234567@green.example.net;user=phone SIP/2.0
To: <sip:+15551234567@green.example.net;user=phone>
From: "Bob Smith" <sip:+15552220001@red.example.net;user=phone>
[2] INVITE Default Provider -> Dial-Around Provider
INVITE sip:+15551234567@green.example.net;user=phone SIP/2.0
To: <sip:+15551234567@green.example.net;user=phone>
From: "Bob Smith" sip:+15552220001@red.example.net;user=phone
P-Asserted-Identity: sip:+15552220001@red.example.net
To identify the owner of a RUE, the initial INVITE for a call from a RUE, or the 200 OK the RUE uses to accept a call, identifies the owner by sending a Call-Info header field with a purpose parameter of "rue-owner". The URI
MAY be an HTTPS URI or Content-ID URL. The latter is defined by [
RFC 2392] to locate message body parts. This URI type is present in a SIP message to convey the RUE ownership information as a MIME body. The form of the RUE ownership information is an xCard [
RFC 6351]. Please refer to [
RFC 6442] for an example of using content indirection URLs in SIP messages. Note that use of the content indirection URL usually implies multiple message bodies ("mime/multipart"). The RUE owner is the entity that has local control over the device that is not necessarily the legal owner of the equipment. It often is the user, but that is not necessarily true. While no minimum fields in the xCard are specified, the name, address, phone number, and email address of the RUE owner are expected to be supplied.
The RUE
MUST only accept inbound calls sent to it by a proxy mentioned in the configuration.
If multiple simultaneous RUE SIP registrations from different RUE devices with the same SIP URI exist, the provider
MUST parallel fork the call to all registered RUEs so that they ring at the same time. The first RUE to reply with a 200 OK answers the call, and the provider
MUST cancel other call branches using a CANCEL request.
Implementations
MUST conform to [
RFC 6881] for handling of emergency calls, except that if the device is unable to determine its own location, it
MAY send the emergency call without a Geolocation header field and without a Route header field (since it would be unable to query the Location-to-Service Translation (LoST) server for a route, per [
RFC 6881]). If an emergency call arrives at the provider without a Geolocation header field, the provider
MUST supply location by adding the Geolocation header field and
MUST supply the route by querying the LoST server with that location.
If the emergency call is to be handled using existing country-specific procedures, the provider is responsible for modifying the INVITE to conform to the country-specific requirements. In this case, the location
MAY be extracted from the [
RFC 6881] conformant INVITE and used to propagate it to the appropriate country-specific entities. If the configuration specifies it, an implementation of a RUE device
MAY send a Geolocation header field containing its location in the REGISTER request. If implemented, users
MUST be offered an opt-out. Country-specific procedures might require the location to be preloaded in some entity prior to placing an emergency call; however, the RUE may have a more accurate and timely device location than the manual, preloaded entry. That information
MAY be used to populate the location to appropriate country-specific entities. Re-registration
SHOULD be used to update the location, so long as the rate of re-registration is limited if the device is moving.
Implementations
MUST implement additional data [
RFC 7852]. RUE devices
MUST implement data provider information, device information, and owner/subscriber information blocks.
Implementations
MUST support re-INVITE to renegotiate media session parameters (among other uses). Per
Section 6.8, implementations
MUST be able to support an INFO message for full frame refresh for devices that do not support SRTCP (please refer to
Section 6.1). Implementations
MUST support an in-dialog REFER (as described in [
RFC 3515] and updated by [
RFC 7647], and including support for norefersub per [
RFC 4488]) with the Replaces header field [
RFC 3891] to enable call transfer.
SIP URIs constructed from non-URI sources (dial strings) and sent to SIP proxies by the RUE
MUST be represented as follows, depending on whether they can be represented as an E.164 number. In this section, "expressed as an E.164 number" includes numbers, such as toll-free numbers that are not actually E.164 numbers but have the same format.
A dial string that can be expressed as an E.164 phone number
MUST be represented as a SIP URI with a URI ";user=phone" tag. The user part of the URI
MUST be in conformance with "global-number", as defined in [
RFC 3966]. The user part
MUST NOT contain any "visual-separator" characters, as defined in [
RFC 3966].
Dial strings that cannot be expressed as E.164 numbers
MUST be represented as dialstring URIs, as specified by [
RFC 4967], e.g., sip:411@red.example.net;user=dialstring.
The domain part of relay service URIs and User Address of Records (AoR)
MUST resolve (per [
RFC 3263]) to globally routable IPv4 and/or IPv6 addresses.
Implementations
MUST conform to [
RFC 8835], except for its guidance on the WebRTC data channel, which this specification does not use. See
Section 6.2 for how RUE supports real-time text without the data channel.
Implementations
MUST support SIP outbound [
RFC 5626] (please also refer to
Section 5.1).