CCXML Voxeo 1.0 Development GuideHome  |  Frameset Home

This documentation is for CCXML 1.0-Voxeo, which has been superceded by CCXML 1.0-W3C. The CCXML-Voxeo platform is not being updated any longer. The CCXML 1.0-W3C version, however, has many new features and is actively being enhanced. If you're writing a new CCXML application, you should use CCXML 1.0-W3C. Click here for the CCXML 1.0-W3C documentation.
<createcall>  element

The <createcall> element is used for initiating a bridged transfer to the single outbound destination specified in the dest attribute. The tag is a 'fire and forget' element, meaning that the CCXML document is free to perform other tasks while the call is performed.  When the call attempt has been completed, either sucessfully or unsucessfully, an asynchronous event is sent back to the document, which can be caught via the <transition> element, thus allowing the developer to conference the call, or initiate a VXML dialog with the called party, etc.

Note: This tutorial requires the use of outbound dialing priveleges, which must be provisioned by voxeo support. If you have not contacted us to get these permissions, click here to learn how you can get hooked up with this feature.




usage
<createcall dest="(ECMAScript Expression)" name="(ECMAScript Expression)" timeout="CDATA" voxeo-answer-on-media="(true|false)">


attributes
destData Type: (ECMAScript Expression)Default: none - attribute is required
This attribute indicates the telephone URL which evaluates to the target for the outbound call. Not specifying this element will certainly cause a fatal, application-stopping error.
nameData Type: (ECMAScript Expression)Default: none - attribute is optional
The name attribute is an ECMAScript expression that receives the outbound call leg's callid.
timeoutData Type: CDATADefault: Optional
The timeout attribute specifies the amount of time to allow the call attempt to be made. If the call is not answered by the end of the duration of the maxtime attribute, then a 'connection.failed' event will be returned.
voxeo-answer-on-mediaData Type: (true|false)Default: Optional (false)
Determines when audio passes from second call leg to the first. If set to "TRUE," this will pass audio back to the originating call leg upon the first instance of media. In practice, this will typically mean the caller hears the standard "telephone ring" as if they had picked up a normal telephone and dialed the number. If set to "FALSE," there will be silence until an actual answer or callfailure is achieved.

Note that this attribute is primarily used to detect that a phone has been answered in the event that the destination number does not send back the proper ISDN signal upon pickup, (common to some 800 numbers).



parents
none


children
none


code samples
<Createcall-dest-name> sample
<?xml version="1.0" encoding="UTF-8"?>
<ccxml version="1.0">
  <var name="state0" expr="'init'"/>
  <eventhandler statevariable="state0">
    <transition state="'init'" event="connection.CONNECTION_ALERTING" name="evt">
      <var name="line_0" expr="evt.callid"/>
      <createconference name="smallConf"/>
    </transition>
   
    <transition state="'init'" event="ccxml.conference.created">
      <assign name="state0" expr="'docalls'"/>
            <accept callid="line_0"/> 
      <createcall dest="'4078351111'" name="line_1"/>
      <createcall dest="'4078351112'" name="line_2"/>
      <createcall dest="'4078351113'" name="line_3"/>

    </transition>
 
    <transition event="connection.CONNECTION_CONNECTED" name="evt">
          <join sessionid1="evt.callid" sessionid2="smallConf"/>
    </transition>

    <transition event="ccxml.conference.joined" name="evt">
      <log expr="'---- call leg ' + evt.callid + ' has joined the conference ----'"/>
    </transition>
   
    <transition event="ccxml.conference.unjoined" name="evt">
      <log expr="'---- call leg ' + evt.callid + ' has unjoined the conference ----'"/>
    </transition>   

    <transition event="call.CALL_INVALID" name="evt">
      <if cond="evt.callid == line_0">       
        <destroyconference conferenceid="smallConf"/>
        <assign name="state0" expr="'conferencedestroyed'"/>
      </if>
    </transition>   
   
    <transition event="ccxml.conference.destroyed">
      <exit/>
    </transition>

    <transition state="'docalls'" event="error.*" name="evt">
          <destroyconference conferenceid="smallConf"/>
      <exit/>
    </transition>

    <transition event="error.*" name="evt">
      <log expr="'---- an error has occurred (' + evt.error + ') ----'"/>
      <exit/>
    </transition>

  </eventhandler>   
</ccxml>

<Createcall-voxeo-answer-on-media> sample
<?xml version="1.0" encoding="UTF-8"?>
<ccxml version="1.0">
  <var name="state0" expr="'init'"/>
  <eventhandler statevariable="state0">
    <transition state="'init'" event="connection.CONNECTION_ALERTING">
      <accept/>     
    </transition>

    <transition state="'init'" event="connection.CONNECTION_CONNECTED" name="evt">
      <var name="callid_in" expr="evt.callid"/>
      <assign name="state0" expr="'calling'"/>           
      <createcall dest="'tel:+18001112222'" voxeo-answer-on-media="'true'"/>
    </transition>   
   
    <transition state="'calling'" event="connection.CONNECTION_FAILED">
      <log expr="'call failed'"/>
      <exit/>
    </transition>
   
    <transition state="'calling'" event="connection.CONNECTION_CONNECTED" name="evt">
      <!--  ***  NOTICE: TERMDIGITS DO NOT WORK WITH A 2 PARTY JOIN  ***  -->
      <join id1="callid_in" id2="evt.callid" voxeo-termdigits="'#'"/>
    </transition>   
   
    <transition event="call.CALL_INVALID" name="evt">
      <if cond="callid_in == evt.callid">
        <exit/>
      </if>
    </transition>

    <transition event="error.*" name="evt">
      <log expr="'an error has occured (' + evt.error + ')'"/>

      <exit/>
    </transition>
  </eventhandler>   
</ccxml>



additional links
W3C Specification


  ANNOTATIONS: EXISTING POSTS
awirtz
9/22/2005 3:28 PM (EDT)
In the first example you are not setting state0 equal to 'init' initially, so the CONNECTION_ALERTING event goes unhandled and the initial call is never answered.

-Aaron
Michael.Book
9/22/2005 5:15 PM (EDT)
Nice catch, Aaron...

This will be corrected.  Thank You!


~ Michael

jagadishsuri
6/27/2006 11:30 AM (EDT)
Hi,

I am using the CCXML for initiating the call for the outbound coding.When the call is connected iam catching the transition event

<transition event="connection.CONNECTION_CONNECTED">

but how can i catch the event when the call is not answered I mean when the call is being made but the person is not lifting the phone.
How can we catch this event.I can explain better if iam not clear.
and also for the answering machine i need to catch the event.

Thanks,

Regards
Jagadish.suri
MattHenry
6/27/2006 8:13 PM (EDT)


Hello there,

Assuming that I understand your question correctly, I think that you would want to leverage the "connection.CONNECTION_ALERTING" event, as defined in our CCXML event listing section of the documentation:

http://docs.voxeo.com/ccxml/1.0/event_listing_ccxml.htm

Regarding your question about answering machine detection, we also detail this within our documentation as well:

http://docs.voxeo.com/ccxml/1.0/ansdetection_ccxml.htm


Let me know if you have any remaining questions,

~Matthew Henry
mho
2/27/2007 5:21 PM (EST)
My understanding was that ifwe set voxeo-answer-on-media="'true'" as in the <Createcall-voxeo-answer-on-media> sample , I should be able to hear the the other guy's phone ring until they pick it up. I just tried this example and it seems that the connection is made only after they pick it up. Until then I only hear silence. Is there a trick to this?

Mho
MattHenry
2/27/2007 10:43 PM (EST)


Hi Mho,

My testing shows the same results over here. I'm going to chat with the engineers about this early tomorrow; might be that we are *both* doing something wrong here.

=^)

Stay tuned,

~Matthew henry
mho
2/28/2007 4:26 PM (EST)
I have a little more insight on this:
I tried the same application in Production environment. This time I got slightly different result. If the number that I am calling is busy, the busy signal does not come through but if it is ringing I can hear it befoer they pick up.

So there is a slight difference in behavior between production and staging (prodcution does let the ringing come through). However both production and staging behave the same way if we are calling a busy line. (I should point out that I had to work hard to find a phone number that actually gave a busy signal).
voxeojeff
2/28/2007 6:20 PM (EST)
Hello Mho,

The functionality of the <voxeo-answer-on-media> attribute will depend on the platform you are using:

VoiceCenter 5.5, by default, routes through TDM (5300).  This implies that voxeo-answer-on-media should function as intended, which means we should hear any ringtones, media or announcement (hold music and such) if the other side is producing them.

Prophecy, by default, will route through SBCs, which do not produce any media until the actual call is answered.  Therefore, answer-on-media will not function properly, and you will hear silence until an actual answer or callfailure is achieved.

I hope this helps!

Cheers,

Jeff Menkel
Voxeo Corporation
asd123
9/16/2008 8:44 AM (EDT)
can i use same service number to make inbound and outbound call
i search in ccxml but not found
voxeoblehn
9/16/2008 9:36 AM (EDT)
Hello,

Unfortunately, you can not use the same number for inbound and outbound dialing. You can assign yourself an inbound number in our Evolution Staging environment, as well as create a ticket to have an outbound token assigned to your application. Outbound dialing rights will need to be enabled for you account as well. As the inbound number is a bit self explanatory, if you are looking for some additional information on token-based outbound dialing in CCXML, I have provided the link to our documentation below. Please let me know if I have misunderstood your question or if we can be of further assistance in any way.

http://docs.voxeo.com/ccxml/1.0-final/t_7ccxml10.htm

Regards,

Brian L.
Voxeo Support

login



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