Someone on the mailing list had some recordings which were using the 2.0
playback, but were missing the deskshare.xml file (which should always
be present for 2.0… strange). It's safe to continue loading the recording
playback if the deskshare.xml file is not found, the recording will just act
as if there were no deskshare start/stop events.
- We had an issue where FreeSWITCH, for some unknow reason, stopped recording the voice conference
in the middle of the meeting while there are users in the voice conference. We've relied on the
voice conf started event to trigger recording of wav files. This event is sent when the first user
joins the voice conference. In this case, there was no voice user joined after the recording stopped
as there were already users in the voice conference. TO make sure that the audio is recorded, akka-apps
will send a "check if voice conf is running and recording" message to FreeSWITCH every 30sec. If akka-apps
receives a "running=true recording=false" response from FreeSWITCH, akka-apps will send a start recording
msg to FreeSWITCH.
- when meeting ends, we try to eject all users by force from freeswitch to make sure
that recording ends. However, we are not actually sending the command to freeswitch.
This change sends the command so that users can be kicked out.
- on auto-reconnect when FS restarts, the auto-reconnect add another
listener to the ESL client resulting in multiple handlers of ESL events
and multiple messages to akka-apps. This resulted in multiple recordings
of audio when the first user joins as akka-apps receives 2 user join events.
Previously the setMediaSync function was only called after the deskshare
loaded, but by moving it to run after all media loaded, it now runs even
on recordings that didn't have deskshare. Make it do nothing (return early)
in that case.
If the secondary media loaded before the main media, it would run the
"setMediaSync" function before the main media player was setup. As a
side-effect of setting up the main media player, all of the event handlers
added by the setMediaSync function are detached, and so the secondary
media never starts playing.
Move the call to setMediaSync to after the media-ready events for all
media have fired, so that it can reliably attach the event handlers.