W3C home > Mailing lists > Public > www-voice@w3.org > October to December 2006

Re: what is the difference between <dialogterminate> and 'connection.disconnect.hangup' ?

From: Petr Kuba <kuba@optimsys.cz>
Date: Thu, 26 Oct 2006 11:43:56 +0200
Message-ID: <4540835C.8090508@optimsys.cz>
To: www-voice@w3.org, rajeshn@huawei.com


Rajesh N wrote:
> Hi Petr,
> If  the 'immediate' attribute of <dialogterminate> is set to true, should it
> result in sending connection.disconnect.hangup to VXML? 
Again, the way CCXML interpreter requests VXML interpreter to terminate 
is implementation specific.
Below I describe our implementation in OptimTalk.

CCXML and VXML standards are independent - CCXML is prepared for 
integration with any dialog manager, not only VXML. In some situations 
there is no direct one-to-one mapping of VXML and CCXML operations when
VXML and CCXML interpreters are integrated. Therefore we employ a 'bridge'
which translates CCXML to VXML requests and vice versa.

In this bridge, <dialogterminate> results always (regardless the 
immediate attribute value) in calling VXML API method which, among others,
throws connection.disconnect.hangup event in VXML.
The only thing influenced by the immediate value is handling of the 
results returned from VXML interpretation.
If the attribute value is false the result returned from VXML is ignored.

However, it is possible that some implementations are able to terminate 
the interpreter without sending connection.disconnect.hangup and 
entering the final processing state.

> As per my understanding:
> a) If the event is not be sent in the above case, then how should the VXML
> interpreter platform honour the VXML 2.0 <disconnect> element processing
> requirement - . 'As a result, the interpreter context will throw a
> connection.disconnect.hangup event and enter the final processing state'
Handling of VXML <disconnect> request in CCXML is not performed by the 
CCXML platform (interpreter) but rather by the CCXML application 
(script). Therefore it is responsibility of the application developer to 
handle this situation correctly. See CCXML specification App. D for more 
In our implementation, interpretation of VXML <disconnect> sends disconnect
request to the CCXML application. If the VXML application does not obtain
response from CCXML in a timely manner the VXML interpreter throws an error.
We are not very happy that this behavior is dependent on the CCXML application
developer but that's what the specification says.

> b) Instead, if the event is sent to VXML, the VXML interpreter will enter
> final processing, which results in an application exit, which could mean
> that dialog returns data to CCXML, which is not expected for immediate=true
> case.
As described above, in our case the bridge discards returned data.

> c) Also, if the CCXML application does not contain a <dialogterminate> or
> <send event="connection.disconnect.hangup">, how can this be handled? How
> can VXML enter final processing following its <disconnect> ?
It cannot. It is really responsibility of the application developer. If 
the CCXML script does not work correctly then VXML is not able to enter 
final processing state. As mentioned above OptimTalk implementation throws
an error.


  Petr Kuba, Project Manager
  OptimSys, s.r.o
  Tel: +420 541 143 065
  Fax: +420 585 750 429

> Thanks
> Rajesh
>  -----Original Message-----
> From: www-voice-request@w3.org [mailto:www-voice-request@w3.org] On Behalf
> Of Petr Kuba
> Sent: Friday, October 20, 2006 6:33 PM
> To: www-voice@w3.org
> Subject: Re: what is the difference between <dialogterminate> and
> 'connection.disconnect.hangup' ?
> Hi,
> there is no difference, [A] results in sending connection.disconnect.hangup
> toVXML.
> This is the way it is implemented in OptimTalk but it should hold generally
> as well.
> Regards
> Petr
> --
>   Petr Kuba, Project Manager
>   OptimSys, s.r.o
>   kuba@optimsys.cz
>   Tel: +420 541 143 065
>   Fax: +420 585 750 429
>   http://www.optimsys.cz
> Srinivas R Thota wrote:
>> Hi,
>> Is there any difference between the following two [A] and [B] CCXML 
>> tags, for terminating a dialog.
>> [A]
>> <dialogterminate dialogid="dialogid" />
>> [B]
>> <send data="'connection.disconnect.hangup'" target="dialogid" 
>> targettype="'dialog'"/>
>> Thanks,
>> Srinivas R Thota
Received on Thursday, 26 October 2006 10:02:56 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:07:39 UTC