mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-12-23 02:58:00 +01:00
More Jingle Refactoring
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@7245 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
parent
ae15ced813
commit
bd176c2515
10 changed files with 375 additions and 316 deletions
|
@ -0,0 +1,338 @@
|
|||
/**
|
||||
* $RCSfile$
|
||||
* $Revision$
|
||||
* $Date$
|
||||
*
|
||||
* Copyright (C) 2002-2006 Jive Software. All rights reserved.
|
||||
* ====================================================================
|
||||
* The Jive Software License (based on Apache Software License, Version 1.1)
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. The end-user documentation included with the redistribution,
|
||||
* if any, must include the following acknowledgment:
|
||||
* "This product includes software developed by
|
||||
* Jive Software (http://www.jivesoftware.com)."
|
||||
* Alternately, this acknowledgment may appear in the software itself,
|
||||
* if and wherever such third-party acknowledgments normally appear.
|
||||
*
|
||||
* 4. The names "Smack" and "Jive Software" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please
|
||||
* contact webmaster@jivesoftware.com.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "Smack",
|
||||
* nor may "Smack" appear in their name, without prior written
|
||||
* permission of Jive Software.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*/
|
||||
package org.jivesoftware.smackx.jingle.nat;
|
||||
|
||||
/**
|
||||
* ICE Transport candidate.
|
||||
* <p/>
|
||||
* A candidate represents the possible transport for data interchange between
|
||||
* the two endpoints.
|
||||
*
|
||||
* @author Thiago Camargo
|
||||
*/
|
||||
public class ICECandidate extends TransportCandidate implements Comparable {
|
||||
|
||||
private String id; // An identification
|
||||
|
||||
private String username;
|
||||
|
||||
private int preference;
|
||||
|
||||
private Protocol proto;
|
||||
|
||||
private Channel channel;
|
||||
|
||||
private int network;
|
||||
|
||||
private String type;
|
||||
|
||||
public ICECandidate() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor with the basic elements of a transport definition.
|
||||
*
|
||||
* @param ip the IP address to use as a local address
|
||||
* @param generation used to keep track of the candidates
|
||||
* @param network used for diagnostics (used when the machine has
|
||||
* several NICs)
|
||||
* @param password user name, as it is used in ICE
|
||||
* @param port the port at the candidate IP address
|
||||
* @param username user name, as it is used in ICE
|
||||
* @param preference preference for this transportElement, as it is used
|
||||
* in ICE
|
||||
* @param type type as defined in ICE-12
|
||||
*/
|
||||
public ICECandidate(String ip, int generation, int network,
|
||||
String password, int port, String username,
|
||||
int preference, String type) {
|
||||
super(ip, port, generation);
|
||||
|
||||
proto = Protocol.UDP;
|
||||
channel = Channel.MYRTPVOICE;
|
||||
|
||||
this.network = network;
|
||||
this.password = password;
|
||||
this.username = username;
|
||||
this.preference = preference;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ID
|
||||
*
|
||||
* @return the id
|
||||
*/
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the ID
|
||||
*
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the protocol used for the transmission
|
||||
*
|
||||
* @return the protocol used for transmission
|
||||
*/
|
||||
public Protocol getProto() {
|
||||
return proto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the protocol for the transmission
|
||||
*
|
||||
* @param proto the protocol to use
|
||||
*/
|
||||
public void setProto(Protocol proto) {
|
||||
this.proto = proto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the network interface used for this connection
|
||||
*
|
||||
* @return the interface number
|
||||
*/
|
||||
public int getNetwork() {
|
||||
return network;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the interface for this connection
|
||||
*
|
||||
* @param network the interface number
|
||||
*/
|
||||
public void setNetwork(int network) {
|
||||
this.network = network;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the username for this transportElement in ICE
|
||||
*
|
||||
* @return a username string
|
||||
*/
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the channel
|
||||
*
|
||||
* @return the channel associated
|
||||
*/
|
||||
public Channel getChannel() {
|
||||
return channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the channel for this transportElement
|
||||
*
|
||||
* @param channel the new channel
|
||||
*/
|
||||
public void setChannel(Channel channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the username for this transportElement in ICE
|
||||
*
|
||||
* @param username the username used in ICE
|
||||
*/
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the preference number for this transportElement
|
||||
*
|
||||
* @return the preference for this transportElement
|
||||
*/
|
||||
public int getPreference() {
|
||||
return preference;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the preference order for this transportElement
|
||||
*
|
||||
* @param preference a number identifying the preference (as defined in
|
||||
* ICE)
|
||||
*/
|
||||
public void setPreference(int preference) {
|
||||
this.preference = preference;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Candidate Type
|
||||
*
|
||||
* @return candidate Type
|
||||
*/
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Candidate Type
|
||||
*
|
||||
* @param type candidate type.
|
||||
*/
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.lang.Object#equals(java.lang.Object)
|
||||
*/
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(obj)) {
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final ICECandidate other = (ICECandidate) obj;
|
||||
if (getChannel() == null) {
|
||||
if (other.getChannel() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getChannel().equals(other.getChannel())) {
|
||||
return false;
|
||||
}
|
||||
if (getId() == null) {
|
||||
if (other.getId() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getId().equals(other.getId())) {
|
||||
return false;
|
||||
}
|
||||
if (getNetwork() != other.getNetwork()) {
|
||||
return false;
|
||||
}
|
||||
if (getPassword() == null) {
|
||||
if (other.getPassword() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getPassword().equals(other.password)) {
|
||||
return false;
|
||||
}
|
||||
if (getPreference() != other.getPreference()) {
|
||||
return false;
|
||||
}
|
||||
if (getProto() == null) {
|
||||
if (other.getProto() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getProto().equals(other.getProto())) {
|
||||
return false;
|
||||
}
|
||||
if (getUsername() == null) {
|
||||
if (other.getUsername() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getUsername().equals(other.getUsername())) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isNull() {
|
||||
if (super.isNull()) {
|
||||
return true;
|
||||
}
|
||||
else if (getProto().isNull()) {
|
||||
return true;
|
||||
}
|
||||
else if (getChannel().isNull()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare the to other Transport candidate.
|
||||
*
|
||||
* @param arg another Transport candidate
|
||||
* @return a negative integer, zero, or a positive integer as this
|
||||
* object is less than, equal to, or greater than the specified
|
||||
* object
|
||||
*/
|
||||
public int compareTo(Object arg) {
|
||||
if (arg instanceof ICECandidate) {
|
||||
ICECandidate tc = (ICECandidate) arg;
|
||||
if (getPreference() < tc.getPreference()) {
|
||||
return -1;
|
||||
}
|
||||
else if (getPreference() > tc.getPreference()) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -77,7 +77,7 @@ public class ICEResolver extends TransportResolver {
|
|||
else
|
||||
typeString = "host";
|
||||
|
||||
TransportCandidate transportCandidate = new TransportCandidate.Ice(candidate.getAddress().getInetAddress().getHostAddress(), 1, candidate.getNetwork(), "1", candidate.getPort(), "1", candidate.getPriority(), typeString);
|
||||
TransportCandidate transportCandidate = new ICECandidate(candidate.getAddress().getInetAddress().getHostAddress(), 1, candidate.getNetwork(), "1", candidate.getPort(), "1", candidate.getPriority(), typeString);
|
||||
transportCandidate.setLocalIp(candidate.getBase().getAddress().getInetAddress().getHostAddress());
|
||||
transportCandidate.setPort(getFreePort());
|
||||
this.addCandidate(transportCandidate);
|
||||
|
@ -100,11 +100,11 @@ public class ICEResolver extends TransportResolver {
|
|||
|
||||
RTPBridge rtpBridge = RTPBridge.getRTPBridge(connection, String.valueOf(sid));
|
||||
|
||||
TransportCandidate localCandidate = new TransportCandidate.Ice(
|
||||
TransportCandidate localCandidate = new ICECandidate(
|
||||
rtpBridge.getIp(), 1, cc.getPublicCandidate().getNetwork(), "1", rtpBridge.getPortA(), "1", 0, "relay");
|
||||
localCandidate.setLocalIp(localIp);
|
||||
|
||||
TransportCandidate remoteCandidate = new TransportCandidate.Ice(
|
||||
TransportCandidate remoteCandidate = new ICECandidate(
|
||||
rtpBridge.getIp(), 1, cc.getPublicCandidate().getNetwork(), "1", rtpBridge.getPortB(), "1", 0, "relay");
|
||||
remoteCandidate.setLocalIp(localIp);
|
||||
|
||||
|
|
|
@ -53,8 +53,8 @@ public class ICETransportManager extends JingleTransportManager implements Jingl
|
|||
// Implement a Session Listener to relay candidates after establishment
|
||||
|
||||
public void sessionEstablished(PayloadType pt, TransportCandidate rc, TransportCandidate lc, JingleSession jingleSession) {
|
||||
if (lc instanceof TransportCandidate.Ice) {
|
||||
if (((TransportCandidate.Ice) lc).getType().equals("relay")) {
|
||||
if (lc instanceof ICECandidate) {
|
||||
if (((ICECandidate) lc).getType().equals("relay")) {
|
||||
RTPBridge rtpBridge = RTPBridge.relaySession(lc.getConnection(), lc.getSessionId(), lc.getPassword(), rc, lc);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -461,287 +461,7 @@ public abstract class TransportCandidate {
|
|||
super(ip, port, generation);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ice candidate.
|
||||
*/
|
||||
public static class Ice extends TransportCandidate implements Comparable {
|
||||
|
||||
private String id; // An identification
|
||||
|
||||
private String username;
|
||||
|
||||
private int preference;
|
||||
|
||||
private Protocol proto;
|
||||
|
||||
private Channel channel;
|
||||
|
||||
private int network;
|
||||
|
||||
private String type;
|
||||
|
||||
public Ice() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor with the basic elements of a transport definition.
|
||||
*
|
||||
* @param ip the IP address to use as a local address
|
||||
* @param generation used to keep track of the candidates
|
||||
* @param network used for diagnostics (used when the machine has
|
||||
* several NICs)
|
||||
* @param password user name, as it is used in ICE
|
||||
* @param port the port at the candidate IP address
|
||||
* @param username user name, as it is used in ICE
|
||||
* @param preference preference for this transportElement, as it is used
|
||||
* in ICE
|
||||
* @param type type as defined in ICE-12
|
||||
*/
|
||||
public Ice(String ip, int generation, int network,
|
||||
String password, int port, String username,
|
||||
int preference, String type) {
|
||||
super(ip, port, generation);
|
||||
|
||||
proto = Protocol.UDP;
|
||||
channel = Channel.MYRTPVOICE;
|
||||
|
||||
this.network = network;
|
||||
this.password = password;
|
||||
this.username = username;
|
||||
this.preference = preference;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ID
|
||||
*
|
||||
* @return the id
|
||||
*/
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the ID
|
||||
*
|
||||
* @param id the id to set
|
||||
*/
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the protocol used for the transmission
|
||||
*
|
||||
* @return the protocol used for transmission
|
||||
*/
|
||||
public Protocol getProto() {
|
||||
return proto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the protocol for the transmission
|
||||
*
|
||||
* @param proto the protocol to use
|
||||
*/
|
||||
public void setProto(Protocol proto) {
|
||||
this.proto = proto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the network interface used for this connection
|
||||
*
|
||||
* @return the interface number
|
||||
*/
|
||||
public int getNetwork() {
|
||||
return network;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the interface for this connection
|
||||
*
|
||||
* @param network the interface number
|
||||
*/
|
||||
public void setNetwork(int network) {
|
||||
this.network = network;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the username for this transportElement in ICE
|
||||
*
|
||||
* @return a username string
|
||||
*/
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the channel
|
||||
*
|
||||
* @return the channel associated
|
||||
*/
|
||||
public Channel getChannel() {
|
||||
return channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the channel for this transportElement
|
||||
*
|
||||
* @param channel the new channel
|
||||
*/
|
||||
public void setChannel(Channel channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the username for this transportElement in ICE
|
||||
*
|
||||
* @param username the username used in ICE
|
||||
*/
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the preference number for this transportElement
|
||||
*
|
||||
* @return the preference for this transportElement
|
||||
*/
|
||||
public int getPreference() {
|
||||
return preference;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the preference order for this transportElement
|
||||
*
|
||||
* @param preference a number identifying the preference (as defined in
|
||||
* ICE)
|
||||
*/
|
||||
public void setPreference(int preference) {
|
||||
this.preference = preference;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Candidate Type
|
||||
*
|
||||
* @return candidate Type
|
||||
*/
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Candidate Type
|
||||
*
|
||||
* @param type candidate type.
|
||||
*/
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.lang.Object#equals(java.lang.Object)
|
||||
*/
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(obj)) {
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Ice other = (Ice) obj;
|
||||
if (getChannel() == null) {
|
||||
if (other.getChannel() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getChannel().equals(other.getChannel())) {
|
||||
return false;
|
||||
}
|
||||
if (getId() == null) {
|
||||
if (other.getId() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getId().equals(other.getId())) {
|
||||
return false;
|
||||
}
|
||||
if (getNetwork() != other.getNetwork()) {
|
||||
return false;
|
||||
}
|
||||
if (getPassword() == null) {
|
||||
if (other.getPassword() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getPassword().equals(other.password)) {
|
||||
return false;
|
||||
}
|
||||
if (getPreference() != other.getPreference()) {
|
||||
return false;
|
||||
}
|
||||
if (getProto() == null) {
|
||||
if (other.getProto() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getProto().equals(other.getProto())) {
|
||||
return false;
|
||||
}
|
||||
if (getUsername() == null) {
|
||||
if (other.getUsername() != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!getUsername().equals(other.getUsername())) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isNull() {
|
||||
if (super.isNull()) {
|
||||
return true;
|
||||
}
|
||||
else if (getProto().isNull()) {
|
||||
return true;
|
||||
}
|
||||
else if (getChannel().isNull()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare the to other Transport candidate.
|
||||
*
|
||||
* @param arg another Transport candidate
|
||||
* @return a negative integer, zero, or a positive integer as this
|
||||
* object is less than, equal to, or greater than the specified
|
||||
* object
|
||||
*/
|
||||
public int compareTo(Object arg) {
|
||||
if (arg instanceof TransportCandidate.Ice) {
|
||||
TransportCandidate.Ice tc = (TransportCandidate.Ice) arg;
|
||||
if (getPreference() < tc.getPreference()) {
|
||||
return -1;
|
||||
}
|
||||
else if (getPreference() > tc.getPreference()) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Type-safe enum for the transportElement protocol
|
||||
*/
|
||||
|
|
|
@ -817,13 +817,13 @@ public abstract class TransportNegotiator extends JingleNegotiator {
|
|||
* @return the bestRemoteCandidate
|
||||
*/
|
||||
public TransportCandidate getBestRemoteCandidate() {
|
||||
TransportCandidate.Ice result = null;
|
||||
ICECandidate result = null;
|
||||
|
||||
ArrayList<TransportCandidate.Ice> cands = getValidRemoteCandidatesList();
|
||||
ArrayList<ICECandidate> cands = getValidRemoteCandidatesList();
|
||||
if (!cands.isEmpty()) {
|
||||
int highest = -1;
|
||||
TransportCandidate.Ice chose = null;
|
||||
for (TransportCandidate.Ice transportCandidate : cands) {
|
||||
ICECandidate chose = null;
|
||||
for (ICECandidate transportCandidate : cands) {
|
||||
if (transportCandidate.getPreference() > highest) {
|
||||
chose = transportCandidate;
|
||||
highest = transportCandidate.getPreference();
|
||||
|
@ -839,7 +839,7 @@ public abstract class TransportNegotiator extends JingleNegotiator {
|
|||
* Return true for ICE candidates.
|
||||
*/
|
||||
public boolean acceptableTransportCandidate(TransportCandidate tc, List<TransportCandidate> localCandidates) {
|
||||
return tc instanceof TransportCandidate.Ice;
|
||||
return tc instanceof ICECandidate;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.jivesoftware.smackx.packet;
|
|||
|
||||
import org.jivesoftware.smack.packet.PacketExtension;
|
||||
import org.jivesoftware.smackx.jingle.nat.TransportCandidate;
|
||||
import org.jivesoftware.smackx.jingle.nat.ICECandidate;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
@ -303,8 +304,8 @@ public class JingleTransport implements PacketExtension {
|
|||
protected String getChildElements() {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
|
||||
if (transportCandidate != null) {// && transportCandidate instanceof TransportCandidate.Ice) {
|
||||
TransportCandidate.Ice tci = (TransportCandidate.Ice) transportCandidate;
|
||||
if (transportCandidate != null) {// && transportCandidate instanceof ICECandidate) {
|
||||
ICECandidate tci = (ICECandidate) transportCandidate;
|
||||
|
||||
// We convert the transportElement candidate to XML here...
|
||||
buf.append(" generation=\"").append(tci.getGeneration()).append("\"");
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.jivesoftware.smackx.provider;
|
|||
import org.jivesoftware.smack.packet.PacketExtension;
|
||||
import org.jivesoftware.smack.provider.PacketExtensionProvider;
|
||||
import org.jivesoftware.smackx.jingle.nat.TransportCandidate;
|
||||
import org.jivesoftware.smackx.jingle.nat.ICECandidate;
|
||||
import org.jivesoftware.smackx.packet.JingleTransport;
|
||||
import org.jivesoftware.smackx.packet.JingleTransport.JingleTransportCandidate;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
@ -97,7 +98,7 @@ public abstract class JingleTransportProvider implements PacketExtensionProvider
|
|||
* @throws Exception
|
||||
*/
|
||||
protected JingleTransportCandidate parseCandidate(XmlPullParser parser) throws Exception {
|
||||
TransportCandidate.Ice mt = new TransportCandidate.Ice();
|
||||
ICECandidate mt = new ICECandidate();
|
||||
|
||||
String channel = parser.getAttributeValue("", "channel");
|
||||
String generation = parser.getAttributeValue("", "generation");
|
||||
|
|
|
@ -60,15 +60,15 @@ public class STUNResolverTest extends SmackTestCase {
|
|||
public void testGetPreferredCandidate() throws Exception {
|
||||
int highestPref = 100;
|
||||
|
||||
TransportCandidate cand1 = new TransportCandidate.Ice("192.168.2.1", 3, 2,
|
||||
TransportCandidate cand1 = new ICECandidate("192.168.2.1", 3, 2,
|
||||
"password", 3468, "username1", 1, "");
|
||||
TransportCandidate cand2 = new TransportCandidate.Ice("192.168.5.1", 2, 10,
|
||||
TransportCandidate cand2 = new ICECandidate("192.168.5.1", 2, 10,
|
||||
"password", 3469, "username2", 15, "");
|
||||
TransportCandidate candH = new TransportCandidate.Ice("192.168.2.11", 1, 2,
|
||||
TransportCandidate candH = new ICECandidate("192.168.2.11", 1, 2,
|
||||
"password", 3468, "usernameH", highestPref, "");
|
||||
TransportCandidate cand3 = new TransportCandidate.Ice("192.168.2.10", 2, 10,
|
||||
TransportCandidate cand3 = new ICECandidate("192.168.2.10", 2, 10,
|
||||
"password", 3469, "username3", 2, "");
|
||||
TransportCandidate cand4 = new TransportCandidate.Ice("192.168.4.1", 3, 2,
|
||||
TransportCandidate cand4 = new ICECandidate("192.168.4.1", 3, 2,
|
||||
"password", 3468, "username4", 78, "");
|
||||
|
||||
STUNResolver stunResolver = new STUNResolver() {
|
||||
|
@ -90,15 +90,15 @@ public class STUNResolverTest extends SmackTestCase {
|
|||
public void testGetPreferredCandidateICE() throws Exception {
|
||||
int highestPref = 100;
|
||||
|
||||
TransportCandidate cand1 = new TransportCandidate.Ice("192.168.2.1", 3, 2,
|
||||
TransportCandidate cand1 = new ICECandidate("192.168.2.1", 3, 2,
|
||||
"password", 3468, "username1", 1, "");
|
||||
TransportCandidate cand2 = new TransportCandidate.Ice("192.168.5.1", 2, 10,
|
||||
TransportCandidate cand2 = new ICECandidate("192.168.5.1", 2, 10,
|
||||
"password", 3469, "username2", 15, "");
|
||||
TransportCandidate candH = new TransportCandidate.Ice("192.168.2.11", 1, 2,
|
||||
TransportCandidate candH = new ICECandidate("192.168.2.11", 1, 2,
|
||||
"password", 3468, "usernameH", highestPref, "");
|
||||
TransportCandidate cand3 = new TransportCandidate.Ice("192.168.2.10", 2, 10,
|
||||
TransportCandidate cand3 = new ICECandidate("192.168.2.10", 2, 10,
|
||||
"password", 3469, "username3", 2, "");
|
||||
TransportCandidate cand4 = new TransportCandidate.Ice("192.168.4.1", 3, 2,
|
||||
TransportCandidate cand4 = new ICECandidate("192.168.4.1", 3, 2,
|
||||
"password", 3468, "username4", 78, "");
|
||||
|
||||
ICEResolver iceResolver = new ICEResolver(getConnection(0), "stun.xten.net", 3478) {
|
||||
|
@ -129,11 +129,10 @@ public class STUNResolverTest extends SmackTestCase {
|
|||
// priorize candidates
|
||||
cc.prioritizeCandidates();
|
||||
// get SortedCandidates
|
||||
//List<Candidate> sortedCandidates = cc.getSortedCandidates();
|
||||
|
||||
for (Candidate candidate : cc.getSortedCandidates())
|
||||
try {
|
||||
TransportCandidate transportCandidate = new TransportCandidate.Ice(candidate.getAddress().getInetAddress().getHostAddress(), 1, candidate.getNetwork(), "1", candidate.getPort(), "1", candidate.getPriority(), "");
|
||||
TransportCandidate transportCandidate = new ICECandidate(candidate.getAddress().getInetAddress().getHostAddress(), 1, candidate.getNetwork(), "1", candidate.getPort(), "1", candidate.getPriority(), "");
|
||||
transportCandidate.setLocalIp(candidate.getBase().getAddress().getInetAddress().getHostAddress());
|
||||
System.out.println("C: " + candidate.getAddress().getInetAddress() + "|" + candidate.getBase().getAddress().getInetAddress() + " p:" + candidate.getPriority());
|
||||
}
|
||||
|
|
|
@ -18,11 +18,11 @@ public class TransportCandidateTest extends SmackTestCase {
|
|||
* Test for equals()
|
||||
*/
|
||||
public void testEqualsObject() {
|
||||
TransportCandidate cand1 = new TransportCandidate.Ice("192.168.2.1", 1, 2,
|
||||
TransportCandidate cand1 = new ICECandidate("192.168.2.1", 1, 2,
|
||||
"password", 3468, "username", 25, "");
|
||||
TransportCandidate cand2 = new TransportCandidate.Ice("192.168.2.1", 1, 2,
|
||||
TransportCandidate cand2 = new ICECandidate("192.168.2.1", 1, 2,
|
||||
"password", 3468, "username", 25, "");
|
||||
TransportCandidate cand3 = new TransportCandidate.Ice("192.168.2.1", 1, 2,
|
||||
TransportCandidate cand3 = new ICECandidate("192.168.2.1", 1, 2,
|
||||
"password", 3469, "username", 25, "");
|
||||
|
||||
assertEquals(cand1, cand2);
|
||||
|
@ -35,15 +35,15 @@ public class TransportCandidateTest extends SmackTestCase {
|
|||
public void testCompareTo() {
|
||||
int highestPref = 100;
|
||||
|
||||
TransportCandidate cand1 = new TransportCandidate.Ice("192.168.2.1", 3, 2,
|
||||
TransportCandidate cand1 = new ICECandidate("192.168.2.1", 3, 2,
|
||||
"password", 3468, "username", 1, "");
|
||||
TransportCandidate cand2 = new TransportCandidate.Ice("192.168.5.1", 2, 10,
|
||||
TransportCandidate cand2 = new ICECandidate("192.168.5.1", 2, 10,
|
||||
"password", 3469, "username", 15, "");
|
||||
TransportCandidate candH = new TransportCandidate.Ice("192.168.2.1", 1, 2,
|
||||
TransportCandidate candH = new ICECandidate("192.168.2.1", 1, 2,
|
||||
"password", 3468, "username", highestPref, "");
|
||||
TransportCandidate cand3 = new TransportCandidate.Ice("192.168.2.10", 2, 10,
|
||||
TransportCandidate cand3 = new ICECandidate("192.168.2.10", 2, 10,
|
||||
"password", 3469, "username", 2, "");
|
||||
TransportCandidate cand4 = new TransportCandidate.Ice("192.168.4.1", 3, 2,
|
||||
TransportCandidate cand4 = new ICECandidate("192.168.4.1", 3, 2,
|
||||
"password", 3468, "username", 78, "");
|
||||
|
||||
ArrayList candList = new ArrayList();
|
||||
|
|
|
@ -51,8 +51,8 @@ public class JingleMediaTest extends SmackTestCase {
|
|||
XMPPConnection x0 = getConnection(0);
|
||||
XMPPConnection x1 = getConnection(1);
|
||||
|
||||
ICETransportManager icetm0 = new ICETransportManager(x0, "stun.xten.net", 3478);
|
||||
ICETransportManager icetm1 = new ICETransportManager(x1, "stun.xten.net", 3478);
|
||||
ICETransportManager icetm0 = new ICETransportManager(x0, "jivesoftware.com", 3478);
|
||||
ICETransportManager icetm1 = new ICETransportManager(x1, "jivesoftware.com", 3478);
|
||||
|
||||
final JingleManager jm0 = new JingleManager(
|
||||
x0, icetm0);
|
||||
|
|
Loading…
Reference in a new issue