# Call-Related Session Variables

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
- Default Session Variable Configuration
- Recommended Configuration

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.