Package net.java.sip.communicator.impl.protocol.jabber.extensions.jingle

Examples of net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.ContentPacketExtension


     */
    private void removeContent(
            Map<String, ContentPacketExtension> contentMap,
            String name)
    {
        ContentPacketExtension content = contentMap.remove(name);

        if (content != null)
        {
            RtpDescriptionPacketExtension description
                = JingleUtils.getRtpDescription(content);
View Full Code Here


        //2) what the user preference is for the stream's media type, 3) our
        //local hold status, 4) the direction supported by the device this
        //stream is reading from.

        //1. check what the remote party originally told us (from our persp.)
        ContentPacketExtension content = remoteContentMap.get(stream.getName());

        MediaDirection postHoldDir = JingleUtils.getDirection(content,
                        !getPeer().isInitiator());

        //2. check the user preference.
View Full Code Here

                            List<MediaFormat>            formats,
                            List<RTPExtension>           rtpExtensions,
                            DynamicPayloadTypeRegistry   dynamicPayloadTypes,
                            DynamicRTPExtensionsRegistry rtpExtensionsRegistry)
    {
        ContentPacketExtension content = new ContentPacketExtension();
        RtpDescriptionPacketExtension description
                                    = new RtpDescriptionPacketExtension();

        content.setCreator(creator);
        content.setName(contentName);

        //senders - only if we have them and if they are different from default
        if(senders != null && senders != SendersEnum.both)
            content.setSenders(senders);

        //RTP description
        content.addChildExtension(description);
        description.setMedia(formats.get(0).getMediaType().toString());

        //now fill in the RTP description
        for(MediaFormat fmt : formats)
        {
View Full Code Here

     */
    private void sendRemoveVideoContent()
    {
        CallPeerMediaHandlerJabberImpl mediaHandler = getMediaHandler();

        ContentPacketExtension content = new ContentPacketExtension();
        ContentPacketExtension remoteContent
            = mediaHandler.getRemoteContent(MediaType.VIDEO.toString());

        content.setName(remoteContent.getName());
        content.setCreator(remoteContent.getCreator());
        content.setSenders(remoteContent.getSenders());

        ProtocolProviderServiceJabberImpl protocolProvider
            = getProtocolProvider();
        JingleIQ contentIQ
            = JinglePacketFactory.createContentRemove(
                    protocolProvider.getOurJID(),
                    this.peerJID,
                    getJingleSID(),
                    Arrays.asList(content));

        protocolProvider.getConnection().sendPacket(contentIQ);
        mediaHandler.removeContent(remoteContent.getName());
    }
View Full Code Here

     *
     * @param allowed if the local video is allowed or not
     */
    public void sendModifyVideoContent(boolean allowed)
    {
        ContentPacketExtension ext = new ContentPacketExtension();
        ContentPacketExtension remoteContent = getMediaHandler().
            getRemoteContent(MediaType.VIDEO.toString());

        if(remoteContent == null)
        {
            if(allowed)
                sendAddVideoContent();
            return;
        }
        else if(!allowed &&
                ((!isInitiator &&
                 remoteContent.getSenders() == SendersEnum.initiator) ||
                (isInitiator &&
                 remoteContent.getSenders() == SendersEnum.responder)))
        {
            sendRemoveVideoContent();
            return;
        }

        SendersEnum senders = remoteContent.getSenders();

        /* adjust the senders attribute depending on current value and if we
         * allowed or not local video streaming
         */
        if(allowed)
        {
            if(senders != SendersEnum.none)
            {
                senders = SendersEnum.both;
            }
            else if(senders == SendersEnum.none)
            {
                senders
                    = isInitiator
                        ? SendersEnum.responder
                        : SendersEnum.initiator;
            }
        }
        else
        {
            if(senders == SendersEnum.both)
            {
                senders
                    = isInitiator
                        ? SendersEnum.initiator
                        : SendersEnum.responder;
            }
            else
            {
                senders = SendersEnum.none;
            }
        }

        ext.setSenders(senders);
        ext.setCreator(remoteContent.getCreator());
        ext.setName(remoteContent.getName());

        JingleIQ contentIQ = JinglePacketFactory
            .createContentModify(getProtocolProvider().getOurJID(),
                            this.peerJID, getJingleSID(), ext);

        getProtocolProvider().getConnection().sendPacket(contentIQ);

        try
        {
            getMediaHandler().reinitContent(remoteContent.getName(), senders);
            getMediaHandler().start();
        }
        catch(Exception e)
        {
            logger.warn("Exception occurred when media reinitialization", e);
View Full Code Here

     * @param content The {@link JingleIQ} that contains content that remote
     * peer wants to be modified
     */
    public void processContentModify(JingleIQ content)
    {
        ContentPacketExtension ext = content.getContentList().get(0);
        SendersEnum senders = ext.getSenders();

        try
        {
            getMediaHandler().reinitContent(ext.getName(), senders);
        }
        catch(Exception exc)
        {
            logger.info("Failed to process an incoming content-modify", exc);

View Full Code Here

     */
    private void sendRemoveVideoContent()
    {
        CallPeerMediaHandlerJabberImpl mediaHandler = getMediaHandler();

        ContentPacketExtension content = new ContentPacketExtension();
        ContentPacketExtension remoteContent
            = mediaHandler.getRemoteContent(MediaType.VIDEO.toString());

        content.setName(remoteContent.getName());
        content.setCreator(remoteContent.getCreator());
        content.setSenders(remoteContent.getSenders());

        ProtocolProviderServiceJabberImpl protocolProvider
            = getProtocolProvider();
        JingleIQ contentIQ
            = JinglePacketFactory.createContentRemove(
                    protocolProvider.getOurJID(),
                    this.peerJID,
                    getJingleSID(),
                    Arrays.asList(content));

        protocolProvider.getConnection().sendPacket(contentIQ);
        mediaHandler.removeContent(remoteContent.getName());
    }
View Full Code Here

     * Send a <tt>content</tt> message to reflect change in video setup (start
     * or stop).
     */
    public void sendModifyVideoResolutionContent()
    {
        ContentPacketExtension remoteContent = getMediaHandler().
            getRemoteContent(MediaType.VIDEO.toString());
        ContentPacketExtension content;

        logger.info("send modify-content to change resolution");

        // send content-modify with RTP description
        SendersEnum senders = remoteContent.getSenders();

        // create content list with resolution
        try
        {
            content = getMediaHandler().createContentForMedia(MediaType.VIDEO);
        }
        catch(Exception exc)
        {
            logger.warn("Failed to gather content for video type", exc);
            return;
        }

        // if we are only receiving video senders is null
        if(senders != null)
            content.setSenders(senders);

        JingleIQ contentIQ = JinglePacketFactory
            .createContentModify(getProtocolProvider().getOurJID(),
                            this.peerJID, getJingleSID(), content);

View Full Code Here

     *
     * @param allowed if the local video is allowed or not
     */
    public void sendModifyVideoContent(boolean allowed)
    {
        ContentPacketExtension ext = new ContentPacketExtension();
        ContentPacketExtension remoteContent = getMediaHandler().
            getRemoteContent(MediaType.VIDEO.toString());

        if(remoteContent == null)
        {
            if(allowed)
                sendAddVideoContent();
            return;
        }
        else if(!allowed &&
                ((!isInitiator &&
                 remoteContent.getSenders() == SendersEnum.initiator) ||
                (isInitiator &&
                 remoteContent.getSenders() == SendersEnum.responder)))
        {
            sendRemoveVideoContent();
            return;
        }

        SendersEnum senders = remoteContent.getSenders();

        /* adjust the senders attribute depending on current value and if we
         * allowed or not local video streaming
         */
        if(allowed)
        {
            if(senders != SendersEnum.none)
            {
                senders = SendersEnum.both;
            }
            else if(senders == SendersEnum.none)
            {
                senders
                    = isInitiator
                        ? SendersEnum.responder
                        : SendersEnum.initiator;
            }
        }
        else
        {
            if(senders == SendersEnum.both)
            {
                senders
                    = isInitiator
                        ? SendersEnum.initiator
                        : SendersEnum.responder;
            }
            else
            {
                senders = SendersEnum.none;
            }
        }

        ext.setSenders(senders);
        ext.setCreator(remoteContent.getCreator());
        ext.setName(remoteContent.getName());

        JingleIQ contentIQ = JinglePacketFactory
            .createContentModify(getProtocolProvider().getOurJID(),
                            this.peerJID, getJingleSID(), ext);

        getProtocolProvider().getConnection().sendPacket(contentIQ);

        try
        {
            getMediaHandler().reinitContent(remoteContent.getName(), ext,
                false);
            getMediaHandler().start();
        }
        catch(Exception e)
        {
View Full Code Here

     * @param content The {@link JingleIQ} that contains content that remote
     * peer wants to be modified
     */
    public void processContentModify(JingleIQ content)
    {
        ContentPacketExtension ext = content.getContentList().get(0);

        try
        {
            boolean modify = false;
            if(ext.getFirstChildOfType(RtpDescriptionPacketExtension.class) !=
                null)
            {
                modify = true;
            }
            getMediaHandler().reinitContent(ext.getName(), ext, modify);
        }
        catch(Exception exc)
        {
            logger.info("Failed to process an incoming content-modify", exc);

View Full Code Here

TOP

Related Classes of net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.ContentPacketExtension

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.