Jump to: navigation, search

Specifications and Standards

This topic describes the specifications and standards that Genesys Voice Platform supports.

Specifications

The following specifications are published and maintained by the W3C Voice Browser Working Group:

  • VoiceXML Specification W3C Voice Extensible Markup Language (VoiceXML) 2.1, W3C Recommendation 19 June 2007 and W3C Voice Extensible Markup Language (VoiceXML) 2.0, W3C Recommendation 16 March 2004.
  • Media Resource Control Protocol (MRCP) Specification Requirements for Distributed Control of Automatic Speech Recognition (ASR) Speaker Identification/Speech Verification (SI/SV), and Text-to-Speech (TTS) Resources (2005). MRCP version 1(MRCPv1) (2006).
  • Speech Synthesis Markup Language Specification W3C Speech Synthesis Markup Language (SSML) Version 1.0, Recommendation, 7 September 2004.
  • Speech Recognition Grammar Specification Speech Recognition Grammar Specification Version 1.0, W3C Recommendation, 16 March 2004.
  • Semantic Interpretation for Speech Recognition Semantic Interpretation for Speech Recognition (SISR) Version 1.0, W3C Recommendation, 5 April 2007.
  • CCXML Specification W3C Voice Browser Call Control: CCXML Version 1.0, W3C Working Draft, 29 June 2005.
  • Media Control Platform (MCP) uses the SpiderMonkey 1.7 engine to perform ECMAScript (JavaScript) processing. SpiderMonkey 1.7 supports ECMA-262 3rd edition.

The following specifications and recommendations are published and maintained by the International Telecommunications Union, Telecommunication Standardization Sector (ITU-T):

  • I.431 Specification Layer 1 specifications for ISDN PRI networks using either an E1 or T1 circuit. The I.431 standard represents the PRI physical layer.
  • Q931 Recommendation ISDN user-network interface layer 3 specification for basic call control.

Related Standards

GVP is based on open standards. As a result, the platform provides complete or subset support for many Requests for Comments (RFCs) that the Internet Engineering Task Force (IETF) publishes and maintains. For more information, see http://www.ietf.org.

The IETF standards that GVP supports include the following:

  • RFC 1738 Uniform Resource Locators.
  • RFC 1808 Relative Uniform Resource Locators.
  • RFC 1867 Form-Based File Upload in HTML.
  • RFC 2046 Multipurpose Internet Mail Extensions (MIME), Part Two: Media Types.
  • RFC 2109 HTTP State Management Mechanism.
  • RFC 2190 RTP Payload Format for H.263 Video Streams.
  • RFC 2388 Returning Values from Forms: Multipart/Form-Data.
  • RFC 2326 Real Time Streaming Protocol (RTSP).
  • RFC 2327 SDP: Session Description Protocol.
  • RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax.
  • RFC 2429 RTP Payload Format for the 1998 Version of ITU-T Rec. H.263 Video (H263+).
  • RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers.
  • RFC 2616 Hypertext Transfer Protocol HTTP/1.1 (subset).
  • RFC 2782 A DNS RR for specifying the location of services (DNS SRV).
  • RFC 2806 URLs for Telephone Calls.
  • RFC 2833 RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals.
  • RFC 2964 Use of HTTP State Management.
  • RFC 2965 HTTP State Management Mechanism.
  • RFC 2976 The SIP INFO Method.
  • RFC 3023 XML Media Types.
  • RFC 3261 SIP: Session Initiation Protocol.
  • RFC 3262 Reliability of Provisional Responses in the Session Internet Protocol (SIP).
  • RFC 3263 Session Initiation Protocol (SIP): Locating a SIP Server.
  • RFC 3264 An Offer/Answer Model with the Session Description Protocol (SDP).
  • RFC 3265 SIP-Specific Event Notification.
  • RFC 3266 Support for IPv6 in Session Description Protocol (SDP).
  • RFC 3267 Real-Time Transport Protocol (RTP) Payload Format and File Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs.
  • RFC 3323 A Privacy Mechanism for the Session Internet Protocol (SIP)
  • RFC 3325 Private Extensions for the Session Internet Protocol (SIP) for Asserted Identity within Trusted Networks.
  • RFC 3326 The Reason Header Field for the Session Internet Protocol (SIP).
  • RFC 3455 Private Header (P-Header) Extensions to SIP.
  • RFC 3515 The SIP REFER Method.
  • RFC 3550 RTP A Transport Protocol for Real-Time Applications.
  • RFC 3581 An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing.
  • RFC 3611 RTP Control Protocol Extended Reports (RTCP XR)
  • RFC 3624 The Media Gateway Control Protocol (MGCP) Bulk Audit Package.
  • RFC 3711 The Secure Real-Time Protocol (SRTP).
    Notes:
    • Some options in the SRTP specification are not supported, including: the Master Key Index (MKI), key derivation rates other than zero, the cipher F8, anti-replay lists with sizes other than 128, and the use of the packet index to select between master keys.
    • Media Server (MS) does not support the FEC_ORDER and FEC_KEY session parameters.
      …where FEC stands for Forward Error Correction. Refer to Section 6 of RFC 4568 for details.
    • MS ignores the WSH (Window Size Hint) parameter and assumes a value of 128.
    • MS supports only the default master key lifetime.
    • MS rejects the media line containing crypto: attribute if the RTP profile signaled (specified?) is not RTP/SAVP.
    • MS rejects the media line if the keying method is not inline: (the only keying method that is specified in RFC 4568).
  • RFC 3891 The Session Internet Protocol (SIP) Replaces Header.
  • RFC 3892 The Session Initiation Protocol (SIP) Referred-By Mechanism.
  • RFC 3984 RTP Payload Format for H.264 Video.
  • RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.
  • RFC 4028 Session Timers in the Session Initiation Protocol (SIP).
  • RFC 4240 Basic Network Media Services with SIP GVP provides support for conference services and dialogs.
  • RFC 4244 An Extension to the Session Internet Protocol (SIP) for Request History Information.
  • RFC 4463 Media Resource Control Protocol (MRCP) for client control of media resources, such as ASR and TTS.
  • RFC 4566 SDP: Session Description Protocol.
  • RFC 4568 Session Description Protocol (SDP) Security descriptions for media streams.
  • RFC 4733 RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals.
  • RFC 4753 Elliptic Curve Project (ECP) Groups for Internet Key Exchange (IKE) and IKEv2.
  • RFC 4867 RTP Payload Format and File Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codes.
  • RFC 5168 XML Schema for Media Control.
  • RFC 5552 SIP Interface to VoiceXML Media Services.
  • RFC 5707 Media Server Markup Language (MSML).
  • Most extensions from the proposed IETF draft SIP Interface to SIP Interface to VoiceXML Media Services. See RFC 5552 Support, below.

The platform also includes complete support for many network-related protocols and other protocols (for example, TCP/IP and SNMP). Contact Genesys for more information.

RFC 5552 Support

This section describes various aspects of RFC 5552 (previously named Burke Draft) and features of the RFC 5552 that GVP 9.0 supports.

RFC 5552 describes the Session Initiation Protocol (SIP) interface to VoiceXML media services. This section covers the following RFC 5552 sections:

The table below lists and describes RFC 5552 requirements, as well as the ones that GVP 9.0 supports:

Table 54: RFC 5552 Support Requirements, by Section
Section Requirement Current Support
VoiceXML session establishment and termination
2.1 Support for the following service-identification parameters:
  • voicexml
  • maxage [RFC2161]
  • maxstale [RFC2616]
  • method
  • postbody
  • ccxml [RFC4627]
  • aai [RFC4627]
Supported
Support for incorrectly formed requests with the 4xx class response. Not supported
Support for repeated init-parameters that are rejected with the 400 Bad Request response. Supported
Support for parameter URL-encoding. Supported
2.2 Support for 100 Trying, followed by a 200 OK response upon receipt of an INVITE request when a document has been fetched. After the ACK is received, the application executes. Supported
Support for optimization before sending the 200 OK response. Not supported
Support for the inability to accept INVITE requests, and to respond as defined by [RFC3261], with the exception of the following error conditions:
  • If the request does not conform to the specification, return a 400 Bad Request response.
  • If the request does not include a voicexml parameter, and the default page is not configured, return a 400 Bad Request and a 399 Warning header.
Supported
  • If the Request-URI does not include a voicexml parameter, and the VoiceXML Media Server does not elect to use a default page, the VoiceXML Media Server must return a final response of 400 Bad Request, and it should include a Warning header that contains a three-digit code of 399 and a human-readable error message.
  • If the VoiceXML document cannot be fetched or parsed, the VoiceXML Media Server must return a final response of 500 Server Internal Error and should include a Warning header that contains a three-digit code of 399 and a human-readable error message.
Not supported
Support for returning a 500 Server Internal Error with a 399 Warning header if the document cannot be fetched or parsed. Supported
Support for large transport appropriate messages (such as TCP) when an INVITE request exceeds the MTU of the underlying network. Supported
2.3 Support for not exiting a VoiceXML application until a re-INVITE request with port information is sent, if any of the following conditions are met: starting a Dialog-INVITE request without media; a 200 OK with offered media; an ACK with media, but the media ports are set to zero (0); or an INVITE request with SDP without media lines, followed by a regular INVITE, 200 OK, or ACK flow. Supported
Support for a re-INVITE request that disables media stream without affecting the executing VoiceXML application when the application is running. Supported
2.4 Support for the following session variables:
  • session.connection.local.uri
  • session.conection.remote.uri
  • session.connection.redirect
  • session.connection.protocol.sip.headers
  • session.connection.aai
  • session.connection.ccxml
Supported
Support for evaluating the following session variables:
  • session.connection.protocol.name to sip
  • session.connection.protocol.version to 2.0
Supported
Support for use of the session.connection.protocol.sip.requesturi variable as an associative array that is formed from the URI parameters. Supported
Support for use of the session.connection.protocol.sip.media variable as an array, where each array element is an object that has the INSERT_TEXTfollowing properties:
  • type.
  • direction.
  • format.

This parameter will be updated as the media values that are involved in the session change.

Supported
2.5 Support for sending a 200 OK message in response to a BYE request, and then generating a connection.disconnect.hangup event. Supported
Support for providing the value of the Reason header verbatim through the _message variable if a Reason header [RFC3326] is present in the BYE request.

Note: Set sip.in.bye.headers to Reason.

Supported
Support for terminating a session with a BYE request when the VoiceXML application encounters a <disconnect> or <exit> message, the VoiceXML application completes, or the VoiceXML application has unhandled errors. Supported

Media support

3.1 Support for the Offer/Answer mechanism of [RFC3960]. Supported
3.2 Support for early media streams, as described in [RFC3960]. Supported
3.3 Support for the use of a re-INVITE request to modify a media session. Supported
3.4 Support for the following codecs:
  • G.711 u-law and A-law using the RTP payload type 0 and 8 Set mpc.codec to pcmu pcma.
  • G722 to convert audio signals to uniform digital signals Set mpc.codec to g722.
  • H.263 Baseline Set mpc.codec to h263.
  • H 264 Baseline Set mpc.codec to h264.
  • AMR-NB audio Set mpc.codec to amr.
  • AMR-WB audio Set mpc.codec to amr-wb.
  • Other codecs and payload formats Set mpc.codec, as specified for the various codecs.
Supported
Support for the following codecs:
  • MPEG-4 video
  • MPEG-4 AAC audio
Not supported
3.5 Support for DTMF events [RFC4733]. Supported

Returning Data to the Application Server

4.1 Support for returning data to the application server with an HTTP Post by using the <submit>, <subdialog>, or <data>

elements.

Supported
4.2 Support for returning data to the application server by using the SIP expression or namelist attribute on the <exit> element, or the namelist attribute on the <disconnect> element. Supported
Support for encoding the expr or the namelist data in the BYE request body when encountering the <exit> or <disconnect> element. Supported
Support for including the expr or the namelist data in the 200 OK response to a BYE request. Not supported
Support for sending a 100 Trying response to a BYE request [RFC4320]. Not supported
Support for use of the _reason reserved name to differentiate between a BYE result from a <disconnect> element and a BYE result from an <exit> element. For example, _reason = exit. Supported
Support for use of the _exit reserved name if the expr attribute is specified on the <exit> element, instead of the namelist attribute. For example, _exit=<value>. Supported

Outbound calling

5.0 Support for triggering outbound calls by using third-party call control [RFC3725]. Supported

Call transfer

6.1 Support for blind transfers with a REFER message on the original SIP dialog [RFC3515].

Note: Set sip.defaultblindxfer to REFER.

Supported
Support for terminating the session with a BYE message and generating the connection.disconnect.transfer event if a REFER request is accepted with a 2xx response. Supported
Support for the following form item variables and events, depending on the SIP response if the REFER is accepted with a non-2xx response:
  • 404 Not Found = error.connection.baddestination.
  • 405 Method Not Allowed = error.unsupported.transfer.blind.
  • 503 Service Unavailable = error.connection.noresource.
  • (No response) = network_busy.
  • (Other 3xx/4xx/5xx/6xx) = unknown.
Supported
Support for appending the aai or aaiexpr attribute to the Refer_To URI as a parameter that is named aai. Supported
Support for URL-encoding reserved characters as required for SIP/SIPS URIs [RFC3261]. Supported
6.2 Support for ejecting the callee if the bridged transfer is terminated. Supported
Support for appending the aai or aaiexpr attribute to the Refer_To URI in the INVITE as a parameter that is named aai. Supported
Support for URL-encoding reserved characters as required for SIP/SIPS URIs [RFC3261]. Supported
Supporting for playing early media from the callee to the caller if the transferaudio attribute is omitted. Supported
Support for setting the form attribute of the <transfer> request to noanswer after issuing a CANCEL request when connectiontimeout expires. Supported
Support for the following form item variables and events, depending on the SIP response if the INVITE is accepted with a non-2xx response:
  • 404 Not Found = error.connection.baddestination.
  • 405 Method Not Allowed = error.unsupported.transfer.blind.
  • 408 Request Timeout = noanswer.
  • 486 Busy Here = busy,
  • 503 Service Unavailable = error.connection.noresource.
  • (No response) = network_busy.
  • (Other 3xx/4xx/5xx/6xx) = unknown.
Supported
Support for listening for speech or DTMF hotword results in a near-end disconnect. Supported
Support for issuing a BYE if the call duration exceeds the maximum duration that is specified in the maxtime attribute. Supported
6.3 Support for the following form item variables and events depending on the SIP response if the INVITE is accepted with a non-2xx response:
  • 404 Not Found = error.connection.baddestination.
  • 405 Method Not Allowed = error.unsupported.transfer.consultation.
  • 408 Request Timeout = noanswer.
  • 486 Busy Here = busy.
  • 503 Service Unavailable = error.connection.noresource.
  • (No response) = network_busy.
  • (Other 3xx/4xx/5xx/6xx) = unknown.
Supported
Support for generating the connection.disconnect.transfer event when receiving a 200 OK response to a NOTIFY request. Supported
Support for setting the VoiceXML input item variable to unknown with the non-2xx response to the NOTIFY request. Not supported
This page was last edited on August 5, 2020, at 08:07.
Comments or questions about this documentation? Contact us for support!