March 5, 2021
Hot Topics:

Introduction to CCXML, Part V

  • By Jonathan Eisenzopf
  • Send Email »
  • More Articles »

In this final introduction to the CCXML language, we will develop a simple multi-party conferencing system in Perl.

In case you missed them, you can find previous parts in this series here:


Creating a multi-party conference call with CCXML requires a dynamic script that is able to handle multiple callers. The first caller is the one that creates the conference call. Subsequent callers join in to the existing conference call. The script must keep track of who the first caller is, and what conference call the other parties should be connected to. For this example, what I do is ask each caller for a conference number that must be unique for the conference, though all parties must use the same unique conference number.

When the first party initiates the call, it creates an empty flag file that corresponds to the conference number. When other parties enter this same number, the system checks for the file. If it exists, then the system knows that the conference is already in session and that the caller should join the existing call as opposed to creating a new conference call. 

This is a very simplistic method of tracking conference calls. In a real application, you would probably use a database to keep track of the calls. My intent was to expend as little effort as possible to script up a Perl program that allow multiple callers to dial into a conference call.


You can view the full source of this script here. The main body of the script is listed below:

if (param('conference_code')) {
   my $conferenceCode = param('conference_code');

   # if conference already exists, 
   #join the conference
   if (-e "$conferenceDirectory/$conferenceCode") {
   # if first caller, create conference
   } else {

# get conference code
} else {

The logic of the code above reads as follows:

If the conference_code field was passed to the script (meaning the user entered the 10 digit conference code) and a file exists whose name is the same as the conference code (meaning that someone has already created the conference call) then join the conference; otherwise, create a new conference. If the field wasn't passed (meaning this is the first time the script was executed by the caller) then we ask them for the conference number that they would like to join (which submits the number back to the script via the conference_code variable).

So the first caller will execute the following subroutines:

  • getConferenceCode
  • createConference

Subsequent callers would execute the following subroutines:

  • getConferenceCode
  • joinConference

Page 1 of 2

This article was originally published on December 8, 2002

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date