PTLib
Version 2.18.8
|
The VXML implementation here is highly piecemeal. It is not even close to complete and while roughly following the VXML 2.0 standard there are many incompatibilities. Below is a list of what is available.
Supported tag | Supported attributes | Notes |
---|---|---|
<menu> | dtmf | property.timeout is supported |
<choice> | dtmf, next, expr, event | |
<form> | id | property.timeout is supported |
<field> | name, cond | |
<prompt> | bargein, cond | property.bargein is supported |
<grammar> | mode, type | Only "dtmf" is supported for "mode" Only "X-OPAL/digits" is supported for "type" The "X-OPAL/digits" grammar consists of three parameters of the form: minDigits=1; maxDigits=5; terminators=# |
<filled> | ||
<noinput> | count, cond | |
<nomatch> | count, cond | |
<error> | count, cond | |
<catch> | count, event | Note there is a limited set of events that are thrown |
<goto> | nextitem, expritem, expr | |
<exit> | No attributes supported | |
<submit> | next, expr, enctype, method, fetchtimeout, namelist | |
<disconnect> | No attributes needed | |
<block> | cond | |
<audio> | src, expr | |
<break> | msecs, time, size | |
<value> | expr, class, voice | class & voice are VXMKL 1.0 attributes and will be removed when <say-as;> is implemented. |
<script> | src | |
<var> | name, expr | |
<property> | name", value | |
<if> | cond | |
<elseif> | cond | |
<else> | No attributes needed | |
<transfer> | name, dest, destexpr, bridge, cond | |
<record> | name, type, beep, dtmfterm, maxtime, finalsilence, cond |
Depending on how the system was built there are three possibilities:
Ultra-primitive | Here, all variables are string types, the only expressions possible are string concatenation using '+' operator. Literals using single quotes are allowed. For <if> only the == and != operator may be used. |
Lua | While a full scripting language, this is not ECMA compatible, so is not compliant to standards. However it can be on option if compiling V* proves too dificult. |
Google V8 | THis is the most compliant to ECMA, and the default scripting language, if available. |
Default variables:
On VXML load | |
document.uri | URI for currently loaded VXML document |
document.path | Root of URI |
Recoding element | |
{name}$.type | MIME type for recording output |
{name}$.uri | URI for recording output |
{name}$.maxtime | Boolean flag for recording hit maximum time |
{name}$.termchar | Value used if recording ended by termination character |
{name}$.duration | Duration of the recording |
{name}$.size | Size in bytes of the recording |
Transfer element | |
{name}$.duration | Duration of transfer operation |
When executed from OPAL call | |
session.time | Wall clock time of call start |
session.connection.local.uri | Local party URI |
session.connection.local.dnis | Called party number |
session.connection.remote.ani | Calling party number |
session.connection.remote.uri | Remote party URI |
session.connection.remote.ip | Remote party media IP address |
session.connection.remote.port | REmote party media port numner |
session.connection.calltoken | Call token (OPAL internal) |