|
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) |