Introduction to CCXML, Part V
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:
- Introduction to CCXML, Part I
- Introduction to CCXML, Part II
- Introduction to CCXML, Part III
- Introduction to CCXML, Part IV
Overview
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.
conference_call.pl
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") { &joinConference($conferenceCode); # if first caller, create conference } else { &createConference($conferenceCode); } # get conference code } else { &getConferenceCode; }
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