CallXML 3.0 Development Guide Home  |  Frameset Home


<joinconference>  element


The joinconference element is used in conjunction with the createconference element to create multiparty conferencing. Specifically, this element allows you to join a caller to a specific existing conference.


usage

<joinconference entertone="string - URI" exittone="string - URI" listenonly="(true|false)" termdigits="(123456789*#|ABCD)" test="CDATA" value="ID" value-is="STRING" value-is-not="STRING">


attributes

entertone Data Type: string - URI Default: Optional (true)
The entertone attribute allows the developer to modify or turn off entirely, the default tone that plays when a user joins an existing conference. Allowable values are 'false' or the user may specify a wav file to play instead of the default 'beep' tone that is normally heard.
exittone Data Type: string - URI Default: Optional (true)
The exittone attribute allows the developer to modify or turn off entirely, the default tone that plays when a user leaves an existing conference. Allowable values are 'false' or the user may specify a wav file to play instead of the default 'beep' tone that is normally heard.
listenonly Data Type: (true|false) Default: Optional (false)
The listenonly attribute allows the developer to specify that a member of the conferenece may eavesdrop only, and effectively create a half-duplex conference, (i.e. listenonly='true' means that a conference particpant will not be heard by other members of the conference)
termdigits Data Type: (123456789*#|ABCD) Default: none - attribute is optional
This attribute holds the list of touch-tone digits which can terminate the current caller action. Note that for each termdigit specified, there should be an <ontermdigit> handler in the code to catch the event. Allowable values are any one of "012356789*#", the ordinary DTMF (Touch-Tone) keypad possibilities, plus the special keypad tones found on some telephones "ABCD".
test Data Type: CDATA Default: Optional
The 'test' attribute is a new supplement to the CallXML markup that permits the developer to execute the contents of a container element, or action element, based on whether or not the specified condition is met. If the defined condition is met, then the code contained within the element is then executed. If the condition is not met, then the application resumes execution with the next sequential container container element in the document.
value Data Type: ID Default: Required
The value attribute is used to specify a unique conference identifier. The value is set to the session variable of $conferenceid; which is used internally by the CallXML platform.
value-is Data Type: STRING Default: none - attribute is optional
Another new attribute, 'value-is', grants the developer with the ability to perform conditional logic upon container elements, or action elements for the first time within the CallXML markup. The value specified in the 'value-is' attribute specifies a string to compare against any 'value' attributes. If the 'value' and 'value-is' equate to 'true', then the element specified will execute. If the value equates to 'false' then the element will be skipped during document execution.
value-is-not Data Type: STRING Default: none - attribute is optional
Another new attribute, 'value-is-not', grants the developer with the ability to perform conditional logic upon container elements, or action elements, for the first time within the CallXML markup. The value specified in the 'value-is-not' attribute specifies a string to compare against any 'value' attributes. If the 'value' and 'value-is-not' equate to 'false', then the element specified will execute. If the value equates to 'true' then the element will be skipped during document execution.



code samples

<3.0 joinconference> sample
<?xml version="1.0" encoding="UTF-8" ?>

<callxml version="3.0">



<assign var="moderator" value="'false'"/>
<assign var="moderator" value="'true'" test="'$session.callerID;' = '4071112222'"/>

<do label="modBlock">

<playaudio value="welcomeConf.wav"
            say="Welcome to the conference bridge."/>
<log>*** MODERATOR = $moderator; ***</log>
</do>


<do label="confBlock" choices="[5 DIGITS]">

  <playaudio value="enterConferenceID.wav"
          say="Enter your 5 digit conference eye dee now."/>
     
  <wait value="5s"/>

    <on event="choice">
    <assign var="conferenceName" value="$session.lastchoice;"/>
    <log>** CONFERENCE NAME  =  $conferenceName; **</log>
    <goto value="#createJoin"/>
    </on>
   
   
    <on event="maxsilence">
      <playaudio value="noMatch.wav" say="I'm sorry, that didnt match anything I was expecting."/>
      <goto value="#confBlock"/>
    </on>
   
    <on event="choice:nomatch">
      <playaudio value="nomatch.wav" say="I'm sorry, I didn't understand that."/>
      <goto value="#confBlock"/>
    </on>   
  </do>

 
  <do label="createJoin">
  <playaudio value="joinConference.wav" say="You will now join the conference. Press the pound key to leave the conference."/>

    <createconference value="$conferenceName;" var="conferenceid"/>
    <joinconference value="$conferenceid;" termdigits="#"/>

  <on event="hangup">
    <log>** HANGUP DETECTED **</log>
    <!-- we must ALWAYS tear down conferences when using create/join -->
    <destroyconference value="$conferenceid;" test="$moderator; = 'true'"/>
    <exit/>
  </on>

  </do>
 

<!-- this block is required to catch the termdigit from conference exit -->
  <do label="catchConfExit" choices="#">
  <wait value="2s"/>
  <on event="choice">
    <log>** CAUGHT TERMCHAR FROM CONF **</log>
  </on>   
  </do>


  <do label="leaveConference" choices="1,2">
      <playaudio value="leaveConference.wav"
            say="You have left the conference. Press 1 to re join the conference, or press 2 to join a new conference"/>
      <wait value="10s"/>
     
      <on event="choice:1">
        <log>** REJOINING CONFERENCE **</log>
        <goto value="#createJoin"/>
      </on>
     
      <on event="choice:nomatch">
        <goto value="#leaveConference"/>
      </on>

      <on event="choice:2">
        <log>** STARTING A NEW CONFERENCE **</log>
        <goto value="#modBlock"/>
      </on>
     
      <playaudio value="kickedOut.wav"
            say="we did not hear anything. we will now end the call."/>
      <hangup/>
  </do>
 
  <on event="hangup">
    <log>** HIGHER SCOPE HANGUP DETECTED **</log>
    <!-- we must ALWAYS tear down conferences when using create/join -->
    <destroyconference value="$conferenceid;"/>
    <exit/>
  </on>

</callxml>



additional links

none


  ANNOTATIONS: EXISTING POSTS
0 posts - click the button below to add a note to this page

login



© 2012 Voxeo Corporation  |  Voxeo IVR  |  VoiceXML & CCXML IVR Developer Site