Specifications and Standards
This topic describes the specifications and standards that Genesys Voice Platform supports.
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.
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.
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 SDP: Session Description Protocol.
- 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).
- 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
- VoiceXML session establishment and termination
- Media support
- Returning data to the application server
- Outbound calling
- Call transfer
The table below lists and describes RFC 5552 requirements, as well as the ones that GVP 8.5 supports:
|VoiceXML session establishment and termination|
|2.1|| Support for the following service-identification parameters:
|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:
|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:
| Support for evaluating the following session variables:
|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:
This parameter will be updated as the media values that are involved in the session change.
|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.
|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|
|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:
| Support for the following codecs:
|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>
|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|
|5.0||Support for triggering outbound calls by using third-party call control [RFC3725].||Supported|
|6.1|| Support for blind transfers with a REFER message on the original SIP dialog [RFC3515].
Note: Set sip.defaultblindxfer to REFER.
|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:
|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:
|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:
|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|