modules:subdialog

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
modules:subdialog [2017/02/15 22:29]
admin
modules:subdialog [2018/08/28 19:16]
admin
Line 1: Line 1:
-====== ​Subdialog ​======+====== ​Label ======
  
-{{:​subdialog.svg?​nolink&​30x30|}} +<WRAP group> 
-{{:​subdialog.png?​nolink|}}+<WRAP COLUMN>{{INLINETOC width18 4-5|Subdialog Module}}</​WRAP>​ 
 +<WRAP COLUMN>{{:modules:​module-subdialog.png?​nolink |}}</​WRAP>​ 
 +</​WRAP>​
 ---- ----
- 
-===Function=== 
 **This is an advanced module** **This is an advanced module**
 +----
 +===Function===
  
-This module functions like the [[modules:​goto-app|Goto App]] ( {{:​goto_app.svg?​nolink&​16x16|}} ) module, with the exception that the ‘Subdialog’ ( {{:​subdialog.svg?​nolink&​19x19|}} ) module allows users to jump to an external ​VoiceXML application. Fuse passes ​data to the VoiceXML application and receives ​data in return that can be used as subvariables, just like the ‘Goto App’ ( {{:​goto_app.svg?​nolink&​16x16|}} ).+This module allows users to jump to an externally hosted ​VoiceXML application. ​\\ Fuse can pass data to the VoiceXML application and receive ​data in return that can be used as subvariables ​within ​the Fuse platform.
  
-Enter the URL of the web server location where the VoiceXML ​application ​lives in the first field+To jump to an internal Fuse application, use the  ​[[modules:​goto-app|Goto App]] ( {{:​goto_app.svg?​nolink&​16x16|}} ) module instead.
  
-Executing a subdialog tells Plum's VoiceXML browser to go request that page. The VXML browser, in turn, can make that request in a few different ways.  
  
-The ‘submit as’ drop-down menu gives users the options: POST, GET (w/ parameter), or GET.+\\ Enter the URL of the web server location where the VoiceXML application lives in the first field
  
-All three settings allow users to enter an event name, which can include variables.+---- 
 +===Submission Type=== 
 +<WRAP group> 
 +<WRAP COLUMN 55%>The ‘//submit as//’ drop-down menu has these options: **POST**, **GET w/ <​param>​**,​ or **GET**.\\ \\ All three settings allow users to enter an event name, which can include variables. ​\\ **POST** and **GET w/ <​param>​** both allow users to define custom variables.</​WRAP>​ 
 +<WRAP COLUMN 40%>​{{:​modules:​module-subdialog2.png?​nolink |}}</​WRAP>​ 
 +</​WRAP>​
  
-POST and GET (w/ parameter) both allow users to define a custom variable. +==POST== 
-  * **POST**: ​Users must define variables as POST variables. These variables are "​hidden"​ in the request, behind the scenes, so to speak, and are passed directly to the backend scripting server. Once the server receives these requests, it can act upon them. Users building PCI-compliant application(s) should use POST because it prevents data from being passed to the server in clear text in the URL. +Users must define variables as POST variables. These variables are "​hidden"​ in the request, behind the scenes, so to speak, and are passed directly to the backend scripting server. Once the server receives these requests, it can act upon them. 
-  * **GET**: GET requests pass variables directly in the URL request to a server. A tell-tale sign of a GET request is a URL with a question mark (?) in it followed by additional data. GET data is passed directly to the application server but this method is less secure that a POST request. GET data is typically logged in web server logs, which is not a PCI-compliant.  +
-  * **GET w/ <​param>​**:​ A GET w/ <​param>​ request is used when users need data in their application server, but want to pass that data directly to their VoiceXML script. A GET w/ <​param>​ request initiates a GET request to the web server but does not pass any data to the server. Instead, the data is stored inside Plum's VoiceXML browser. A common use case for a GET w/ <​param>​ request is when users want to pass data that will be used to dynamically prompt the end-user, but there is no need to have that data on the web server. Another useful application of this method is when users are not using a dynamic scripting language on their web server and are serving static VoiceXML instead. Those static pages cannot receive data directly and instead need to receive all its data as <​param>​ values.+
  
-The two most common errors that users see with this module occur when a server times out or an application ​returns invalid ​data.+Users building PCI-compliant ​application(s) should use POST because it prevents ​data from being passed to the server in clear text in the URL.
  
 +\\ ==GET==
 +GET requests pass variables directly in the URL request to a server. A tell-tale sign of a GET request is a URL with a question mark (?) in it followed by additional data. GET data is passed directly to the application server but this method is less secure that a POST request. ​
 +
 +GET data is typically logged in web server logs, which is not a PCI-compliant. ​
 +
 +\\ ==GET w/ <​param>​==
 +A GET w/ <​param>​ request is used when users need data in their application server, but want to pass that data directly to their VoiceXML script.
 +\\ A GET w/ <​param>​ request initiates a GET request to the web server but does not pass any data to the server. Instead, the data is stored inside Plum's VoiceXML browser. ​
 +
 +A common use case for a GET w/ <​param>​ request is when users want to pass data that will be used to dynamically prompt the end-user, but there is no need to have that data on the web server. ​
 +
 +Another useful application of this method is when users are not using a dynamic scripting language on their web server and are serving static VoiceXML instead. Those static pages cannot receive data directly and instead need to receive all its data as <​param>​ values.
 +
 +To access the parameter variable passed in from Fuse+ in the VoiceXML application,​ just use it as if it is a regular VoiceXML subdialog param declared as //<param name="​Variable"​ expr="​Value"/>//​.
 +
 +----
 +===Accessing Subdialog Variables===
 +To access variables returned from the subdialog, the VoiceXML has to declare which variables are to be returned with the following: <code html><​return namelist="​var_name"/></​code>​
 +These variables can then be access with the //​subdialog_name.variable_name//​ format in Fuse.
 +
 +\\ 
 +
 +| For example, suppose there is an external VoiceXML application that returns a market region name based on a zip input. \\ \\ //​sample_subdialog.region//​ can be used to access the return variable name after running the Subdialog module, as long as //region// is listed in the return namelist in the VoiceXML code. <code html><​return namelist="​region"/></​code>​ | {{:​modules:​module-subdialog3.png?​nolink |}} |
 +
 +
 +
 +
 +
 +----
 ===Module Settings=== ===Module Settings===
-  * Hold Music +{{:​modules:​settingsmod-subdialog.png?​nolink|}} ​ 
-  * Timeout Length (default 30 seconds) + 
-  * Private +{{page>​modules:​module-settings#​hold-music&​link&​noeditbutton&​nofooter&​firstseconly&​noreadmore}} 
-  * Show Events (enabled by default) + 
-  * Show Custom Errors+---- 
 +{{page>​modules:​module-settings#​timeout-length&​link&​noeditbutton&​nofooter&​firstseconly&​noreadmore}} 
 + 
 +---- 
 +{{page>​modules:​module-settings#​private&​link&​noeditbutton&​nofooter&​firstseconly&​noreadmore}} 
 + 
 +----- 
 +{{page>​modules:​module-settings#​show-events&​link&​noeditbutton&​nofooter&​firstseconly&​noreadmore}} 
 + 
 +----- 
 +{{page>​modules:​module-settings#​show-custom-errors-subdialog&​link&​noeditbutton&​nofooter&​firstseconly&​noreadmore}} 
 +The two most common errors that users see with this module occur when a server times out or an application returns invalid data. 
modules/subdialog.txt · Last modified: 2018/08/28 19:16 by admin