innovaphone-voicemail6-schema

Table of Contents

top

Schema Document Properties

Target Namespace http://www.innovaphone.com/xsd/voicemail6.xsd
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.

Declared Namespaces

Prefix Namespace
Default namespace http://www.innovaphone.com/xsd/voicemail6.xsd
xml http://www.w3.org/XML/1998/namespace
mstns http://www.innovaphone.com/xsd/voicemail6.xsd
xs http://www.w3.org/2001/XMLSchema
Schema Component Representation
<xs:schema targetNamespace="http://www.innovaphone.com/xsd/voicemail6.xsd" elementFormDefault="qualified">
...
</xs:schema>
top

Global Declarations

Element: add

Name add
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Performs an addition of two numbers. The result will be written to the variable specified by 'out'.
Application Data Example: <add value="1" value2="2" out="$res"> yields: $res=3
XML Instance Representation
<add
out="xs:string [1]"
value="xs:string [1]"
value2="xs:string [1]"/>
Schema Component Representation
<xs:element name="add">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="out" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
<xs:attribute name="value2" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: assign

Name assign
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Assigns the value 'value' to the variable 'out'. Internally, most variable values are held as strings, which is also the default for values assigned by <assign>. If the optional attribute 'type' equals "number" the value will be forced to be stored as an unsigned integer number.
Application Data Example: <assign out="test" value="123"/>
XML Instance Representation
<assign
out="xs:string [1]"
value="xs:string [1]"
type="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="assign">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="out" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: call

Name call
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Calls a function. Upon function return, the interpretation resumes at the instruction following the <call> statement.

Example: <function define="one"> ... </function>

<function define="two"> <call name="one"> </function>
Application Data
XML Instance Representation
<call
name="xs:string [1]"/>
Schema Component Representation
<xs:element name="call">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: case

Name case
Type Locally-defined complex type
Nillable no
Abstract no
Documentation This element must be a child element of <switch>. It can have one comparision operator, that tests whether two operands are equal, not-equal, etc. . One of the two operands is always the variable specified in the parent <switch> element. The other operand is the content of the <case>-attribute being currently processed. It can be either literal or variable content.
Application Data
XML Instance Representation
<case
equal="xs:string [0..1]"
not-equal="xs:string [0..1]"
greater="xs:string [0..1]"
greater-equal="xs:string [0..1]"
less="xs:string [0..1]"
less-equal="xs:string [0..1]">
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</case>
Schema Component Representation
<xs:element name="case">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
<xs:attributeGroup ref="case.attribs"/>
</xs:complexType>
</xs:element>
top

Element: dbg

Name dbg
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Prints a message 'string' into the trace output (provided, the VM's trace-checkmark was activated).
Application Data Example: <dbg string="Hello world"/>

XML Instance Representation
<dbg
string="xs:string [1]"
string2="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="dbg">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="string" type="xs:string" use="required"/>
<xs:attribute name="string2" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: default

Name default
Type Locally-defined complex type
Nillable no
Abstract no
XML Instance Representation
<default>
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</default>
Schema Component Representation
<xs:element name="default">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
</xs:complexType>
</xs:element>
top

Element: else

Name else
Type Locally-defined complex type
Nillable no
Abstract no
Documentation The <else> element allows to control the program flow. It does not have attributes and, if present, must be preceded by an <if> ..</if> clause.
XML Instance Representation
<else>
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</else>
Schema Component Representation
<xs:element name="else">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
</xs:complexType>
</xs:element>
top

Element: event

Name event
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Specifies an event handler. The attribute 'block' controls, whether the event handler is blocking or not. A non-blocking(default) event handler covers all of the following elements and their child elements. But only within the parent element, where the event handler was specified.

Non-blocking event handlers will be called pretty much like a function. At the end of a non-blocking event handler, the interpretation resumes one instruction after that, which caused the event.

The <return> element may be making sense within an non-blocking handler.

If a handler can not be found for the element, where the event occurred, the interpreter's calling stack will be unwinded until a handler can be found.

Currently possible event types are: "dtmf" (recognition of DTMF events), "call-info" (reception of SIG_INFO messages during call setup phase), "call-end" (signals the end of the call into the vm object).
Application Data Example:

<event type="dtmf" block="false">

<pbx-getdtmfdigit out-dtmf="$dtmf" />

<switch var="$dtmf">

<case equal="1">...</case>

<case equal="2">...</case>

<case equal="3">...</case>

</switch>

</event>

<while cond="true">

...

<pbx-prompt url="..."/> <!-- here DTMFs can occur -->

...

</while>

The non-blocking event handler covers the entire while-loop.

XML Instance Representation
<event
type="xs:string [1] ?"
block="xs:boolean [0..1] ?"
name="xs:string [0..1] ?">
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</event>
Schema Component Representation
<xs:element name="event">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="block" type="xs:boolean" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: exec

Name exec
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Executes an HTTP GET CGI-request with the URL 'url'. The Url is supposed to contain arbitrary script variables. The remote CGI script shall return a short voicemail script comprising <assign> elements. The <exec> element thereby provides the means to send arbitrary variables to e.g. a remote Perl-script. The Perl-script can, in turn, modify arbitrary variables within the voicemail script.

out-error: From on V10SR11: The numeric 'out-error' can be: success(0), common_error(1)
Application Data Example: <assign out="$cgpn" value="00431234567"/> <exec url="http://192.168.0.5/countrybynumber.pl?cgpn=$cgpn"/>

The Perl script will return the following script: <?xml version="1.0" encoding="utf-8" ?> <voicemail xmlns="http://www.innovaphone.com/xsd/voicemail6.xsd"> <assign out="$lang" value="Austria"/> </voicemail>
XML Instance Representation
<exec
url="xs:string [1]"
out-error="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="exec">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="url" type="xs:string" use="required"/>
<xs:attribute name="out-error" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: function

Name function
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Declares a function that can be called by means of <call>. At least one function with the name "Main" must be present per script.

Example: <function define="one"> ... </function>

<function define="two"> <call name="one"> </function>
Application Data Only one variable scope exists for all functions.
XML Instance Representation
<function
define="xs:string [1]">
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</function>
Schema Component Representation
<xs:element name="function">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
<xs:attribute name="define" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: if

Name if
Type Locally-defined complex type
Nillable no
Abstract no
Documentation The <if> element allows to control the program flow. The attributes resemble something to express that a condition 'cond' is true or that a condition 'notcond' is false.
XML Instance Representation
<if
cond="xs:string [0..1] ?"
notcond="xs:string [0..1] ?">
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</if>
Schema Component Representation
<xs:element name="if">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
<xs:attributeGroup ref="if.attribs"/>
</xs:complexType>
</xs:element>
top

Element: index

Name index
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Indexes at positon 'pos' into a string 'value' and writes 'size' characters to the variable specified by 'out'. If 'size' is not provided, all of the remaining characters will be returned. Useful to process DTMF strings.
Application Data Example: <assign out="$dtmfs" value="7645"/> <index out="$res" value="$dtmfs" pos="2" size="1"/> yields: $res=6
XML Instance Representation
<index
out="xs:string [1]"
value="xs:string [1]"
pos="xs:string [1]"
size="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="index">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="out" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
<xs:attribute name="pos" type="xs:string" use="required"/>
<xs:attribute name="size" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: lib-dec

Name lib-dec
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Decode the string 'string' and write the result to the variable 'out-string'. (Available from on v9hotfix20)
Application Data Example: <lib-dec string="Hello+World" out-string="$dec" type="url"/> yields: $dec='Hello World'

type can currently be of: URL-Encoding('url')
XML Instance Representation
<lib-dec
string="xs:string [1]"
out-string="xs:string [1]"
type="xs:string [1]"/>
Schema Component Representation
<xs:element name="lib-dec">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="string" type="xs:string" use="required"/>
<xs:attribute name="out-string" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: lib-enc

Name lib-enc
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Encode the string 'string' and write the result to the variable 'out-string'. (Available from on v9hotfix20)
Application Data Example: <lib-enc string="Hello World" out-string="$enc" type="url"/> yields: $enc='Hello+World'

type can currently be of: URL-Encoding('url')
XML Instance Representation
<lib-enc
string="xs:string [1]"
out-string="xs:string [1]"
type="xs:string [1]"/>
Schema Component Representation
<xs:element name="lib-enc">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="string" type="xs:string" use="required"/>
<xs:attribute name="out-string" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: lib-strcat

Name lib-strcat
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Appends the string 'string2' to the end of the string 'string' and writes the result to the variable 'out-string'.
Application Data Example: <lib-strcat out-string="$res" string="hi" string2=" there"/> yields: $res='hi there'
XML Instance Representation
<lib-strcat
string="xs:string [1]"
string2="xs:string [1]"
out-string="xs:string [1]"/>
Schema Component Representation
<xs:element name="lib-strcat">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="string" type="xs:string" use="required"/>
<xs:attribute name="string2" type="xs:string" use="required"/>
<xs:attribute name="out-string" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: lib-strlen

Name lib-strlen
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Calculates the length of the string 'string' and writes the result to the variable 'out'.
Application Data Example: <lib-strlen out="$res" string="hi"/> yields: $res=2
XML Instance Representation
<lib-strlen
string="xs:string [1]"
out="xs:string [1]"/>
Schema Component Representation
<xs:element name="lib-strlen">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="string" type="xs:string" use="required"/>
<xs:attribute name="out" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: license

Name license
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Queries, whether a valid voicemail license is present.
XML Instance Representation
<license/>
Schema Component Representation
<xs:element name="license">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
top

Element: pbx-disc

Name pbx-disc
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Disconnects the current call.
XML Instance Representation
<pbx-disc
cause="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-disc">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="cause" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-finduser-e164

Name pbx-finduser-e164
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Look-up a user by its E.164 number. In case of a match the user's cn will be written to the variable specified by 'out-cn'.
Application Data Example: <pbx-finduser-e164 e164="55" out-cn="$cn"/>

XML Instance Representation
<pbx-finduser-e164
e164="xs:string [1]"
out-cn="xs:string [1]"/>
Schema Component Representation
<xs:element name="pbx-finduser-e164">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="e164" type="xs:string" use="required"/>
<xs:attribute name="out-cn" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: pbx-finduser-h323

Name pbx-finduser-h323
Type Locally-defined complex type
Nillable no
Abstract no
Documentation (Available from on v9hotfix1 / v7hotfix29 / v8hotfix17) Look-up a user by its H.323 name. In case of a match the user's cn will be written to the variable specified by 'out-cn'.
Application Data Example: <pbx-finduser-h323 h323="foo" out-cn="$cn"/>

XML Instance Representation
<pbx-finduser-h323
h323="xs:string [1]"
out-cn="xs:string [1]"/>
Schema Component Representation
<xs:element name="pbx-finduser-h323">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="h323" type="xs:string" use="required"/>
<xs:attribute name="out-cn" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: pbx-fwd

Name pbx-fwd
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Forwards the current call to a new destination. The element knows two variants. It is regardless, whether the call is connected or not. The cause code, if available, can be written to the variable, specified by 'out-cause'. Any DTMF will end the call forwarding. DTMFs may be suppressed by setting 'barge-in' to 'false'. The attribute 'sec' (from 08-70192) allows to specify the time to wait for the forward call to be connected. If the operation times out, the 'out-cause' would be set to the value 128.

1) Forward the current call to a new number 'e164'. The attribute 'name' must not be present.

1) Forward the current call to a new name 'name'. The attribute 'e164' must not be present.
XML Instance Representation
<pbx-fwd
e164="xs:string [0..1]"
name="xs:string [0..1]"
barge-in="xs:string [0..1]"
out-cause="xs:string [0..1]"
sec="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-fwd">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="e164" type="xs:string" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="barge-in" type="xs:string" use="optional"/>
<xs:attribute name="out-cause" type="xs:string" use="optional"/>
<xs:attribute name="sec" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-getcallinfo

Name pbx-getcallinfo
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Reads some information about the current call. This element is supposed to be called upon reception of an event of type "call-info". Consecutive "call-info" events can be expected when the call is not connected and the caller provides additional dial-digits, one by one.

out-cgpn: The calling party number

out-cdpn: The called party number. Note: The CDPN excludes the extension of the voicemail object.

out-leg2: In case of a redirected call, this variable holds the redirecting number.

(Available from on v9hotfix21) out-leg2-name: In case of a redirected call, this variable holds the redirecting name.

(Available from on v9hotfix17) out-leg2-orig: In case of a multiple redirected call, this variable holds the original redirecting number.

(Available from on v9hotfix21) out-leg2-orig-name: In case of a multiple redirected call, this variable holds the original redirecting name.

out-leg2-count: (from on V9) In case of a redirected call, this variable holds the diversion count.

out-ctl-call: (from on V9) Tells, whether this is a control call(true) or a regular media call(false).

out-h323: (from on v9hotfix1 / v7hotfix29 / v8hotfix17) The calling party's H.323 name.

out-leg2-reason: (from on v9hotfix5) The diversion reason: CFU(1), CFB(2), CFNR(3).

out-confid: (from on v9hotfix19) The call's conference id. May be correlated to a CDR's value 'ref=..'.

out-calling-name: (from on v9hf21) The H.450 callingName.
XML Instance Representation
<pbx-getcallinfo
out-cgpn="xs:string [0..1]"
out-cdpn="xs:string [0..1]"
out-leg2="xs:string [0..1]"
out-leg2-name="xs:string [0..1]"
out-leg2-orig="xs:string [0..1]"
out-leg2-orig-name="xs:string [0..1]"
out-leg2-reason="xs:string [0..1]"
out-leg2-count="xs:string [0..1]"
out-ctl-call="xs:string [0..1]"
out-h323="xs:string [0..1]"
out-confid="xs:string [0..1]"
out-calling-name="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-getcallinfo">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="out-cgpn" type="xs:string"/>
<xs:attribute name="out-cdpn" type="xs:string"/>
<xs:attribute name="out-leg2" type="xs:string"/>
<xs:attribute name="out-leg2-name" type="xs:string"/>
<xs:attribute name="out-leg2-orig" type="xs:string"/>
<xs:attribute name="out-leg2-orig-name" type="xs:string"/>
<xs:attribute name="out-leg2-reason" type="xs:string"/>
<xs:attribute name="out-leg2-count" type="xs:string"/>
<xs:attribute name="out-ctl-call" type="xs:string"/>
<xs:attribute name="out-h323" type="xs:string"/>
<xs:attribute name="out-confid" type="xs:string"/>
<xs:attribute name="out-calling-name" type="xs:string"/>
</xs:complexType>
</xs:element>
top

Element: pbx-getdtmfdigit

Name pbx-getdtmfdigit
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Reads the current dtmf digit. This element is supposed to be called upon reception of an event of type "dtmf".

out-dtmf: The DTMF digit.
XML Instance Representation
<pbx-getdtmfdigit
out-dtmf="xs:string [1]"/>
Schema Component Representation
<xs:element name="pbx-getdtmfdigit">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="out-dtmf" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: pbx-get-presence

Name pbx-get-presence
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Query the current accmumulated presence information for the user 'name'

Available from on V9
Application Data <pbx-get-presence name="Test1" out-activity="$a" out-note="$n"/>
XML Instance Representation
<pbx-get-presence
name="xs:string [1]"
out-activity="xs:string [0..1]"
out-note="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-get-presence">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="out-activity" type="xs:string" use="optional"/>
<xs:attribute name="out-note" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-im

Name pbx-im
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Sends an instant message to the destination specified by 'e164' or 'name'. The content of the instant message will be copied from 'text' The originator of the instant message will be stamped with 'cgpn'.

1) <pbx-im cgpn="00301234567" e164="75" text="Hi Pal!"/>

Available from on FW: 08-70074

type: (from on V9) specifies the mime-type "text"(default), "xml", "html"
XML Instance Representation
<pbx-im
cgpn="xs:string [0..1]"
e164="xs:string [0..1]"
name="xs:string [0..1]"
prio="xs:string [0..1]"
text="xs:string [0..1]"
type="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-im">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="cgpn" type="xs:string" use="optional"/>
<xs:attribute name="e164" type="xs:string" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="prio" type="xs:string" use="optional"/>
<xs:attribute name="text" type="xs:string" use="optional"/>
<xs:attribute name="type" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-mwi

Name pbx-mwi
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Marks that an MWI update message shall be sent at the end of the current call. The destination for the mwi call will be derived from the dialled CDPN, minus the prefix of the servicing voicemail object. E.g. the VM is reachable under 826. The caller dialled 826173. The mwi call will be sent to 173.

The element knows three variants.

1) If the numeric value 'value' is provided, then this value will be sent as message-count within the MWI update message. This variant rather makes only sense, in order to switch-off an MWI by means of <pbx-mwi value="0"/>.

2) If 'value' is not present, then the current number of files within the directory of the affected user will be queried and sent.

3) If 'e164' is present, an additional MWI will be sent to the user corresponding to the e164 number.

XML Instance Representation
<pbx-mwi
value="xs:string [0..1]"
e164="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-mwi">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="value" type="xs:string" use="optional"/>
<xs:attribute name="e164" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-park

Name pbx-park
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Parks the current call at the destination specified by 'e164'. If no destination is given the destination is the VM object itself. A parking position 0..n may be specified in 'pos'. If no such position is specified, the next free parking position is going to be assigned. If a parking position is specified and occupied the parking operation is likely to be failing. The resulting number, position and cause-value will be returned in 'out-cdpn', 'out' and 'out-cause'. A cause-value other than '0' indicates a failed parking operation.

<pbx-park e164="55" pos="8" out="$pos" out-cdpn="$out-cdpn" out-cause="$cau"/>

A DTMF object may be used to unpark a parked call by e.g. dialling '#17855#'.

Available from on V8
XML Instance Representation
<pbx-park
e164="xs:string [0..1]"
pos="xs:string [0..1]"
out-cdpn="xs:string [0..1]"
out="xs:string [0..1]"
out-cause="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-park">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="e164" type="xs:string" use="optional"/>
<xs:attribute name="pos" type="xs:string" use="optional"/>
<xs:attribute name="out-cdpn" type="xs:string" use="optional"/>
<xs:attribute name="out" type="xs:string" use="optional"/>
<xs:attribute name="out-cause" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-prepcallinfo

Name pbx-prepcallinfo
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Sets some calling line information for the next invokation of 'pbx-fwd', 'pbx-xfer'.

cgpn: The calling party number.

string: The calling name. I.e. the supplementary service 'calling name'.

name: The h323 calling name.

Following leg2.. attributes are available from on v9hf17

leg2: redirecting number.

leg2-name: redirecting name.

leg2-counter: number of redirections(usually 1).

leg2-reason: redirection reason CFU(1), CFB(2), CFNR(3)
XML Instance Representation
<pbx-prepcallinfo
cgpn="xs:string [0..1]"
string="xs:string [0..1]"
name="xs:string [0..1]"
leg2="xs:string [0..1]"
leg2-name="xs:string [0..1]"
leg2-counter="xs:string [0..1]"
leg2-reason="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-prepcallinfo">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="cgpn" type="xs:string"/>
<xs:attribute name="string" type="xs:string"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="leg2" type="xs:string"/>
<xs:attribute name="leg2-name" type="xs:string"/>
<xs:attribute name="leg2-counter" type="xs:string"/>
<xs:attribute name="leg2-reason" type="xs:string"/>
</xs:complexType>
</xs:element>
top

Element: pbx-prompt

Name pbx-prompt
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Plays a media file specified by 'url', where 'url' is supposed to be the variable output of <store-get/>. A maximum playtime can be specified as seconds in 'sec'. The attribute 'repeat' controls, whether the file is to be played in a loop. By means of 'barge-in' one can control, whether DTMF input will be ignored during prompting.

url: usually a variable holding an URL

sec: seconds

repeat: either "true" or "false"

barge-in: either "true" or "false"

Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-get root="smith" name="personal/personal_greeting.g729" out-url="$url"/>

<pbx-prompt url="$url"/>

Plays the file http://192.168.0.5/vm/smith/personal/personal_greeting.g729.
XML Instance Representation
<pbx-prompt
url="xs:string [1]"
sec="xs:string [0..1]"
repeat="xs:string [0..1]"
barge-in="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-prompt">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="url" type="xs:string" use="required"/>
<xs:attribute name="sec" type="xs:string" use="optional"/>
<xs:attribute name="repeat" type="xs:string" use="optional"/>
<xs:attribute name="barge-in" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-query-obj

Name pbx-query-obj
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Reads a property, given by 'type', to the variable, given by 'out', from the PBX object given by 'name' (that is CN or Long Name).

Currently type can be of: 'url', 'filter', 'cd_filter', 'e164', 'h323', 'cfu', 'cfb', 'cfnr', 'user_type', 'pseudo_type', 'pseudo_text', 'email'.

Available from on FW: 07-60747

'cfu', 'cfb', 'cfnr' can be queried from on FW: 08-60900.52

'user_type', 'pseudo_type', 'pseudo_text' can be queried from on FW: V9HF4

'user_type': 1(endpoint), 2(other object alike gw) 'pseudo_type': 'vm', 'bc_conf', 'trunk', etc 'pseudo_text': 'Voicemail', 'Bc Conference', 'Trunk Line', etc

'email' can be queried from on FW: V10

'bool-status' can be queried for a bool object from on FW: V10SR7. It'll return either 'true' or 'false'
XML Instance Representation
<pbx-query-obj
name="xs:string [1]"
type="xs:string [1]"
out="xs:string [1]"/>
Schema Component Representation
<xs:element name="pbx-query-obj">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="out" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: pbx-record

Name pbx-record
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Records into a file specified by 'url'. A maximum recording time can be specified as seconds in 'sec'. By means of 'barge-in' one can control, whether DTMF input will be ignored during recording.

url: usually a variable holding an URL

sec: seconds

barge-in: either "true" or "false"

Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-get root="smith" name="personal/tmp_personal_greeting.g729" out-url="$url"/>

<pbx-record url="$url"/>

Records the file http://192.168.0.5/vm/smith/personal/tmp_personal_greeting.g729.
XML Instance Representation
<pbx-record
url="xs:string [1]"
sec="xs:string [0..1]"
barge-in="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-record">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="url" type="xs:string" use="required"/>
<xs:attribute name="sec" type="xs:string" use="optional"/>
<xs:attribute name="barge-in" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-set-presence

Name pbx-set-presence
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Set the presence information for the user 'name'. If 'contact' is present an im-presence is going to be set. If 'contact' is not present the tel-presence is going to be set.

activity: 'away', 'busy', 'lunch', 'meeting', 'vacation'

note: a textual note

contact: e.g. an email address

Available from on V9
Application Data Set the tel-presence: <pbx-set-presence name="John Doe" activity="vacation"/>

Remove the tel-presence: <pbx-set-presence name="John Doe"/>

Set an im-presence: <pbx-set-presence name="John Doe" activity="vacation" contact="john@example.com"/>

Remove an im-presence: <pbx-set-presence name="John Doe" contact="john@example.com"/>
XML Instance Representation
<pbx-set-presence
name="xs:string [1]"
activity="xs:string [0..1]"
note="xs:string [0..1]"
contact="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-set-presence">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="activity" type="xs:string" use="optional"/>
<xs:attribute name="note" type="xs:string" use="optional"/>
<xs:attribute name="contact" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: pbx-upd-obj

Name pbx-upd-obj
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Writes a property, given by 'type', with the value, given by 'value', to the PBX object given by 'name'. The element knows two variants:

1)If 'name' is not present, the object property will just be gathered temporarily within an internal buffer for writing - no write occurs.

2)If 'name' is present, the object will be written to.

These two variants serve in writing multiple object properties in one instance.

Currently type can be of: 'filter', 'cfu', 'cfb', 'cfnr', 'url', 'cd_filter'.

Available from on FW: 07-60712
XML Instance Representation
<pbx-upd-obj
name="xs:string [1]"
type="xs:string [1]"
value="xs:string [1]"/>
Schema Component Representation
<xs:element name="pbx-upd-obj">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: pbx-xfer

Name pbx-xfer
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Variant of 'pbx-fwd' for scenarios with mass call-distribution. The script interpreter resources are immediately freed on successful operation. I.e. there's no script continuation taking place anymore for the call being affected. Except, if 'out-cause' got assigned a value unequal zero after execution - then will the script interpretation be continueing. The element knows two variants. It is regardless, whether the call is connected or not. The cause code, if available, can be written to the variable, specified by 'out-cause'.

Note: For firmware version 9 the internal implementation has been changed. Instead of being a variant of 'pbx-fwd', a call transfer is now taking place.

1) Forward the current call to a new number 'e164'. The attribute 'name' must not be present.

1) Forward the current call to a new name 'name'. The attribute 'e164' must not be present.

Available from on FW: 08-70132
XML Instance Representation
<pbx-xfer
e164="xs:string [0..1]"
name="xs:string [0..1]"
out-cause="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="pbx-xfer">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="e164" type="xs:string" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="out-cause" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: return

Name return
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Returns from a function or from a non-blocking event handler. The element may be used as "return if", if the if-attributes are provided.
XML Instance Representation
<return
cond="xs:string [0..1] ?"
notcond="xs:string [0..1] ?"/>
Schema Component Representation
<xs:element name="return">
<xs:complexType>
<xs:sequence/>
<xs:attributeGroup ref="if.attribs"/>
</xs:complexType>
</xs:element>
top

Element: store-cookie

Name store-cookie
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Writes or reads arbitrary script variables to/from a file. The URL to the file is composed from parts of the configured voicemail script URL, a sub-path 'root' and a file name 'name'. The element knows two variants:

1) Write a script variable, whereby the variable is specified in 'value'. The element 'out' must not be present.

2) Read a script variable, whereby the variable is specified in 'out'. The element 'value' must not be present.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

1) <store-cookie root="smith" name="personal/pin.txt" value="$pin"/>, writes $pin to http://192.168.0.5/vm/smith/personal/pin.txt

2) <store-cookie root="smith" name="personal/pin.txt" out="$pin"/>, reads $pin from http://192.168.0.5/vm/smith/personal/pin.txt
XML Instance Representation
Schema Component Representation
top

Element: store-del

Name store-del
Type Locally-defined complex type
Nillable no
Abstract no
Documentation The element knows to variants.

1) Delete a file, where the URL to the file is composed from parts of the configured voicemail script URL, a sub-path 'root' and a file name 'name'.

2) Delete a file, where the URL to the file is specified in 'url'. This variant is useful when the URL has already been retrieved by e.g. <store-getnext>.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

1) <store-del root="smith" name="test.g729"/>

2) <assign out="$url" value="http://192.168.0.5/vm/smith/test.g729"/> <store-del url="$url"/>

Both examples will delete the file 'http://192.168.0.5/vm/smith/test.g729'.
XML Instance Representation
<store-del
root="xs:string [0..1]"
url="xs:string [0..1]"
name="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="store-del">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="optional"/>
<xs:attribute name="url" type="xs:string" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: store-get

Name store-get
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Composes a url 'out-url' from parts of the configured voicemail script URL, a sub-path 'root' and a filename 'name'.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-get root="smith" name="personal_welcome.g729" out-url="$res"> yields: $res='http://192.168.0.5/vm/smith/personal_welcome.g729'
XML Instance Representation
<store-get
root="xs:string [1]"
name="xs:string [0..1]"
out-url="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-get">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="out-url" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-get-msgcount

Name store-get-msgcount
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Retrieves the number of files within a directory and writes the result to the variable specified by 'out-count'. The URL of the directory is composed from parts of the configured voicemail script URL and a sub-path 'root'.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

Example: <store-get-msgcount root="smith" out-count="$res"/> yields: $res=7

i.e. http://192.168.0.5/vm/smith/ seems to be containing seven files.
XML Instance Representation
<store-get-msgcount
root="xs:string [1]"
out-count="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-get-msgcount">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="required"/>
<xs:attribute name="out-count" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-getnew

Name store-getnew
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Composes a url 'out-url' to a new unique file name from parts of the configured voicemail script URL, a sub-path 'root', an internally calculated GUID as a new file name, and a file extension 'ext'.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-getnew root="smith" ext=".g729" out-url="$res"/> yields: $res='http://http://192.168.0.5/vm/smith/94e6d69ae909d311891100903306000c.g729'

XML Instance Representation
<store-getnew
root="xs:string [1]"
ext="xs:string [0..1]"
out-url="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-getnew">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="required"/>
<xs:attribute name="ext" type="xs:string" use="optional"/>
<xs:attribute name="out-url" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-getnext

Name store-getnext
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Allows to browse through the file names present in a directory. The URL to the directory is composed from parts of the configured voicemail script URL and a sub-path 'root'. The element knows two variants.

1) Retrieve the first file name and store an I/O handle to 'out-handle'. The attribute 'handle' must be empty.

2) Retrieve the next file name, whereby the I/O handle must be provided in 'handle'. The attribute 'out-handle' must be empty.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-getnext root="smith" out-handle="$handle" out-url="$message"/>

<while cond="$message">

<store-getnext handle="$handle" out-url="$message"/>

<pbx-prompt url="$message"/>

</while>

All file present in http://192.168.0.5/vm/smith/ will be played.

From on v9 the attribute 'params' allows to pass a sorting order to the file system (useful only in variant 1) ). Possible values for 'params' are: 'unsorted', 'up-name', 'up-size', 'up-ctime', 'down-name', 'down-size', 'down-ctime'. The corresponding value meanings: no sort order, ascending by name, ascending by size, ascending by creation time, descending by name, descending by size, descending by creation time.
XML Instance Representation
<store-getnext
root="xs:string [0..1]"
handle="xs:string [0..1]"
params="xs:string [0..1]"
out-handle="xs:string [0..1]"
out-url="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-getnext">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="optional"/>
<xs:attribute name="handle" type="xs:string" use="optional"/>
<xs:attribute name="params" type="xs:string" use="optional"/>
<xs:attribute name="out-handle" type="xs:string" use="optional"/>
<xs:attribute name="out-url" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-getprev

Name store-getprev
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Moves an internal cursor to the previous file name as seen relative to a prior call of <store-getnext>. The correlation to former <store-getnext> calls must be provided as 'handle'. The resulting URL is written to the variable specified by 'out-url'.
XML Instance Representation
<store-getprev
handle="xs:string [1]"
out-url="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-getprev">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="handle" type="xs:string" use="required"/>
<xs:attribute name="out-url" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-getstat

Name store-getstat
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Retrieves properties of a file or directory. The URL to the file is composed from parts of the configured voicemail script URL and a sub-path 'root'. The file properties include the modification timestamp and the file size.

The modification time is returned as weekday 1..7 in 'out-wday', day of month 1..31 in 'out-mday', month 1..12 in 'out-mon', year xxxx in 'out-year', hour 0..23 in 'out-hour', minute 0..59 in 'out-min'.

The numeric 'out-type' can be: file(0), directory(1)

The numeric 'out-error' can be: success(0), busy(1), not_found(2), not_locked(3), not_allowed(4), out_of_space(5), already_exist(6), unspecified_error(7)
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-getstat root="smith" name="message.g729" out-wday="$wday" out-mday="$mday" out-mon="$mon" out-year="year" out-hour="$hour" out-min="$min" out-error="$error" out-size="$size" out-type="$type"/>

Retrieves the properties for http://192.168.0.5/vm/smith/message.g729
XML Instance Representation
<store-getstat
root="xs:string [1]"
name="xs:string [1]"
out-wday="xs:string [0..1]"
out-mday="xs:string [0..1]"
out-mon="xs:string [0..1]"
out-year="xs:string [0..1]"
out-hour="xs:string [0..1]"
out-min="xs:string [0..1]"
out-error="xs:string [0..1]"
out-type="xs:string [0..1]"
out-size="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="store-getstat">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="out-wday" type="xs:string" use="optional"/>
<xs:attribute name="out-mday" type="xs:string" use="optional"/>
<xs:attribute name="out-mon" type="xs:string" use="optional"/>
<xs:attribute name="out-year" type="xs:string" use="optional"/>
<xs:attribute name="out-hour" type="xs:string" use="optional"/>
<xs:attribute name="out-min" type="xs:string" use="optional"/>
<xs:attribute name="out-error" type="xs:string" use="optional"/>
<xs:attribute name="out-type" type="xs:string" use="optional"/>
<xs:attribute name="out-size" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: store-mkdir

Name store-mkdir
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Creates a new directory. The URL to the directory is composed from parts of the configured voicemail script URL and a sub-path 'root'.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-mkdir root="smith" name="personal"/>

The directory http://192.168.0.5/vm/smith/personal/ will be created.
XML Instance Representation
<store-mkdir
root="xs:string [1]"
name="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-mkdir">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-ren

Name store-ren
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Renames a file. The URL to the file is composed from parts of the configured voicemail script URL, a sub-path 'root' and the file name 'name'. The new name must be provided as 'new-name' and is supposed to be relative to the directory where the original file is located.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-ren root="smith" name="tmp.g729" new-name="welcome.g729"/>

Renames http://192.168.0.5/vm/smith/tmp.g729 into http://192.168.0.5/vm/smith/welcome.g729
XML Instance Representation
<store-ren
root="xs:string [1]"
name="xs:string [1]"
new-name="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-ren">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="new-name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-rmdir

Name store-rmdir
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Removes a directory. The URL to the directory is composed from parts of the configured voicemail script URL and a sub-path 'root'.
Application Data Example: The configured URL to the voicemail script be: http://192.168.0.5/vm/vm.xml

<store-rmdir root="smith" name="personal"/>

The directory http://192.168.0.5/vm/smith/personal/ will be deleted.
XML Instance Representation
<store-rmdir
root="xs:string [1]"
name="xs:string [1]"/>
Schema Component Representation
<xs:element name="store-rmdir">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="root" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: store-split

Name store-split
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Decomposes the URL 'url' into a path 'out-path' and a file name 'out-file'. Since new voicemails are stored in such, that the CGPN is part of the file name, the CGPN will be written to the variable specified by 'out-cgpn'. The hyphen character '-' serves as the CGPN-separator.
Application Data Example: <assign out="url" value="http://192.168.0.5/vm/smith/258ada22e909d31185a3009033060226-00401234567.g729"/>

<store-split url="$url" out-path="$path" out-file="$file" out-cgpn="$cgpn"/>

this yields: $path='http://192.168.0.5/vm/smith/', $file='258ada22e909d31185a3009033060226-00401234567.g729', $cgpn='00401234567'

XML Instance Representation
<store-split
url="xs:string [1]"
out-path="xs:string [1]"
out-file="xs:string [1]"
out-cgpn="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="store-split">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="url" type="xs:string" use="required"/>
<xs:attribute name="out-path" type="xs:string" use="required"/>
<xs:attribute name="out-file" type="xs:string" use="required"/>
<xs:attribute name="out-cgpn" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: sub

Name sub
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Performs an subtraction of two numbers. The result will be written to the variable specified by 'out'.
Application Data Example: <sub value="2" value2="1" out="$res"> yields: $res=1
XML Instance Representation
<sub
out="xs:string [1]"
value="xs:string [1]"
value2="xs:string [1]"/>
Schema Component Representation
<xs:element name="sub">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="out" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
<xs:attribute name="value2" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: switch

Name switch
Type Locally-defined complex type
Nillable no
Abstract no
Documentation The <switch> element allows to control the program flow. The attribute 'var' must be provided. Its content is supposed to be investigated further within <case> child elements. The child elements are interpreted one by one. The first element with a matching condition terminates this evaluation. Therefore it makes rather only sense to write an optional <default> element to the very end of the child elements.
Application Data Example:

<switch var="$msgcount">

<case equal="0"> <store-get root="" name="de_none.g729" out-url="$ctrl" /> <pbx-prompt url="$ctrl" /> </case>

<case greater="10"> <store-get root="" name="de_many.g729" out-url="$ctrl" /> <pbx-prompt url="$ctrl" /> </case>

<case greater="0"> <lib-strcat string="de_" string2="$msgcount" out-string="$fileprefix" /> <lib-strcat string="$fileprefix" string2=".g729" out-string="$filename" /> <store-get root="" name="$filename" out-url="$ctrl" /> <pbx-prompt url="$ctrl" /> </case>

</switch>
XML Instance Representation
<switch
var="xs:string [0..1]">
Start Choice [1..*]
<case> ... </case> [1]
<default> ... </default> [1]
End Choice
</switch>
Schema Component Representation
<xs:element name="switch">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="case"/>
<xs:element ref="default"/>
</xs:choice>
<xs:attribute name="var" type="xs:string"/>
</xs:complexType>
</xs:element>
top

Element: timer

Name timer
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Facilitates a named timer 'name' and schedules it in 'sec' seconds. If 'sec' is not present, the timer will be stopped.

A handler is specified as: <event type="timer" name="guard">...</event>
Application Data Example: <timer name="guard" sec="40"/>

XML Instance Representation
<timer
name="xs:string [1]"
sec="xs:string [0..1]"/>
Schema Component Representation
<xs:element name="timer">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="sec" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: voicemail

Name voicemail
Type Locally-defined complex type
Nillable no
Abstract no
Documentation The root-element for a voicemail script. Only <assign> and <function> statements are allowed as child elements.
Application Data <!----><voicemail>

<!--------><function define=Main">

<!--------></function>

<!----></voicemail>
XML Instance Representation
<voicemail
_trace="xs:string [0..1]"
_cache="xs:string [0..1]"
_ver="xs:string [0..1]">
Start Choice [1..*]
<assign> ... </assign> [1]
<function> ... </function> [1]
End Choice
</voicemail>
Schema Component Representation
<xs:element name="voicemail">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="assign"/>
<xs:element ref="function"/>
</xs:choice>
<xs:attribute name="_trace" type="xs:string" use="optional"/>
<xs:attribute name="_cache" type="xs:string" use="optional"/>
<xs:attribute name="_ver" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: wait

Name wait
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Waits 'sec' seconds before interpretations resumes. Instead of using this element it is recommended to prompt (see <pbx-prompt/>) the caller actively with silence, instead of using this element. Therefore <wait/> is useful only in states whithout a media stream.
Application Data Example: <wait sec="2"/>, waits two seconds.

XML Instance Representation
<wait
sec="xs:string [1]"/>
Schema Component Representation
<xs:element name="wait">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="sec" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
top

Element: while

Name while
Type Locally-defined complex type
Nillable no
Abstract no
Documentation This element is very much alike the <if> element, with the difference that it loops as long as the loop condition evaluates to 'true'. The loop condition is evaluated in the same manner as in the case of the <if> element.
Application Data
XML Instance Representation
<while
cond="xs:string [0..1] ?"
notcond="xs:string [0..1] ?">
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</while>
Schema Component Representation
<xs:element name="while">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
<xs:attributeGroup ref="if.attribs"/>
</xs:complexType>
</xs:element>
top

Global Definitions

Attribute Group: case.attribs

Name case.attribs
XML Instance Representation
equal="xs:string [0..1]"
not-equal="xs:string [0..1]"
greater="xs:string [0..1]"
greater-equal="xs:string [0..1]"
less="xs:string [0..1]"
less-equal="xs:string [0..1]"
Schema Component Representation
<xs:attributeGroup name="case.attribs">
<xs:attribute name="equal" type="xs:string"/>
<xs:attribute name="not-equal" type="xs:string"/>
<xs:attribute name="greater" type="xs:string"/>
<xs:attribute name="greater-equal" type="xs:string"/>
<xs:attribute name="less" type="xs:string"/>
<xs:attribute name="less-equal" type="xs:string"/>
</xs:attributeGroup>
top

Attribute Group: if.attribs

Name if.attribs
XML Instance Representation
cond="xs:string [0..1] ?"
notcond="xs:string [0..1] ?"
Schema Component Representation
<xs:attributeGroup name="if.attribs">
<xs:attribute name="cond" type="xs:string"/>
<xs:attribute name="notcond" type="xs:string"/>
</xs:attributeGroup>
top

Complex Type: type.statements

Super-types: None
Sub-types: None
Name type.statements
Abstract no
XML Instance Representation
<...>
Start Choice [0..*]
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
End Choice
</...>
Schema Component Representation
<xs:complexType name="type.statements">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="statement.body"/>
</xs:choice>
</xs:complexType>
top

Model Group: statement.body

Name statement.body
XML Instance Representation
Start Choice [1]
Start Choice [1]
<event> ... </event> [1]
End Choice
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
End Choice
Schema Component Representation
<xs:group name="statement.body">
<xs:choice>
<xs:group ref="statement.decl"/>
<xs:group ref="statement.control"/>
<xs:group ref="statement.executable"/>
</xs:choice>
</xs:group>
top

Model Group: statement.control

Name statement.control
XML Instance Representation
Start Choice [1]
<if> ... </if> [1]
<else> ... </else> [1]
<switch> ... </switch> [1]
<while> ... </while> [1]
End Choice
Schema Component Representation
<xs:group name="statement.control">
<xs:choice>
<xs:element ref="if"/>
<xs:element ref="else"/>
<xs:element ref="switch"/>
<xs:element ref="while"/>
</xs:choice>
</xs:group>
top

Model Group: statement.decl

Name statement.decl
XML Instance Representation
Start Choice [1]
<event> ... </event> [1]
End Choice
Schema Component Representation
<xs:group name="statement.decl">
<xs:choice>
<xs:element ref="event"/>
</xs:choice>
</xs:group>
top

Model Group: statement.executable

Name statement.executable
XML Instance Representation
Start Choice [1]
<call> ... </call> [1]
<return> ... </return> [1]
<store-get> ... </store-get> [1]
<store-getnew> ... </store-getnew> [1]
<store-get-msgcount> ... </store-get-msgcount> [1]
<store-del> ... </store-del> [1]
<store-getnext> ... </store-getnext> [1]
<store-getprev> ... </store-getprev> [1]
<store-ren> ... </store-ren> [1]
<store-mkdir> ... </store-mkdir> [1]
<store-rmdir> ... </store-rmdir> [1]
<store-split> ... </store-split> [1]
<store-getstat> ... </store-getstat> [1]
<store-cookie> ... </store-cookie> [1]
<pbx-disc> ... </pbx-disc> [1]
<pbx-prompt> ... </pbx-prompt> [1]
<pbx-record> ... </pbx-record> [1]
<pbx-finduser-e164> ... </pbx-finduser-e164> [1]
<pbx-finduser-h323> ... </pbx-finduser-h323> [1]
<pbx-getcallinfo> ... </pbx-getcallinfo> [1]
<pbx-prepcallinfo> ... </pbx-prepcallinfo> [1]
<pbx-getdtmfdigit> ... </pbx-getdtmfdigit> [1]
<pbx-mwi> ... </pbx-mwi> [1]
<pbx-fwd> ... </pbx-fwd> [1]
<pbx-xfer> ... </pbx-xfer> [1]
<pbx-upd-obj> ... </pbx-upd-obj> [1]
<pbx-query-obj> ... </pbx-query-obj> [1]
<pbx-im> ... </pbx-im> [1]
<pbx-park> ... </pbx-park> [1]
<pbx-get-presence> ... </pbx-get-presence> [1]
<pbx-set-presence> ... </pbx-set-presence> [1]
<lib-strcat> ... </lib-strcat> [1]
<lib-strlen> ... </lib-strlen> [1]
<lib-enc> ... </lib-enc> [1]
<lib-dec> ... </lib-dec> [1]
<assign> ... </assign> [1]
<add> ... </add> [1]
<sub> ... </sub> [1]
<index> ... </index> [1]
<exec> ... </exec> [1]
<wait> ... </wait> [1]
<license> ... </license> [1]
<dbg> ... </dbg> [1]
<timer> ... </timer> [1]
End Choice
Schema Component Representation
<xs:group name="statement.executable">
<xs:choice>
<xs:element ref="call"/>
<xs:element ref="return"/>
<xs:element ref="store-get"/>
<xs:element ref="store-getnew"/>
<xs:element ref="store-get-msgcount"/>
<xs:element ref="store-del"/>
<xs:element ref="store-getnext"/>
<xs:element ref="store-getprev"/>
<xs:element ref="store-ren"/>
<xs:element ref="store-mkdir"/>
<xs:element ref="store-rmdir"/>
<xs:element ref="store-split"/>
<xs:element ref="store-getstat"/>
<xs:element ref="store-cookie"/>
<xs:element ref="pbx-disc"/>
<xs:element ref="pbx-prompt"/>
<xs:element ref="pbx-record"/>
<xs:element ref="pbx-finduser-e164"/>
<xs:element ref="pbx-finduser-h323"/>
<xs:element ref="pbx-getcallinfo"/>
<xs:element ref="pbx-prepcallinfo"/>
<xs:element ref="pbx-getdtmfdigit"/>
<xs:element ref="pbx-mwi"/>
<xs:element ref="pbx-fwd"/>
<xs:element ref="pbx-xfer"/>
<xs:element ref="pbx-upd-obj"/>
<xs:element ref="pbx-query-obj"/>
<xs:element ref="pbx-im"/>
<xs:element ref="pbx-park"/>
<xs:element ref="pbx-get-presence"/>
<xs:element ref="pbx-set-presence"/>
<xs:element ref="lib-strcat"/>
<xs:element ref="lib-strlen"/>
<xs:element ref="lib-enc"/>
<xs:element ref="lib-dec"/>
<xs:element ref="assign"/>
<xs:element ref="add"/>
<xs:element ref="sub"/>
<xs:element ref="index"/>
<xs:element ref="exec"/>
<xs:element ref="wait"/>
<xs:element ref="license"/>
<xs:element ref="dbg"/>
<xs:element ref="timer"/>
</xs:choice>
</xs:group>
top