Using Session Dialogs

 

This chapter will show you some basics on how to use session dialogs with your ISL Conference Proxy. Please refer to ISL Conference Proxy manual for more information about session dialogs.


There are three types of session dialogs available:

  • shown at program startup (called start-of-dialog - SOD)
  • shown at session start (called start-of-session - SOS)
  • shown at desktop streaming request (called stream-dialog)
    • User confirmation is required to begin desktop streaming 
  • shown at the end of the session (called end-of-session - EOS)

SOD and SOS dialogs are usually disclaimers and include no user input apart from confirmation (user can also decline the SOS or SOD dialog by pressing ESC or clicking the close window button - this will terminate the program or session), while stream-dialog remembers the user input internally and EOS dialog reports results to the ISL Conference Proxy and those results are saved to ISL Light session history. 


All dialogs should be defined in a single file. You can specify one or more, depending on your needs.


Basic dialog definition syntax

Session dialogs are defined using a simple XML-like language with a root "dialog". All names are equal to names found in C API of MS Windows GUI. Child object names are window class names. One can use static, edit, button, combobox etc.

Each object can have a title, dimensions, style, exstyle and return value specified through the use of attributes. Names of window classes, styles, exstyles can be found in MSDN. Objects of type combobox have an additional attribute named "delimiters". This attribute is used for parsing values that are inserted into the combobox.

Only those objects that have the result attribute specified will report the result to the ISL Conference Proxy. Each such object generates a key-value pair where the result attribute is used as a key.


Important: Each entry (in the examples below, the entries are sod_dialog, sos_dialog, stream_dialog and eos_dialog) has to be a single line in order to be interpreted correctly. Examples below are shown with line breaks to improve readability and to give the general idea of certain elements to the reader. Prior to using the examples, please remove all line breaks in those entries.

First line contains the language identifier - it is a 2-letter ISO 639 code, e.g. en for English, sl for Slovenian, de for German etc.


SOD example

[en]

sod_dialog=

<dialog title="Welcome!" width=110 height=40 style="WS_CAPTION|WS_POPUP|WS_SYSMENU" >
<static top=5 left=5 width=100 height=20 title="Welcome to the ISL Light system!" />
<button top=30 width=30 height=8 left=40 title="OK" id=IDOK />
</dialog>



SOS example

[en]

sos_dialog=

<dialog title="Welcome to ISL Light" width=110 height=40 style="WS_CAPTION|WS_POPUP|WS_SYSMENU" >
<static top=5 left=5 width=100 height=20 title="Welcome to the ISL Light session." />
<button top=30 width=30 height=8 left=40 title="OK" id=IDOK />
</dialog>

 

stream_dialog example

[en]

stream_dialog=

<dialog title="Start of Stream" width=200 height=160 style="WS_CAPTION|WS_POPUP|WS_SYSMENU">
<static top=5 left=5 width=190 height=15 title="You have started desktop streaming"/>
<static top=107 left=5 width=190 height=40 title="By accepting these terms and conditions you acknowledge that remote intervention may in some cases cause data and/or software corruption on your computer."/>
<button top=147 width=30 height=8 left=85 title="Accept" id=IDOK/>

<data type="script"><function key="on_command">
    <if>
        <eq>
            <get><arg>0</arg></get>
            <get>IDOK</get>
        </eq>
            <call key="stream_dialog_skip"></call>
            <call key="stop_session"></call>
        </if>
            </function>
            <function key="on_close_dialog">
                <call key="stop_session"></call>
            </function>
</data>
</dialog>

The dialog is shown when user initiates screen sharing functionality. The dialog can be defined in a way so that if the dialog is not accepted the session is terminated and if accepted then the start of streaming request is sent to the other side. Dialog can call the following two functions:

  • stream_dialog_skip - If user confirms the desktop streaming starts and choice is remembered
  • stop_session - If user denies the desktop streaming the session is closed

Important: For stream_dialog to appear correctly the client has to have the following command line parameter enabled (it will override the dialog):

--on-load "customization?preselect_allow_remote_desktop_control=false"


and the client must not have the following command line parameter enabled (it will override the dialog):

--on-load "customization?preselect_allow_remote_desktop_control=false"



EOS example

[en]

eos_dialog=

<dialog title="Questionnaire" width=160 height=110 style="WS_CAPTION|WS_POPUP|WS_SYSMENU" exstyle=WS_EX_APPWINDOW result="desk_issue_status" >
<static top=5 left=5 width=50 height=8 title=Supporter />
<edit top=5 left=55 width=100 height=8 title="Supporter 1" exstyle=WS_EX_CLIENTEDGE result="Supporter" />
<static top=15 left=5 width=50 height=8 title=Customer />
<edit top=15 left=55 width=100 height=8 title="" exstyle=WS_EX_CLIENTEDGE result="Customer" />
<static top=25 left=5 width=50 height=8 title="Company" />
<combobox top=25 left=55 width=100 height=50 delimiters=";" style=CBS_DROPDOWNLIST result="Company" >Monitor;Slovenske Novice;Xlab;Slonep </combobox>
<static top=35 left=5 width=50 height=8 title="Type of service" />
<combobox top=35 left=55 width=100 height=50 delimiters=";" style=CBS_DROPDOWNLIST result="Type" >Technical Error;Configuration Error;User Error </combobox> 
<button top=45 width=50 height=8 left=5 title="Done" style=BS_AUTOCHECKBOX result="Done" >true</button>
<button top=45 width=100 height=8 left=55 title="Accounted" style=BS_AUTOCHECKBOX result="Bill" >true</button>
<static top=55 left=5 width=50 height=8 title="Content:" />
<edit top=65 width=150 height=30 left=5 title="" exstyle=WS_EX_CLIENTEDGE result="Content" />
<button top=100 width=30 height=8 left=55 title="OK" id=IDOK />
</dialog>


As an example, we will use only the EOS dialog. Please save the above EOS dialog definition to a file called dialogs.ini. Please make sure the eos_dialog entry is a single line (without line breaks), otherwise it will not work - it should look similar to this:


[en]

eos_dialog=<dialog title="Questionnaire" width=160 height=110 style="WS_CAPTION|WS_POPUP|WS_SYSMENU" exstyle=WS_EX_APPWINDOW result="desk_issue_status" ><static top=5 left=5 width=50 height=8 title=Supporter /><edit top=5 left=55 width=100 height=8 title="Supporter 1" exstyle=WS_EX_CLIENTEDGE result="Supporter" /><static top=15 left=5 width=50 height=8 title=Customer /><edit top=15 left=55 width=100 height=8 title="" exstyle=WS_EX_CLIENTEDGE result="Customer" /><static top=25 left=5 width=50 height=8 title="Company" /><combobox top=25 left=55 width=100 height=50 delimiters=";" style=CBS_DROPDOWNLIST result="Company" >Monitor;Slovenske Novice;Xlab;Slonep </combobox><static top=35 left=5 width=50 height=8 title="Type of service" /><combobox top=35 left=55 width=100 height=50 delimiters=";" style=CBS_DROPDOWNLIST result="Type" >Technical Error;Configuration Error;User Error </combobox><button top=45 width=50 height=8 left=5 title="Done" style=BS_AUTOCHECKBOX result="Done" >true</button><button top=45 width=100 height=8 left=55 title="Accounted" style=BS_AUTOCHECKBOX result="Bill" >true</button><static top=55 left=5 width=50 height=8 title="Content:" /><edit top=65 width=150 height=30 left=5 title="" exstyle=WS_EX_CLIENTEDGE result="Content" /><button top=100 width=30 height=8 left=55 title="OK" id=IDOK /></dialog>


Please follow these steps to add session dialogs:

  1. Login to your ISL Conference Proxy administration (http://localhost:7615/conf).
  2. Go to Configuration - Advanced - Customize.
  3. Click Create new customization.
    You can combine session dialogs customization with the company logo customization. If you have already created a customization with your company logo (by following the previous chapter - Adding a company logo), simply click on the customization name ("mycustom" for this example) and proceed to step 5.
  4. Change the customization name from the randomly generated string to something simpler - for this example, we shall use "mycustom".
  5. Click upload... next to the desired entry (e.g. Dialog INI file), then Choose, then select a valid dialog file (it is in XML format, please see above for an example - dialogs.ini).
  6. Click Save at the bottom.


You have now created a customization with an EOS dialog and there are a few ways to use it - each way has its own benefits and usage cases. Please refer to the previous chapter (Adding a company logo) for instructions on how to use the created customization.

Was this article helpful?