Archive for March, 2014

Adding Duration Field to Captivate Content in Adobe Connect

One common thing content publishers may notice is that Captivate content (by default) doesn’t get a ‘duration’ field in the Adobe Connect UI (as seen below in the first screenshot).  If you want this field (if it is applicable to your Captivate content), follow the steps below:

Notice no ‘Duration’ field information in the Captivate Project by default.

In order to get the duration field to populate for Captivate content (as of now with Captivate 7), you can manually add the ‘Duration’ field to the breeze-manifest.xml file before you upload / publish to Adobe Connect.

First, instead of publishing to Adobe Connect directly, you need to publish locally to the desktop using the SWF/HTML5 publish option (below):

In the Publish menu, select SWF/HTML5 option and publish locally.

 

Once you do this, you then need to navigate to the source project files and find the ‘breeze-manifest.xml‘ file that is included:

 

Navigate to where you saved the project locally and open the breeze-manifest.xml file.

 

When you open the xml file in an editor, you will see the following format (it will look different depending on your quiz content, etc):

 

By default, there will be no ‘duration’ field in the document XML node.

 

You would then add duration=”xx” ‘ to the ‘document’ XML node as follows:

 

Add ‘duration=’ to the xml as shown above and manually put your duration (in seconds).

 

You will need to manually calculate the duration of the entire Captivate presentation (again if applicable) and then put that value in here (in seconds).  When you do this, the slide count should also be visible in the published output.

Then, save the file and zip up your entire project again to a zip file (don’t zip up a folder full of the project files, but rather all the source files without a containing folder).  Upload the zip as Content manually in the Content directory.

 

You will see duration now (slides and time) in the final output.

XML API Tips: Listing Users’ Telephony Profiles

As an Administrator, often times you may want to view other users’ telephony profiles in order to troubleshoot issues or administer additional profiles, etc.  From the UI, there is no way easy way to get at other users’ audio profiles.  From the API perspective, there is one method that often goes unlooked (although it is documented).

The ‘telephony-profile-list‘ API will only show the caller’s telephony profiles unless you actually specify a principal-id in the call.  If you specify the additional ‘principal-id=XXXXXXXX‘ parameter, you will get the list of all that users’ telephony profiles.  You can then obtain the profile-id of a specific profile, and continue to fetch additional information by using the ‘telephony-profile-info’ API call to get all the fields and values you are looking for, for that specific profile.

Here is an example of how to fetch the list of other users’ telephony profiles on the system:

First, log in as an Administrator.

Then find the users’ principal-id you want to search on.

Lastly, run this call to get the list of that users’ telephony profiles:

https://my.adobeconnect.com/api/xml?action=telephony-profile-list&principal-id=12345678

Result:

<results>
<status code=”ok”/>
<telephony-profiles>
<profile profile-id=”123456789″ provider-id=”234567890″ profile-status=”enabled”>
<adaptor-id>arkadin-adaptor</adaptor-id>
<name>Arkadin</name>
<profile-name>My Arkadin Profile</profile-name>
</profile>
<profile profile-id=”987654321″ provider-id=”098765432″ profile-status=”enabled”>
<adaptor-id>intercall-adaptor</adaptor-id>
<name>InterCall</name>
<profile-name>My InterCall Profile</profile-name>
</profile>
</telephony-profiles>
</results>

XML API Tips: Identifying a Sco’s Owner

A common ask from users is how to identify the creator of a content object or meeting, etc. in Adobe Connect.  Sometimes it’s easy to decipher (from an Admin perspective) who ‘owns’ a meeting, by seeing the specific meeting (for example) in a specific user’s ‘User Meeting’ folder.  However that doesn’t necessarily mean that they ‘created’ the meeting.  Also, if a meeting is sitting in the Shared Meetings area, and you want to know who created the meeting initially, it wouldn’t be possible (via the UI).  In order to see who created the object or meeting, you can use the ‘sco-by-url’ API call.  Here’s how:

As an Administrator, log in and find the URL of the meeting or sco in question.

Then, formulate the web service call as such:

https://{connectDomain}/api/xml?action=sco-by-url&url-path=XXXXXXX

Where the url-path = the actual custom (or auto generated) url path of your meeting or content.  The format will look like this: ‘/myMeeting/’.

Here’s an example:

Call:

https://my.adobeconnect.com/api/xml?action=sco-by-url&url-path=/jimssharedmeeting/

Result:

<results>
<status code=”ok”/>
<owner-principal type=”content” principal-id=”12345678″ account-id=”87654321″ has-children=”false” is-hidden=”false” is-primary=”false” tos-status=””>
<ext-login>jimjohnson@mycompany.com</ext-login>
<login>jimjohnson@mycompany.com</login>
<name>Jim Johnson</name>
<email>jimjohnson@mycompany.com</email>
</owner-principal>
<sco sco-id=”123456789″ account-id=”87654321″ display-seq=”0″ folder-id=”12345678″ icon=”meeting” lang=”en” max-retries=”” source-sco-id=”98765432″ type=”meeting” version=”0″>
<url-path>/jimssharedmeeting/</url-path>
<date-begin>2014-03-31T09:00:00.000-04:00</date-begin>
<date-created>2014-03-31T09:10:12.220-04:00</date-created>
<date-end>2014-03-31T10:00:00.000-04:00</date-end>
<date-modified>2014-03-31T09:10:12.220-04:00</date-modified>
<name>Jim’s Shared Meeting</name>
</sco>
</results>

Estimating the Size of Archive Meeting Recordings

I was recently asked if I had any test data showing how big a recording becomes based on the use case during the Connect Meeting being recorded. While plenty of anecdotal information exists,  I thought it prudent to begin a list of use cases and show what the size was after five minutes of each use case. This article will be a work in progress as I add different use cases in order to offer various concrete examples to use as a basis to estimate recording size based on what is being recorded, whether multiple Video pod camera feeds or screen-sharing or VoIP, etc. Among its purposes, this exercise will help meeting hosts to avoid exceeding the 2GB limit on Adobe hosted clusters for recording size.

Most relevant among the variables considered is the notion that recording size is affected by the streams present in the meeting being recorded. Typically a Video pod with VoIP (640X480) shared per hour will result in an FLV of around 200MB. Sharing a screen in a meeting (1680X1050) will result in an FLV size of around 150 MB. PPT/PPTX files uploaded to a meeting room and displayed while recording will not play a significant part in recording size because the recordings link to external content rather than contain that content intrinsically. For example,  a meeting with two Video pod streams could have recording size of around 400MB and a meeting having a single Video pod stream with VoIP and screen-sharing could end up around 350MB. The actual results may differ as the screen resolution of the publisher, the type of sharing and the amount of movement are all variables that can affect recording size: If there is little movement on screen or in the Video pod stream, the recording size will be less than it would be with a lot of movement.

Here are some concrete examples to use for planning; each recording is approximately five minutes in length:

A meeting with a single video feed for the Presenter to display and scroll through an uploaded PowerPoint file while using integrated telephony:Title: Recording Size Test_0
Type: Recording
Duration: 00:05:31
Disk usage: 8335.3 KB

rec-size1.fw

 

A recording of a meeting with six video feeds and an uploaded PowerPoint file
Title: Planning Troubleshooting and Support Meeting Room _15
Type: Recording
Duration: 00:05:48
Disk usage: 13873.8 KB

rec-size2.fw

 

A recording of a meeting with four video feeds and screen sharing an application with normal activity
Title: Planning Troubleshooting and Support Meeting Room _16
Type: Recording
Duration: 00:05:56
Disk usage: 21660.8 KB

rec-size3.fw

More examples to follow.

How Meeting Folder Permissions Affect Access to a Meeting Room

The question keeps coming up, what happens to Meeting accessibility and permissions if I move a Meeting room from the a User Meeting folder to the Shared Meetings folder?

Let’s look at it from multiple angles beginning with the permissions on Shared Meeting folder itself and then moving to the Meeting room access options and then to the Meeting roles.

1. The Shared Meeting folder itself has two permissions options: Manage and Denied:

sharedfolderperm.fw

If a registered user is granted Manage permission over the Shared Meeting folder by an Administrator, then that registered user can gain (at a minimum), participant access to every meeting in the Shared Meetings folder. Of course, a participant can do very little within a room:

sharedfoldermeeting.fw

Manage permissions on the Shared Meetings folder does not, by itself, allow the power to change room settings. The settings will be viewable but cannot be changed:

editinfo.fw

Clicking save will quickly manifest insufficient permissions:

notauth.fw

Manage permissions on the Shared Meeting folder allows for deletion of  a meeting in the Shared Meetings folder:

delemeet.fw

delemeet1.fw

2. Separate from the Shared Folder permissions, are the room access options under Connect Central for any Meeting Room:

editinfoopt.fw

These Meeting access options do not override the folder options. While a user with Manage permissions over the Shared Meetings folder will still need to enter a passcode if one is set, the manage permissions allow the passcode to be viewed in Connect Central :

passcd.fw

 

passcdview.fw

3, Meeting roles set will not be affected by folder permissions even if the Denied Access is chosen at the Shared Meeting folder level:

denied.fw

A user who has Denied access to the Shared Meetings folder cannot view the the folder Connect Central:

notauth.fw

Meeting access permissions and roles apply however when directly hitting the Meeting URL even if the user is denied access to the Shared Meetings folder:

notstart.fw

in.fw

 

How to Find and Administer a Meeting by Searching on its URL

Problem: Sometimes the meeting library in Connect become quite large and it may be difficult for an administrator to find a Meeting room that has been created by a host.

Solution: Generally a meeting created by a host will be under the user directory of that host (My Meetings for that particular Host), but not always. The User Meeting folder can contain hundreds of different meeting folders and scrolling through them page by page by page in the Connect Central GUI can be laborious.

usermeetings.fw

Next Page…. Next Page…. Next Page…..

nextpage.fw

One simple search trick is to place a number directly in the start parameter of the URL to skip to subsequent pages and user meeting folders. Here I have replaced the starting number of “0” with the number “500” and when I refresh the screen it will skip folders and accelerate my search:

start.fw

start500.fw

Note: You may also adjust the rows URL parameter as well: rows=1000

When you want to find a specific meeting to administer and you know the URL, a quick way to find the meeting folder in Connect Central is to use the Custom URL Report under the Administration Tab>Reports>View Custom URL:

customurl.fw

Our labeling of  this search option, “View Custom URL” is really is a bit of a misnomer because you can search for any meeting by its URL whether the URL is custom or automatically generated by Connect in Connect Central; all URLs are obviously unique. Here I search for a meeting URL with the suffix “es” on the platinum domain and it shows me the meeting information which gives me a hook that makes it very easy to find that meeting folder to administer:

searchedge.fw

Now simply take the title of the meeting and place it into the Connect Central search parameter to find the meeting folder:

searchtitle.fw

Connect Central has some great tools even if the possibilities they offer are not always intuitive.

Connect on-premise Server: Configure additional ports for RTMP traffic

By default the meeting server (FMS) in Connect binds to port 1935.  Here’s how to add additional ports like port 80 for use with the meeting server.

This should work with all versions of Connect.  I am assuming you would like to use port 80 and 443 in addition to 1935  (all in rtmp, no encryption).
As Connect consists of two servers, the application server (Tomcat) and the meeting server (FMS) you need to configure a second IP address and FQDN in order to bind two services to port 80.  Make sure your new FQDN resolves to the new second IP address. The second IP and FQDN will be used for the meeting traffic.

I am using these values in my setup:

Application Server: connect912.adobe.com – IP 10.1.1.1
Meeting Server: connect912meeting.adobe.com – IP 10.1.1.2

So here we go:

  • Make sure you can ping both names and they resolve to the correct IP addresses.
  • Open the server console and set the new meeting server FQDN in the “external name” field and save your changes.

In my setup this is connect912meeting.adobe.com:

consoleExternalName

 

  • Configure the meeting server to listen on the new IP:Port.

In my setup I am adding port 80 and 443 in addition to the default port 1935.

Open the custom.ini (by deault  in C:\Connect\9.1.1\ if running Connect 9.1.x) and add these lines:

DEFAULT_FCS_HOSTPORT=10.1.1.2:80,443,1935
RTMP_SEQUENCE= rtmp://external-host:1935/?rtmp://localhost:8506/,rtmp://external-host:80/?rtmp://localhost:8506/,rtmp://external-host:443/?rtmp://localhost:8506/

Replace 10.1.1.2 with your meeting server IP address and also make sure the RTMP_SEQUENCE is in one line. Save the changes.

  • Restart the services, FMS and Adobe Connect service.

Once the services are back up and running you should be able to start a new meeting.  If there are no firewall restrictions a meeting should connect on the first port listed in the RTMP_SEQUENCE. In this example port 1935.
To test the connection on the other ports, block outgoing connections to port 1935 on your client firewall.  If the meeting is still open on your client it should briefly disconnect and reconnect on the next available port. In my setup this would be port 80.

You can check which port you are connected to in a meeting by holding down the shift key and clicking “About Adobe Connect” from the help menu (top right in your meeting).

AboutAdobeConnect_RTMPSequence

 

 

update (03/04/2014): 

It appears that with version 9.2 you also need to specify the IP address the application server binds to. By default it binds on 0.0.0.0:80, so on all available IPs on port 80.With Connect 9.2 I have come across an issue where the application server does not properly create a listener when port 80 is used for the meeting server as well.
The easiest way around this problem is to specify the IP in the application server config so it starts a listener on this one IP only.

In the server.xml in \appserv\conf\ find this section:

    <Connector port=”80″ protocol=”HTTP/1.1″
            executor=”httpThreadPool”    
           enableLookups=”false”
               acceptCount=”250″
               connectionTimeout=”20000″
               redirectPort=”443″
               URIEncoding=”utf-8″/>

And add your application server IP address:

    <Connector port=”80″ protocol=”HTTP/1.1″
            address=”10.1.1.1″
           executor=”httpThreadPool”    
           enableLookups=”false”
               acceptCount=”250″
               connectionTimeout=”20000″
               redirectPort=”443″
               URIEncoding=”utf-8″/>

Save the change and restart your services once again.

Where is my Engagement Dashboard?

At some point you may want to use the Engagement Dashboard to track your users’ attentiveness in an Adobe Connect Meeting room, but wonder where oh where it may be…  You glance up at your Pods menu (as a host) and see it is not listed.  You may wonder why.  Well, here’s why…

If you want to use the Engagement Dashboard, one of the following scenarios has to be true:

  • You are a Seminar Host and created a Seminar Room.  Seminar Rooms have the Engagement Dashboard in the Presenter Only Area.
  • You are an Event Manager and created an Event that points to a meeting, seminar room, or virtual classroom, in the Event Management area of Adobe Connect.  If you point an Event to any meeting, virtual classroom, or seminar room, it will have the Engagement Dashboard in the Presenter Only Area.
  • You are a Training Manager AND Meeting Host and you create a Virtual Classroom (you must be both to even create a VC in the first place), it will have the Engagement Dashboard in the Presenter Only Area.
  • You are an Meeting Host AND Event Manager and you create a Meeting (just being a Meeting Host will NOT give you access to the Engagement Dashboard).  Only then will the Meeting have an Engagement Dashboard in the Presenter Only Area.

Situation where you will have a room open and you won’t have the Engagement Dashboard as a Pod option:

  • You are a Meeting Host but NOT an Event Manager as well.  You will not see the Engagement Dashboard in the available pods and it will not be in the Presenter Only Area.

Additional Resources around the Engagement Dashboard…

http://blogs.adobe.com/adobeconnect/2012/06/sneak-peek-the-engagement-dashboard.html

https://www.connectusers.com/tutorials/2013/06/rules_of_engagement/index.php

engage1

engagement2