Thursday, September 19, 2013

Scheduling an Audio conference with a single HTTP Request

When Anenth of TripThirsty blogged about creating a conferencing app overnight, that started me thinking. Since KooKoo also provides a simple <conference> tag, what is the least amount of code we need to create a conference scheduling app.

Since we all live in the cloud :), I did not want to host my code anywhere and it should be very minimal.

KooKoo takes care of telephony, so I searched for a scheduling service. Sometime back, I used to use Momentapp, but looks like it is down now. So finally I zeroed in on EasyCron. They had a good enough API and I signed up for a free account. Now I had all the ingredients in place and all I had to do was a cook up a single HTTP request recipe.

So without further ado, the HTTP request to schedule an audio conference:

token=[your easy cron token]
&cron_expression=[cron expression to schedule the call]
&[phone number to invite]%26api_key%3D[kookoo api key]%26outbound_version%3D2%26extra_data%3D%253Cresponse%253E%253Cconference%253Eroom_435%253C%2Fconference%253E%253C%2Fresponse%253E&email_me=0

Note: The KooKoo URL is URL encoded. You can find details about the outbound request here. The cron expression parameter takes a simple cron expression. Details of cron expression are here. Replace the values in [] in the above request with your account details.

What we are doing is simple, we are pipelining KooKoo outbound request which places a caller into a conference with the API request for Easycron to schedule the request. So at the specified time, EasyCron, makes a HTTP request to KooKoo which places the call and pulls the participant into a conference.

So there you have it, a single HTTP request to schedule an audio conferencing call. Well, its not exactly a single request as you have to make one request for every participant you want to add to the conference, but hey, you get the idea.

So go ahead and sign up for KooKoo and start your conferencing solution. Call costs are at 40ps/min local and 70ps/min STD.