Well today I tackled another known problem. When a third user would join the existing chat, the two other participants would crash. This would happen because the pipeline would be in a running state when the code attempts to change the pipeline. This was causing a mutex error in the gstreamer pipeline.
The first solution I thought of was to just set the max_participants property in sugar. Well to my surprise, it doesn't actually enforce a max_participants, instead it is used more like a boolean inside sugar's code. It the variable is found to have a value of 1, then it disables sharing and any other value is ignored.
This was very annoying. After confirming that the max_participants was useless in the sugar channel on irc, I had to write my own system to prevent extra participants (ticket 45). This solution allows the third person to join the text chat only, no video. A potential future implementation will allow other participants to choose who they want to talk with from a list of connected users.