The latest VoiceXML 2.0 and 2.1 specifications define a set of
session variables named session.connection.* to provide
call-related information,
rather than session.telephone.* session variables
(which were defined in earlier versions of the VoiceXML 2.0 specification).
The reason for this updated naming convention is that today's platforms may
support more than just the traditional PSTN
telephony connection; they may also support other kinds of connections, like
VoIP, as well. The keyword "connection" is therefore more appropriate, since
it can apply to both PSTN and VoIP.
Supported Naming Conventions
VoiceGenie supports session.connection.* variables, for compliance
with the naming convention used in the latest specifications. For backward compatibility,
VoiceGenie also supports a small list
of session.telephone.* variables, which can be set instead of,
or in addition to, their "connection" equivalents. Note that each of the supported
session variables will only be set during a call if it is configured in the
VoiceXML Interpreter Configuration.
Default Session Variable Configuration
The session variables are initially configured in the VoiceXML Interpreter Configuration as follows:
The platform configuration scripts prompt something like:
The alternate configuration lets the VoiceXML interpreter be more stringent on conformance, with some application behaviour changes. For a complete list of changes, please refer to release note. Do you want to use this configuration? [Y/n] >
If the administrator answers yes (default response), the platform will be configured
to set all the session.connection.* variables, only.
If they answer no, the platform will be configured to set
the session.telephone.* variables instead of their
"connection" equivalents,
and to set the remaining session.connection.* variables.
Note that this script option will also affect the
naming of call-related events and the
setting of the strictconformance property.
Recommended Configuration
It is recommended that all platforms be configured to set all the "connection" session variables, especially if being used to develop new applications (which should only reference "connection" variables). If a platform is running existing applications that reference some "telephone" variables, and that cannot be modified to reference the corresponding "connection" variables instead, the platform configuration can be modified to set the "telephone" variables as well.
List of Telephone Variables Supported
Here are the only session.telephone.* variables that
the platform can be configured to set instead of, or in addition to,
their "connection" equivalents:
session.telephone.ani session.telephone.dnis session.telephone.uui session.telephone.iidigits session.telephone.ocn session.telephone.rdnis session.telephone.pri session.telephone.ntype session.telephone.cname session.telephone.rreason session.telephone.billingnumber session.telephone.dialednumber session.telephone.callidref session.telephone.tfci session.telephone.channelidref session.telephone.confid
The platform will not set any other session.telephone.*
variables. For example, session.telephone.originator will
always be undefined, even if it is listed in the
VoiceXML Interpreter Configuration.