Monday, April 16, 2012

Polycom Video chat-enabled in any web page

The fixpack AORN-8SUKPR provides you an new capability I have used in my two previous blog entries. The ability to have a Video chat-enabled through a simple Web page.

The normal way to have access to a online meeting through Web is to use an url formatted like that:
[Hostname] +"/stmeetings/room/" + roomInformation.owner + "/" + roomInformation.permaName

In my example, I have typed in my preferred internet browser this url : http://meeting.ibmuc.lab:9081/stmeetings/room/vincent.perrin@polycom.com/webav 
The result, in that case, is:


The fixpack introduces a new parameter "?community=true". In that case, you will only see the video-chat in your web page. My new url is: http://meeting.ibmuc.lab:9081/stmeetings/room/vincent.perrin@polycom.com/webav?community=true
The result, in that case, is:
You don't have access to other meeting capabilities like screen & content sharing, library...
Interesting thing: Video will automatically start... :) :) That's great and really easy to use...

Undocumented REST APIs are also available in the fixpack to create a meeting room, retrieve room information...

Room Creation:
Post Method Parameter:


OriginType:  Used to indicate from where the room originated
OriginID: Used to store an associated ID for the room, when the room originated from some other source to be used with originType.
isDisposable: Indicates whether or not the room is a disposable, instant meeting room.
conferencingInfo: a JSON-formatted string representing the A/V conferencing info for the room. In the case of that fixpack, the code uses a file named serviceprovider.json.

Room Information:
GET method with this url: http://meeting.ibmuc.lab:9081/stmeetings/restapi?originId=WebAV&originType=WebAV
JSON response:

{
   "count": 1,
   "start": 0,
   "remaining": 1,
   "results": [
      {
         "activeUserCount": 1,
         "allowsVideo": true,
         "callData": "",
         "conferencingInfo": {
            "AutoMute": false,
            "ConferenceServiceName": "Polycom Conference Service",
            "DynamicConferencesEnabled": false,
            "ReuseDynamicConferencesDialIn": false,
            "capabilities": 14,
            "dynamicConference": false,
            "helpURL": "",
            "id": "com.ibm.telephony.conferencing.plcmav.PlcmAVConferenceService",
            "label": "Polycom Conference Service",
            "type": 1
         },
         "createdDate": 1334597647001,
         "creator": "vincent.perrin@polycom.com",
         "description": "",
         "fromCalendar": false,
         "hasPassword": false,
         "id": "6436d7ae-d037-4527-a835-e5522fd2085b",
         "isEncrypted": false,
         "isRestricted": false,
         "isUnlisted": false,
         "joinPath": "room\/vincent.perrin@polycom.com\/webav",
         "largeMeetings": false,
         "lastAccessed": 1334597660751,
         "librarySize": 0,
         "managersList": [
            "vincent.perrin@polycom.com"
         ],
         "name": "WebAV",
         "org": "",
         "originId": "WebAV",
         "originType": "WebAV",
         "owner": "vincent.perrin@polycom.com",
         "ownerName": "Vincent Perrin",
         "permaName": "webav"
      }
   ]
}


In all of these demo, I leverage Polycom Realpresence infrastructure.