Posts in Category "Application"

How long does it take to publish Connect recordings as MP4s?

An MP4 recording will be published and posted within 24 hours of invoking the conversion.

  • the actual amount of time it takes to convert a recording depends on many factors including:
  • the length of recording
  • the queue of recordings to be published on the publishing servers
  • the queue of recordings within Connect prior to transfer to the publishing servers (they are submitted in parallel to the conversion servers)
  • the time it takes to download the converted MP4s from the conversion servers back to Connect
  • and variables commensurate with asynchronous processing

Note also that if for any reason the conversion to MP4 should fail,  we will retry multiple times depending on the cause of the failure. Retries will extend the processing time required before the recording is available. The two most significant variables are the length of the recording and how many recordings are ahead in the queue.

Connect Console Values Populate to Wrong Profile in the sip.xml File

Issue: When installing FMG as part of an on-premise Connect deployment, the fresh installation of FMG includes many default profiles in the sip. xml file. When you enter values from Connect console (port 8510 locally on the server), those values are populated to the first profile that is listed in sip.xml (sipPhone) and not to the correct sipGateway profile which is called from the workflow.xml file.

The expected behavior is that the values from Connect console should update the sipGateway profile rather than the first profile in sip.xml

Workaround: The Adobe Connect Support team is using currently approaching this problem from one of two possible ways:

  • You may copy a sipGateway profile from a vertsion of FMG prior to version 2.x and paste that into FMG 2.x.
  • You may call sipPhone profile from workflow.xml

Note: In FMG prior to version 2.x, sipGateway was the first profile listed in sip.xml.  The workflow.xml file checks the input  number and on the basis of that chooses the profile from sip.xml. With default FMG settings it will be using ‘SipGateway’ most of the time. This is scheduled to be fixed in Connect 9.3.

Using a Named Instance of SQL Server with Adobe Connect

Issue: When using  a named instance of SQL server with Adobe Connect, if you enter the name of the instance during installation, the connection to the database will fail.

Workaround: Instead of using the name of the instance, you may enable TCPIP on the instance and use the IP address and then enter the port number for which the named instance is configured on the separate line as appropriate; if the named instance is listening on port 1833 (instead of 1433), then you would use the IPAddress (192.168.1.1)  and then the port number (1833) in the appropriate fields.

Using the instance name during installation after Connect version 8 will not work. The best approach is to use the port number of the instance and the IP Address of the database server.

To troubleshoot this, use SQL Server Configuration Manager:

Screen Shot 2014-02-21 at 7.59.05 AM

  • Make sure the instance has TCP/IP enabled.
  • Check to see what port the instance is listening on for that IP.
  • Use the IP address as server name (no instance name).  Put the port number in the port number field.
  • Make sure the named instance is listening on the port entered in Connect

Screen Shot 2014-02-21 at 7.59.41 AM

Screen Shot 2014-02-21 at 8.00.24 AM

Beginning with Connect version 8, the installer changed; in previous earlier versions, you would need to enter the the server instance and port on the same line.  The  newer installer has the port on a separate line:

HOST: INSTANCE-IP-ADDRESS
PORT: INSTANCE PORT-NUMBER
DATABASE NAME: SAMPLE-NAME
USER: SAMPLE-USER
PASSWORD: ****************
CONFIRM PASSWORD: ****************

The changes in the installer (beginning with Connect version 8) caused some confusion with named instances.

A named instance will work on an initial installation.  Sometimes, in an effort to troubleshoot you may initially point to a conventional instance of SQL in order to establish the installation and then point the established Connect installation to a named instance. The DB connection from an established Connect installation is more robust and forgiving than that of an initial installation.  After the installation is complete, you can modify custom.ini to include the instance name.

Note: You could use the server name, but you would need to ensure that the named instance has NAMED PIPES enabled.

Select Captivate content will not publish directly to an Adobe Connect server

Issue: When attempting to publish Captivate content that includes a random question slide linked to an empty question pool directly to an Adobe Connect server Captivate crashes. We reproduced this issue with a Captivate file composed of a quiz with a set of random questions near the end of the project. Upon clicking on the publish button, a dialog box pops up stating that there are more random question slides than questions available in the pools. The options are to click “yes” to publish or to click “no” to invoke the question pools manager and edit the quiz. Upon clicking yes to publish the file, the error message ensues warning that your attempt to publish your project to the Adobe Connect Server has failed.

Result: Captivate crashes aborting the publishing process.

3203688.fw

Workaround: Publishing the Captivate project as a .zip file works fine.

Expected: Captivate content that includes a random question slide linked to an empty question pool should publish directly to an Adobe Connect server without any issues.

This problem is scheduled to be addressed in Connect 9.3 with Captivate 8

Content Availability & Replication among Clustered Connect Servers

This article addresses how to make sure every URL int a Connect cluster pops up like your grandmother’s trustworthy old pop-up-toaster.  If some published content will not play or display properly from your Connect cluster, do the following:

  • Make sure that the load balancing device in front the Connect cluster is not using sticky sessions or session awareness.
  • If you are using a Big-IP LTM, make sure that Nagle’s Algorithm is turned off .
  • Make sure that Clustered servers communicate with each other on ports 8506 and 8507. A simple netstat -an from the command prompt on each server will make certain each server is listening on 8507.
  • Don’t try to cheat on the number of documented VIPs required on the load-balancing device or SSL accelerator. Only one VIP is not the right answer.
  • When the servers cannot communicate, trouble ensues.Clustered servers need to be able to communicate with each other on port 8507. When they cannot communicate, the links to content will be broken and end users may experience hanging videos or unavailable content.
  • Search in your debug log for “cluster-”
    • [01-31 18:20:23,729] cluster-8507-696969 (INFO) MirrorHandler: waiting for commands”    2014-02-10T16:30:23.739-0600….
    • If you do  not see cluster-8507 then there is a replication communication problem on 8507
  • To help facilitate troubleshooting, during setup and during upgrades, if possible, allow the servers to have external access – at least allow the monitored and screened ability to toggle external access on and off by special request if needed. This will allow you access to Adobe’s license server and also to troubleshooting tools.
  • Install telnet on each server. Telnet is a great test tool. Placing telnet on each server and actually testing connectivity to each and from each server on ports 8506 and 8507 is prudent.
  • It is also prudent to have a useful browser on each server. I often install FireFox on each server along with the latest available Flashplayer. You may want to install Flashplayer on IE as well even though enhanced security will render it a challenge to use for any useful troubleshooting purposes. Useful flash-enabled browsers will facilitate direct tests on any problematic content on the servers from the servers thereby eliminating network and load-balancing variables when isolating issues.

How to stop Event pages (CQ) from being indexed

This article (and link below) is intended for Licensed (On-Premise) customers who have a standalone instance or cluster of CQ servers to serve up the Events Management piece of the Adobe Connect platform.  If you would like to stop event pages from being indexed in search engines like Google, you can follow this quick article below on adding robots.txt to the root of the CQ instances.

http://crxdelight.com/2012/02/04/how-to-protect-your-cq-instances-from-google-searches/

How to Solve Port 80 Problems when running Adobe Connect on windows server and logs shows port 80 is already in use.

Mostly in such situation the homepage wouldn’t show up however the console page works just fine.

There are a number of well-known Windows programs which use port 80:

IIS
The most likely culprit is Microsoft Internet Information Server.

SQL Server Reporting Services
SSRS can remain active even if you uninstall SQL Server. To stop the service:

  1. Open SQL Server Configuration Manager.
  2. Select “SQL Server Services” in the left-hand pane.
  3. Double-click “SQL Server Reporting Services”.
  4. Hit Stop.
  5. Switch to the Service tab and set the Start Mode to “Manual”.

Or

You can also stop the services from services.msc

Whats Using Port 80?

Further detective work is necessary if IIS and SSRS are not to blame. Enter the following on the command line:

netstat -aon

The active TCP addresses and ports will be listed — locate the line with local address “0.0.0.0:80″ and note the PID value.

Now right-click the task bar and select Start Task Manager. Navigate to the Processes tab and, if necessary, click View > Select Columns… to ensure “PID (Process Identifier)” is checked. You can now locate the PID you noted above. The description and properties should help you determine which application is using the port.

The Task Manager allows you to kill the process, but be a little wary about doing that — especially if it’s “NT Kernel & System”.

I Hope this would be helpful at some instances

Thanks

Identifying Telephony Disconnects

One common request from Adobe Connect users is to find out why a user may have gotten disconnected from a conference call while using Adobe Connect.  The important thing to realize here is that Adobe Connect will only disconnect a user from a conference call (with integrated telephony adaptor in place) if that user or a host in the meeting very deliberately choses one of a couple of options to disconnect the user.

The options for the in-meeting telephony disconnects are shown below:

tel1

This is what an individual user can access to disconnect their phone.

tel2

This is what a Meeting Host can do in the Attendee List pod, to hang up a user’s line.

Other than using these options, Adobe Connect does NOT send API commands to the telephony provider to hang up a conference user.  So a common scenario we may have is to identify whether Adobe hung up a user (via a very deliberate action) or whether the user was hung up by an external action (external to Adobe Connect). We do so by looking at the Adobe logs in conjunction with the Telephony Provider’s logs (PGI, InterCall, MeetingOne, Arkadin, etc).

On the Telephony Provider side, they can also differentiate between receiving an API from Adobe to disconnect a user vs just getting notification that the line is no longer active (which happens when a user is hung up for a reason between the Provider and Adobe).

User phone connections can drop for a variety of reasons.  Cell phone reception being dropped, IP phone connections (relying on an internet connection) going up and down (VPN, etc), user accidentally hanging up their own phone, a provider or carrier setting that sets a maximum connection time that gets exceeded, or a general carrier outage or issue in between Adobe and the Provider.  This is the most common.  Sometimes we see where a specific carrier will have a routing issue or other type of problem and it will interrupt that user’s connection to the conference.  These are outside of the realm of Adobe support and what needs to happen in this case is that the users must open a ticket with their Provider and through their Provider, they can have them track the possible route of the calls through the specific carriers involved, to see where the disconnect and problem occurred.

With regards to log analysis (overview article of the applicable logs needed), here is a breakdown (example) of the two scenarios for each of the main telephony providers we serve on our Hosted and Licensed environment (sans Avaya). ( I have ‘x’ed out some items like urls, conference codes, and phone numbers ):

MeetingOne

For an Adobe responsible hangup (deliberate):

In the meeting (application.log) log we will see:

2014-01-23 08:39:02 5552 (s)2641173 TelephonyServiceConnector, Calling action: conference-call-out -
2014-01-23 08:39:02 5552 (s)2641173 Asc-Telephony IS_HANG_UP_USER Hangup a user. TS CALL-10 conference-call-out -
2014-01-23 08:39:02 5552 (s)2641173 Asc-Telephony IS_HANG_UP_USER Hangup a user. TS RESP-10 conference-call-out -

In the MeetingOne_Adaptor.log we will see:

Jan 23, 2014 8:39:02 AM com.meetingone.adobeconnect.MeetingOneAdobeConnectAdaptor hangUp
INFO: entering hangUp
confId=5471dac0-fda8-4319-b8fe-c6b2a6942e73telephonyUserId=29834e741439299a5f251ed
Jan 23, 2014 8:39:02 AM com.meetingone.adobeconnect.bridge.BridgeProxyImpl hangUp
INFO: Bridge proxy – hangUp
Jan 23, 2014 8:39:02 AM com.meetingone.adobeconnect.bridge.BridgeProxyImpl sendXML2APIServer
INFO: posting xml to http://xxxxxxxxxx:80/api/audio?token=BRZ5930ecc7e013c5e76828ba7714390c7ae1d1b8

In the TelephonyService.log we will see:

[2014-01-23 08:39:02,255] [FCSj_Worker:8] (DEBUG) rtmp.RTMPConnection – Calling telephony action on request from MeetingApp. action: conference-call-out, parameters: {telephony-user-id=29834e741439299a5f251ed, conference-id=5471dac0-fda8-4319-b8fe-c6b2a6942e73, unset=true, action=conference-call-out, adaptor-id=meetingone-adaptor}
[2014-01-23 08:39:02,768] [FCSj_Worker:8] (DEBUG) rtmp.RTMPConnection – Returning telephony action response to MeetingApp. acrion: conference-call-out, response: {code=ok}

For an external hangup (not due to Adobe):

In the meeting (application.log) log we will see:

2014-01-23 08:51:47 5552 (s)2641173 Asc-UserManager IS_SET_USER_PHONE_STATUS set user phone status  { userID=1, phoneStatus=0 } -
2014-01-23 08:51:47 5552 (s)2641173 shouldBeKilled p_userID=1 advUserDesc.isNotInLive=false -
2014-01-23 08:51:47 5552 (s)2641173 dispatchEventToClient: p_evtObj.type=userPhoneStatusChanged p_isAdvancedEvent=true -
2014-01-23 08:51:47 5552 (s)2641173 dispatchRPCEventToClient: userId=1 p_evtObj.type=userPhoneStatusChanged -

In the MeetingOne_Adaptor.log we will see:

Jan 23, 2014 8:51:47 AM com.meetingone.adobeconnect.bridge.BridgeProxyEventPump parseEvents
INFO: <?xml version=”1.0″ encoding=”UTF-8″?>
<m1_api_events>
<api_response id=”29834e74:1439299a5f2:-514b” status=”0″ >
<events>
<event source_id=”xxxxxxxxxx” source=”audio” timestamp=”2014-01-23T09:49:59.458-07:00″ id=”2706933″><type>OnHangUp</type><parameters count=”4″><int_param name=”status”>0</int_param><string_param name=”participant_id”>81652</string_param><string_param name=”room_id”></string_param><int_param name=”reason”>0</int_param></parameters></event>
</events>
</api_response>
</m1_api_events>
Jan 23, 2014 8:51:47 AM com.meetingone.adobeconnect.bridge.messageDispatcher run
INFO: processing events…
Jan 23, 2014 8:51:47 AM com.meetingone.adobeconnect.bridge.messageDispatcher run
INFO: received event OnHangUp
Jan 23, 2014 8:51:47 AM com.meetingone.adobeconnect.bridge.messageDispatcher ProcessHangupResponse
INFO: ProcessHangupResponse
Jan 23, 2014 8:51:47 AM com.meetingone.adobeconnect.bridge.BridgeProxyEventPump GetEvents
INFO: Get events

In the TelephonyService.log we will see:

[2014-01-23 08:51:47,249] [Timer-6] (DEBUG) rtmp.RTMPConnection  - Calling MeetingApp method. methodName: telephonyUserOffline, parameters: {telephony-user-id=29834e741439299a5f25157, conference-id=5471dac0-fda8-4319-b8fe-c6b2a6942e73}

 

Arkadin

For an Adobe responsible hangup (deliberate):

In the meeting (application.log) log we will see:

2014-01-24 11:47:45 42656 (s)2641173 TelephonyServiceConnector, Calling action: conference-call-out -
2014-01-24 11:47:45 42656 (s)2641173 Asc-Telephony IS_HANG_UP_USER Hangup a user. TS CALL-10 conference-call-out -
2014-01-24 11:47:45 42656 (s)2641173 Asc-Telephony IS_HANG_UP_USER Hangup a user. TS RESP-10 conference-call-out -

In the Arkadin_Adaptor.log we will see:

[11:47:45] – [Verbose] [122421585] =>Bamboo : POST: <Arka_Trans MessageId=”Adobe2285″>    <Arka_Drop UserId=”111248954663623″ ResponseURL=”https://xxxxxxx.adobeconnect.com/servlet/bamboo” ConfId=”6505088d-bf01-4b66-8b7c-35e2cf195a06\1″ MessageId=”Adobe2284″/></Arka_Trans>
[11:47:45] – [Info] [122421585] drop(122421585<6505088d-bf01-4b66-8b7c-35e2cf195a06\1>, Jim Johnson<111248954663623>)
[11:47:45] – [Verbose] [122421585] <=Adobe : hangUp(122421585, 7b15ec77-3c0a-439f-bc7f-d1fd77eb593b);
[11:47:46] – [Verbose] [122421585] =>Adobe : userOffline(7b15ec77-3c0a-439f-bc7f-d1fd77eb593b)
[11:47:46] – [Info] [122421585] PARTICIPANT_LEFT(122421585<6505088d-bf01-4b66-8b7c-35e2cf195a06\1>, Jim Johnson<111248954663623>)
[11:47:46] – [Verbose] [122421585] <=Bamboo : <Arka_NotifyUserLeave ConfId=”6505088d-bf01-4b66-8b7c-35e2cf195a06\1″ MessageId=”18″ UserId=”111248954663623″/>

In the TelephonyService.log we will see:

[2014-01-24 11:47:45,272] [FCSj_Worker:6] (DEBUG) rtmp.RTMPConnection – Calling telephony action on request from MeetingApp. action: conference-call-out, parameters: {telephony-user-id=7b15ec77-3c0a-439f-bc7f-d1fd77eb593b, conference-id=xxxxxxxxxx, unset=true, action=conference-call-out, adaptor-id=arkadin-adaptor}
[2014-01-24 11:47:45,272] [FCSj_Worker:6] (DEBUG) rtmp.RTMPConnection – Returning telephony action response to MeetingApp. acrion: conference-call-out, response: {code=ok}
[2014-01-24 11:47:46,600] [Thread :: bambooEvents] (DEBUG) rtmp.RTMPConnection – Calling MeetingApp method. methodName: telephonyUserOffline, parameters: {telephony-user-id=7b15ec77-3c0a-439f-bc7f-d1fd77eb593b, conference-id=xxxxxxxxxx}

For an external hangup (not due to Adobe):

In the meeting (application.log) log we will see:

2014-01-24 12:14:49 26224 (s)2641173 Asc-UserManager IS_SET_USER_PHONE_STATUS set user phone status { userID=2, phoneStatus=0 } -
2014-01-24 12:14:49 26224 (s)2641173 shouldBeKilled p_userID=2 advUserDesc.isNotInLive=true -
2014-01-24 12:14:49 26224 (s)2641173 dispatchEventToClient: p_evtObj.type=userPhoneStatusChanged p_isAdvancedEvent=true -
2014-01-24 12:14:49 26224 (s)2641173 dispatchRPCEventToClient: userId=2 p_evtObj.type=userPhoneStatusChanged -
2014-01-24 12:14:49 26224 (s)2641173 Remove the user 2 -
2014-01-24 12:14:49 26224 (s)2641173 Asc-UserManager IS_REMOVE_USER Removing user. { userID=2, eject=undefined } -

In the Arkadin_Adaptor.log we will see:

[12:14:49] – [Verbose] [122421585] <=Bamboo : <Arka_NotifyUserLeave ConfId=”9e73d0b5-0525-4e17-9d77-af7a1e42a0e7\1″ MessageId=”9″ UserId=”26147684307333456″/>
[12:14:49] – [Info] [122421585] PARTICIPANT_LEFT(122421585<9e73d0b5-0525-4e17-9d77-af7a1e42a0e7\1>, xxxxxxxxxx<26147684307333456>)
[12:14:49] – [Verbose] [122421585] =>Adobe : userOffline(4d267465-ebd1-4968-893c-1428e61eaa2b)

In the TelephonyService.log we will see:

[2014-01-24 12:14:49,679] [Thread :: bambooEvents] (DEBUG) rtmp.RTMPConnection – Calling MeetingApp method. methodName: telephonyUserOffline, parameters: {telephony-user-id=4d267465-ebd1-4968-893c-1428e61eaa2b, conference-id=122421585}

 

InterCall

For an Adobe responsible hangup (deliberate):

In the meeting (application.log) log we will see:

2014-01-24 12:41:38 80764 (s)2641173 TelephonyServiceConnector, Calling action: conference-call-out -
2014-01-24 12:41:38 80764 (s)2641173 Asc-Telephony IS_HANG_UP_USER Hangup a user. TS CALL-10 conference-call-out -
2014-01-24 12:41:38 80764 (s)2641173 Asc-Telephony IS_HANG_UP_USER Hangup a user. TS RESP-10 conference-call-out -

In the Intercall_Adaptor.log we will see:

[2014-01-24 12:41:38,208] [FCSj_Worker:11] (DEBUG) Intercall.IntercallConference – FCSj_Worker:11:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:hangUp:Intercall-1.3:intercall-adaptor:Conference Code: xxxxxxxxx
[2014-01-24 12:41:38,208] [FCSj_Worker:11] (DEBUG) Intercall.IntercallConference – FCSj_Worker:11:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:hangUp:Intercall-1.3:intercall-adaptor:Conversation Id: xxxxxx.adobeconnect.com_intercall-adaptor_323_-555337
[2014-01-24 12:41:38,208] [FCSj_Worker:11] (DEBUG) Intercall.IntercallConference – FCSj_Worker:11:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:hangUp:Intercall-1.3:intercall-adaptor:Connect part Id: Jim Johnson_196253313@1-xxx-xxx-xxxx
[2014-01-24 12:41:38,208] [FCSj_Worker:11] (DEBUG) Intercall.IntercallConference – FCSj_Worker:11:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:hangUp:Intercall-1.3:intercall-adaptor:Intercall part Id: 1
[2014-01-24 12:41:38,208] [FCSj_Worker:11] (DEBUG) Intercall.IntercallConference – FCSj_Worker:11:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:hangUp:Intercall-1.3:intercall-adaptor:Hanging up user

In the TelephonyService.log we will see:

[2014-01-24 12:41:38,208] [FCSj_Worker:11] (DEBUG) rtmp.RTMPConnection – Calling telephony action on request from MeetingApp. action: conference-call-out, parameters: {telephony-user-id=Jim Johnson_196253313@1-xxx-xxx-xxxx, conference-id=xxxxxx.adobeconnect.com_intercall-adaptor_323_-555337, unset=true, action=conference-call-out, adaptor-id=intercall-adaptor}
[2014-01-24 12:41:38,302] [FCSj_Worker:11] (DEBUG) rtmp.RTMPConnection – Returning telephony action response to MeetingApp. acrion: conference-call-out, response: {code=ok}

For an external hangup (not due to Adobe):

In the meeting (application.log) log we will see:

2014-01-27 11:09:58 99308 (s)2641173 Asc-UserManager IS_SET_USER_PHONE_STATUS set user phone status { userID=2, phoneStatus=0 } -
2014-01-27 11:09:58 99308 (s)2641173 shouldBeKilled p_userID=2 advUserDesc.isNotInLive=true -
2014-01-27 11:09:58 99308 (s)2641173 dispatchEventToClient: p_evtObj.type=userPhoneStatusChanged p_isAdvancedEvent=true -
2014-01-27 11:09:58 99308 (s)2641173 dispatchRPCEventToClient: userId=2 p_evtObj.type=userPhoneStatusChanged -
2014-01-27 11:09:58 99308 (s)2641173 Remove the user 2 -
2014-01-27 11:09:58 99308 (s)2641173 Asc-UserManager IS_REMOVE_USER Removing user. { userID=2, eject=undefined } -

In the Intercall_Adaptor.log we will see:

[2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) Intercall.IntercallEventHandler – http-bio-9443-exec-6:com.macromedia.breeze_ext.telephony.Intercall.IntercallEventHandler:onEvent:Intercall-1.3::Event received:
[2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) Intercall.IntercallEventHandler – http-bio-9443-exec-6:com.macromedia.breeze_ext.telephony.Intercall.IntercallEventHandler:onEvent:Intercall-1.3::Got events for conversation xxxxxx.adobeconnect.com_intercall-adaptor_251_-523503: com.intercall.www.CCAPICallback.xsd.spi.event.ParticipantLeftEvent@ceebb956
[2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) Intercall.IntercallCallback – http-bio-9443-exec-6:com.macromedia.breeze_ext.telephony.Intercall.IntercallCallback:onParticipantLeftEvent:Intercall-1.3:intercall-adaptor:Now handling ParticipantLeftEvent for conversation ID xxxxxx.adobeconnect.com_intercall-adaptor_251_-523503
[2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) Intercall.IntercallConference – http-bio-9443-exec-6:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:removeParticipant:Intercall-1.3:intercall-adaptor:Conference Code:xxxxxxxx
[2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) Intercall.IntercallConference – http-bio-9443-exec-6:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:removeParticipant:Intercall-1.3:intercall-adaptor:Conversation Id: xxxxxx.adobeconnect.com_intercall-adaptor_251_-523503
[2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) Intercall.IntercallConference – http-bio-9443-exec-6:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:removeParticipant:Intercall-1.3:intercall-adaptor:ConnectPartId: 3
[2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) Intercall.IntercallConference – http-bio-9443-exec-6:com.macromedia.breeze_ext.telephony.Intercall.IntercallConference:removeParticipant:Intercall-1.3:intercall-adaptor:Removing this participant

In the TelephonyService.log we will see:

 [2014-01-27 11:09:58,902] [http-bio-9443-exec-6] (DEBUG) rtmp.RTMPConnection  - Calling MeetingApp method. methodName: telephonyUserOffline, parameters: {telephony-user-id=3, conference-id=xxxxxx.adobeconnect.com_intercall-adaptor_251_-523503}

PGI

For an Adobe responsible hangup (deliberate):

In the meeting (application.log) log we will see:

2014-01-27 11:35:33 120876 (s)2641173 Asc-Telephony IS_HANG_UP_USER Hangup a user. TS CALL-10 conference-call-out -
2014-01-27 11:35:33 120876 (s)2641173 Asc-UserManager IS_SET_USER_PHONE_STATUS set user phone status { userID=2, phoneStatus=0 } -

In the Premiere_Adaptor.log we will see:

[2014-01-27 11:35:33,628] [FCSj_Worker:15] (DEBUG) gateway.PTekGateway – PREMIERE TEL v800.000[FCSj_Worker:15]com.macromedia.breeze_ext.premiere.gateway.PTekGateway.hangUp:628:hangUp request received for confId:xxxxxx telephonyUserId:2501-129866748
[2014-01-27 11:35:33,629] [FCSj_Worker:15] (DEBUG) gateway.PTekConnection – PREMIERE TEL v800.000[premiere-adaptor][FCSj_Worker:15]com.macromedia.breeze_ext.premiere.gateway.Util$LoggingOutputStream.flush:162:
<PremiereConferencing ID=”xxxxxx” MsgID=”107″ PW=”xxxxxxxx” WebID=”xxxxxx” WebPW=”xxxxxxxx”>
<HangupParticipant ConfID=”xxxxxx” PartID=”2501-129866748″/>
</PremiereConferencing>
[2014-01-27 11:35:33,913] [Thread-677] (DEBUG) gateway.ConnectionHandler – PREMIERE TEL v800.000[premiere-adaptor][Thread-677]com.macromedia.breeze_ext.premiere.gateway.Util$LoggingOutputStream.flush:162:
<PremiereConferencing>
<UnsolicitedPartInfo>
<Result ErrorCode=”0″/>
<Participant ANI=”xxxxxxxxxx” ConfID=”xxxxxx” Connected=”False” DNIS=”xxxxxxxxxx” EndDate=”20140127″ EndTime=”173533″ Hold=”False” InQA=”False” IsQATalker=”False” ListenLevel=”0″ ListenOnly=”False” Mute=”False” PartID=”2501-129866748″ PartType=”Normal” StartDate=”20140127″ StartTime=”173417″ SubConfID=”” VoiceLevel=”0″/>
</UnsolicitedPartInfo>
</PremiereConferencing>

In the TelephonyService.log we will see:

[2014-01-27 11:35:33,628] [FCSj_Worker:15] (DEBUG) rtmp.RTMPConnection – Calling telephony action on request from MeetingApp. action: conference-call-out, parameters: {telephony-user-id=2501-129866748, conference-id=xxxxxx, unset=true, action=conference-call-out, adaptor-id=premiere-adaptor}
[2014-01-27 11:35:33,913] [Thread-677] (DEBUG) rtmp.RTMPConnection – Calling MeetingApp method. methodName: telephonyUserOffline, parameters: {telephony-user-id=2501-129866748, conference-id=xxxxxx}

For an external hangup (not due to Adobe):

In the meeting (application.log) log we will see:

2014-01-27 11:38:03 120876 (s)2641173 Asc-UserManager IS_SET_USER_PHONE_STATUS set user phone status { userID=3, phoneStatus=0 } -
2014-01-27 11:38:03 120876 (s)2641173 shouldBeKilled p_userID=3 advUserDesc.isNotInLive=true -
2014-01-27 11:38:03 120876 (s)2641173 dispatchEventToClient: p_evtObj.type=userPhoneStatusChanged p_isAdvancedEvent=true -
2014-01-27 11:38:03 120876 (s)2641173 dispatchRPCEventToClient: userId=3 p_evtObj.type=userPhoneStatusChanged -
2014-01-27 11:38:03 120876 (s)2641173 Remove the user 3 -
2014-01-27 11:38:03 120876 (s)2641173 Asc-UserManager IS_REMOVE_USER Removing user. { userID=3, eject=undefined } -

In the Premiere_Adaptor.log we will see:

<Participant ANI=”xxxxxxxxxx” ConfID=”xxxxxxx” Connected=”False” DNIS=”xxxxxxxxxx” EndDate=”20140127″ EndTime=”173803″ Hold=”False” InQA=”False” IsQATalker=”False” ListenLevel=”0″ ListenOnly=”False” Mute=”False” PartID=”2501-130152300″ PartType=”Normal” StartDate=”20140127″ StartTime=”173634″ SubConfID=”” VoiceLevel=”0″/>
</UnsolicitedPartInfo>
</PremiereConferencing>
[2014-01-27 11:38:04,019] [Thread-677] (INFO ) gateway.ConnectionHandler  - PREMIERE TEL v800.000[premiere-adaptor][Thread-677]com.macromedia.breeze_ext.premiere.gateway.ConnectionHandler.onUnsolicitedPartInfoMsg:337:Got error code: 0

In the TelephonyService.log we will see:

 [2014-01-27 11:38:04,019] [Thread-677] (DEBUG) rtmp.RTMPConnection  - Calling MeetingApp method. methodName: telephonyUserOffline, parameters: {telephony-user-id=2501-130152300, conference-id=4040116}

 

Using iframe to Invoke an Adobe Connect-hosted URL

Make sure that the iframe reference is formatted correctly.

When referencing an a meeting archive recording, it is best to first move an archive from under its parent meeting to the Connect Central content library before referring to it via iframe.

Do not let the URL of the archive recording redirect to Connect Central login page. To bypass the login screen you may either parse a username and password as a parameter in the URL or you may set permissions on the referenced content URL in Connect Central to allow for public viewing.  The latter option is usually the best. To avoid exposing the genuine user’s password as plain text in a GET request, it is usually best to simply make the recording public in Connect Central then link it. Alternatively, you may also create a new user in Connect Central with no other permissions except access to the referenced URL.

Referencing content in Connect Central that is set to public viewing:

<iframe src=http://connectdomainname.adobeconnect.com/customurl1″></iframe>

Referencing content by parsing a username and password:

<iframe src=”http://connectdomainname.adobeconnect.com/username?login=username@adobe.com&password=userpassword&account-id=12345678” width=”600″ height=”600″></iframe>

When referring to multiple URLs whether archives or MP4s or other Connect-hosted links, be sure to use a separate iframe reference for each Conenct URL rather than attempting to wrap all URLs in a single iframe reference. For example, two public links together in a table might look like this:

  <tr>
    <td width=”600″><iframe src=”http://connectdomainname.adobeconnect.com/customurl1″></iframe></td>
  </tr>
  <tr>
    <td><iframe src=”http://connectdomainname.adobeconnect.com/customurl2″></iframe></td>
  </tr>

Configuring Adobe Connect to take Advantage of Database Mirroring

Full redundancy requires that the Connect database be either mirrored or clustered; Adobe uses mirroring as the preferred solution.

The following example settings in the custom.ini file are needed to configure Connect to take advantage of SQL Mirroring:

DB_NAME=ConnectDBName

DB_HOST=ConnectDBPrimaryHostName

DB_BACKUP_HOST=ConnectDBSecondaryHostName

DB_URL=jdbc:macromedia:sqlserver://{DB_HOST}:{DB_PORT};databaseName={DB_NAME};user={DB_USER};password={DB_PASSWORD};AlternateServers=({DB_BACKUP_HOST}:{DB_PORT};DatabaseName={DB_NAME});ConnectionRetryCount=12;ConnectionRetryDelay=10;FailoverMode=extended;FailoverPreconnect=false;FailoverGranularity=atomic

Note: Change the first three variables as appropriate, but do not make any changes to the DB_URL.  It is all one line and it pulls the values from the other three entries in custom.ini:

The follwoing setting is always pudent whether using mirroring or clustering, but it is particularly important if you are clustering SQL. If you are running the Connect SQL database in a SQL cluster rather than in a mirrored environment, you will want to make sure that Connect makes multiple database connection attempts during SQL fail-over. If Connect loses its SQL database, the entire Connect cluster will go down and it will wait for an administrator to manually reconnect to the database through launching the Connect configuration console on port 8510. Add the following to the custom.ini file to support any delays in clustered SQL fail-over:

DB_URL_CONNECTION_RETRY_COUNT = 15
DB_URL_CONNECTION_RETRY_DELAY= 30

The actual JDBC string That invokes these variables is in the config.ini file:

DB_URL=jdbc:macromedia:sqlserver://{DB_HOST}:{DB_PORT};databaseName={DB_NAME};user={DB_USER};password={DB_PASSWORD};ConnectionRetryCount={DB_URL_CONNECTION_RETRY_COUNT};ConnectionRetryDelay={DB_URL_CONNECTION_RETRY_DELAY}

Save the custom.ini and cycle the services.