diff options
Diffstat (limited to 'src/net/java/sip/communicator/impl/protocol/jabber/extensions/colibri/ColibriIQProvider.java')
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/jabber/extensions/colibri/ColibriIQProvider.java | 131 |
1 files changed, 76 insertions, 55 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/extensions/colibri/ColibriIQProvider.java b/src/net/java/sip/communicator/impl/protocol/jabber/extensions/colibri/ColibriIQProvider.java index 39e299f..ce676ef 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/extensions/colibri/ColibriIQProvider.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/extensions/colibri/ColibriIQProvider.java @@ -20,6 +20,7 @@ package net.java.sip.communicator.impl.protocol.jabber.extensions.colibri; import net.java.sip.communicator.impl.protocol.jabber.extensions.*; import net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.*; +import net.java.sip.communicator.service.protocol.jabber.*; import org.jitsi.service.neomedia.*; import org.jitsi.util.*; import org.jivesoftware.smack.packet.*; @@ -36,89 +37,101 @@ import org.xmlpull.v1.*; public class ColibriIQProvider implements IQProvider { + + /** + * Smack interoperation layer + */ + private AbstractSmackInteroperabilityLayer smackInteroperabilityLayer = + AbstractSmackInteroperabilityLayer.getInstance(); + /** Initializes a new <tt>ColibriIQProvider</tt> instance. */ public ColibriIQProvider() { - ProviderManager providerManager = ProviderManager.getInstance(); - - providerManager.addExtensionProvider( + smackInteroperabilityLayer.addExtensionProvider( PayloadTypePacketExtension.ELEMENT_NAME, ColibriConferenceIQ.NAMESPACE, new DefaultPacketExtensionProvider<PayloadTypePacketExtension>( PayloadTypePacketExtension.class)); - providerManager.addExtensionProvider( + smackInteroperabilityLayer.addExtensionProvider( RtcpFbPacketExtension.ELEMENT_NAME, RtcpFbPacketExtension.NAMESPACE, new DefaultPacketExtensionProvider<RtcpFbPacketExtension>( RtcpFbPacketExtension.class)); - providerManager.addExtensionProvider( + smackInteroperabilityLayer.addExtensionProvider( RTPHdrExtPacketExtension.ELEMENT_NAME, ColibriConferenceIQ.NAMESPACE, new DefaultPacketExtensionProvider<RTPHdrExtPacketExtension>( RTPHdrExtPacketExtension.class)); - providerManager.addExtensionProvider( + smackInteroperabilityLayer.addExtensionProvider( SourcePacketExtension.ELEMENT_NAME, SourcePacketExtension.NAMESPACE, new DefaultPacketExtensionProvider<SourcePacketExtension>( SourcePacketExtension.class)); - providerManager.addExtensionProvider( + smackInteroperabilityLayer.addExtensionProvider( SourceGroupPacketExtension.ELEMENT_NAME, SourceGroupPacketExtension.NAMESPACE, new DefaultPacketExtensionProvider<SourceGroupPacketExtension>( SourceGroupPacketExtension.class)); PacketExtensionProvider parameterProvider - = new DefaultPacketExtensionProvider<ParameterPacketExtension>( - ParameterPacketExtension.class); + = new DefaultPacketExtensionProvider<ParameterPacketExtension>( + ParameterPacketExtension.class); - providerManager.addExtensionProvider( + smackInteroperabilityLayer.addExtensionProvider( ParameterPacketExtension.ELEMENT_NAME, ColibriConferenceIQ.NAMESPACE, parameterProvider); - providerManager.addExtensionProvider( + smackInteroperabilityLayer.addExtensionProvider( ParameterPacketExtension.ELEMENT_NAME, SourcePacketExtension.NAMESPACE, parameterProvider); // Shutdown IQ - providerManager.addIQProvider( - GracefulShutdownIQ.ELEMENT_NAME, - GracefulShutdownIQ.NAMESPACE, + smackInteroperabilityLayer.addIQProvider( + ShutdownIQ.GRACEFUL_ELEMENT_NAME, + ShutdownIQ.NAMESPACE, + this); + smackInteroperabilityLayer.addIQProvider( + ShutdownIQ.FORCE_ELEMENT_NAME, + ShutdownIQ.NAMESPACE, this); // Shutdown extension PacketExtensionProvider shutdownProvider - = new DefaultPacketExtensionProvider - <ColibriConferenceIQ.GracefulShutdown>( - ColibriConferenceIQ.GracefulShutdown.class); + = new DefaultPacketExtensionProvider + <ColibriConferenceIQ.GracefulShutdown>( + ColibriConferenceIQ.GracefulShutdown.class); - providerManager.addExtensionProvider( - ColibriConferenceIQ.GracefulShutdown.ELEMENT_NAME, - ColibriConferenceIQ.GracefulShutdown.NAMESPACE, - shutdownProvider); + smackInteroperabilityLayer.addExtensionProvider( + ColibriConferenceIQ.GracefulShutdown.ELEMENT_NAME, + ColibriConferenceIQ.GracefulShutdown.NAMESPACE, + shutdownProvider); // ColibriStatsIQ - providerManager.addIQProvider( - ColibriStatsIQ.ELEMENT_NAME, - ColibriStatsIQ.NAMESPACE, - this); + smackInteroperabilityLayer.addIQProvider( + ColibriStatsIQ.ELEMENT_NAME, + ColibriStatsIQ.NAMESPACE, + this); // ColibriStatsExtension PacketExtensionProvider statsProvider - = new DefaultPacketExtensionProvider<ColibriStatsExtension>( - ColibriStatsExtension.class); + = new DefaultPacketExtensionProvider<ColibriStatsExtension>( + ColibriStatsExtension.class); - providerManager.addExtensionProvider( - ColibriStatsExtension.ELEMENT_NAME, - ColibriStatsExtension.NAMESPACE, - statsProvider); + smackInteroperabilityLayer.addExtensionProvider( + ColibriStatsExtension.ELEMENT_NAME, + ColibriStatsExtension.NAMESPACE, + statsProvider); // ColibriStatsExtension.Stat PacketExtensionProvider statProvider - = new DefaultPacketExtensionProvider<ColibriStatsExtension.Stat>( - ColibriStatsExtension.Stat.class); - - providerManager.addExtensionProvider( - ColibriStatsExtension.Stat.ELEMENT_NAME, - ColibriStatsExtension.NAMESPACE, - statProvider); + = new DefaultPacketExtensionProvider + <ColibriStatsExtension.Stat>( + ColibriStatsExtension.Stat.class); + + smackInteroperabilityLayer.addExtensionProvider( + ColibriStatsExtension.Stat.ELEMENT_NAME, + ColibriStatsExtension.NAMESPACE, + statProvider); + + } private void addChildExtension( @@ -199,8 +212,7 @@ public class ColibriIQProvider throws Exception { PacketExtensionProvider extensionProvider - = (PacketExtensionProvider) - ProviderManager.getInstance().getExtensionProvider( + = smackInteroperabilityLayer.getExtensionProvider( name, namespace); PacketExtension extension; @@ -416,6 +428,15 @@ public class ColibriIQProvider if ((expire != null) && (expire.length() != 0)) channel.setExpire(Integer.parseInt(expire)); + String packetDelay + = parser.getAttributeValue( + "", + ColibriConferenceIQ.Channel + .PACKET_DELAY_ATTR_NAME); + if (!StringUtils.isNullOrEmpty(packetDelay)) + channel.setPacketDelay( + Integer.parseInt(packetDelay)); + // host String host = parser.getAttributeValue( @@ -464,6 +485,18 @@ public class ColibriIQProvider channel.setAdaptiveLastN( Boolean.parseBoolean(adaptiveLastN)); + String adaptiveSimulcast + = parser.getAttributeValue( + "", + ColibriConferenceIQ.Channel + .ADAPTIVE_SIMULCAST_ATTR_NAME); + + if (!StringUtils.isNullOrEmpty(adaptiveSimulcast)) + { + channel.setAdaptiveSimulcast( + Boolean.parseBoolean(adaptiveSimulcast)); + } + // simulcastMode String simulcastMode = parser.getAttributeValue( @@ -802,12 +835,12 @@ public class ColibriIQProvider iq = conference; } - else if (GracefulShutdownIQ.ELEMENT_NAME.equals(parser.getName()) - && GracefulShutdownIQ.NAMESPACE.equals(namespace)) + else if (ShutdownIQ.NAMESPACE.equals(namespace) && + ShutdownIQ.isValidElementName(parser.getName())) { String rootElement = parser.getName(); - iq = new GracefulShutdownIQ(); + iq = ShutdownIQ.createShutdownIQ(rootElement); boolean done = false; @@ -825,12 +858,6 @@ public class ColibriIQProvider } break; } - - case XmlPullParser.TEXT: - { - // Parse some text here - break; - } } } } @@ -891,12 +918,6 @@ public class ColibriIQProvider } break; } - - case XmlPullParser.TEXT: - { - // Parse some text here - break; - } } } } |