Changeset 171:ce4db06f18c6 in mediastreamer2
- Timestamp:
- Nov 15, 2008 4:08:15 PM (5 years ago)
- Branch:
- default
- Location:
- p2pproxy
- Files:
-
- 6 edited
-
src/org/linphone/p2pproxy/core/JxtaNetworkManager.java (modified) (2 diffs)
-
src/org/linphone/p2pproxy/core/media/MediaResourceService.java (modified) (1 diff)
-
src/org/linphone/p2pproxy/core/sipproxy/SipProxyRegistrar.java (modified) (1 diff)
-
src/org/linphone/p2pproxy/core/stun/StunClient.java (modified) (1 diff)
-
test-src/org/linphone/p2pproxy/test/RtpRelayServerTester.java (modified) (6 diffs)
-
test-src/org/linphone/p2pproxy/test/utils/UserInstance.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
p2pproxy/src/org/linphone/p2pproxy/core/JxtaNetworkManager.java
r164 r171 83 83 public final static String HTTP_LISTENING_PUBLIC_ADDRESS="org.linphone.p2pproxy.JxtaNetworkManager.http.listening.public.address"; 84 84 public final static String TCP_LISTENING_PUBLIC_ADDRESS="org.linphone.p2pproxy.JxtaNetworkManager.tcp.listening.public.address"; 85 public final static String SEEDING_RDV_URL="org.linphone.p2pproxy.JxtaNetworkManager.seeding-rdv.url-location"; 86 public final static String SEEDING_RELAY_URL="org.linphone.p2pproxy.JxtaNetworkManager.seeding-relay.url-location"; 87 85 88 public final static String SO_TIMEOUT="org.linphone.p2pproxy.so-timout"; 86 89 public final static String ENABLE_HTTP_CLIENT="org.linphone.p2pproxy.JxtaNetworkManager.http.client.enable"; … … 112 115 */ 113 116 public JxtaNetworkManager(Configurator aProperties,File aConfigDir) throws JxtaException, InterruptedException, P2pProxyException, IOException, URISyntaxException, CertificateException { 114 super(); 115 // get configuration 116 //System.setProperty("JXTA_HOME", aConfigDir.getAbsolutePath()); 117 118 NetworkConfigurator lNetworkConfigurator; 119 mProperties = aProperties; 120 // set mode 121 mMode = Mode.valueOf(aProperties.getProperty(MODE, Mode.edge.name())); 122 int lMode; 123 if (mMode == Mode.relay || mMode == Mode.seeding_server) { 124 lMode = SUPER_PEER_MODE; 125 } else { 126 lMode = EDGE_MODE; 127 } 128 if (aProperties.getProperty(ENABLE_HTTP_CLIENT) != null && Boolean.parseBoolean(aProperties.getProperty(ENABLE_HTTP_CLIENT)) == true) { 129 lMode = lMode | NetworkConfigurator.HTTP_CLIENT; 130 } 131 132 lNetworkConfigurator = new NetworkConfigurator(lMode,aConfigDir.toURI()); 133 134 if (!lNetworkConfigurator.exists()) { 135 lNetworkConfigurator.setPeerID(IDFactory.newPeerID(PeerGroupID.defaultNetPeerGroupID)); 136 lNetworkConfigurator.setName(InetAddress.getLocalHost().toString()+" "+aProperties.getProperty(TCP_LISTENING_PORT)); 137 lNetworkConfigurator.setDescription("p2p proxy instance"); 138 lNetworkConfigurator.save(); 139 } else { 140 lNetworkConfigurator.load(); 141 } 142 //mode is alway taken from start line 143 lNetworkConfigurator.setMode(lMode); 144 // set sedding host 145 if (aProperties.getProperty(SEEDING_RDV) != null) { 146 StringTokenizer lSeedingRdvList = new StringTokenizer(aProperties.getProperty(SEEDING_RDV),"|" ); 147 while (lSeedingRdvList.hasMoreTokens()) { 148 lNetworkConfigurator.addSeedRendezvous(new URI(lSeedingRdvList.nextToken())); 149 } 150 } 151 if (aProperties.getProperty(SEEDING_RELAY) != null) { 152 StringTokenizer lSeedingRelayList = new StringTokenizer(aProperties.getProperty(SEEDING_RELAY),"|" ); 153 while (lSeedingRelayList.hasMoreTokens()) { 154 lNetworkConfigurator.addSeedRelay(new URI(lSeedingRelayList.nextToken())); 155 } 156 } 157 158 if (aProperties.getProperty(HTTP_LISTENING_PUBLIC_ADDRESS) != null) { 159 lNetworkConfigurator.setHttpPublicAddress(aProperties.getProperty(HTTP_LISTENING_PUBLIC_ADDRESS), true); 160 } 161 162 // set listening ports 163 if (aProperties.getProperty(HTTP_LISTENING_PORT) != null) { 164 lNetworkConfigurator.setHttpPort(Integer.parseInt(aProperties.getProperty(HTTP_LISTENING_PORT))); 165 } 166 167 if (aProperties.getProperty(TCP_LISTENING_PUBLIC_ADDRESS) != null) { 168 lNetworkConfigurator.setTcpPublicAddress(aProperties.getProperty(TCP_LISTENING_PUBLIC_ADDRESS), true); 169 lNetworkConfigurator.setTcpStartPort(-1); 170 lNetworkConfigurator.setTcpEndPort(-1); 171 } 172 173 if (aProperties.getProperty(TCP_LISTENING_PORT) != null) { 174 lNetworkConfigurator.setTcpPort(Integer.parseInt(aProperties.getProperty(TCP_LISTENING_PORT))); 175 } 176 177 // connect to rdv 178 int lRdvConnectionTimout = Integer.parseInt(aProperties.getProperty(RDV_CONNECT_TIMEOUT,"60000")); 179 init(lNetworkConfigurator,lRdvConnectionTimout,mMode); 180 181 117 super(); 118 // get configuration 119 //System.setProperty("JXTA_HOME", aConfigDir.getAbsolutePath()); 120 121 NetworkConfigurator lNetworkConfigurator; 122 mProperties = aProperties; 123 // set mode 124 mMode = Mode.valueOf(aProperties.getProperty(MODE, Mode.edge.name())); 125 int lMode; 126 if (mMode == Mode.relay || mMode == Mode.seeding_server) { 127 lMode = SUPER_PEER_MODE; 128 } else { 129 lMode = EDGE_MODE; 130 } 131 if (aProperties.getProperty(ENABLE_HTTP_CLIENT) != null && Boolean.parseBoolean(aProperties.getProperty(ENABLE_HTTP_CLIENT)) == true) { 132 lMode = lMode | NetworkConfigurator.HTTP_CLIENT; 133 } 134 135 lNetworkConfigurator = new NetworkConfigurator(lMode,aConfigDir.toURI()); 136 137 if (!lNetworkConfigurator.exists()) { 138 lNetworkConfigurator.setPeerID(IDFactory.newPeerID(PeerGroupID.defaultNetPeerGroupID)); 139 lNetworkConfigurator.setName(InetAddress.getLocalHost().toString()+" "+aProperties.getProperty(TCP_LISTENING_PORT)); 140 lNetworkConfigurator.setDescription("p2p proxy instance"); 141 lNetworkConfigurator.save(); 142 } else { 143 lNetworkConfigurator.load(); 144 } 145 //mode is alway taken from start line 146 lNetworkConfigurator.setMode(lMode); 147 // set sedding host 148 if (aProperties.getProperty(SEEDING_RDV) != null) { 149 StringTokenizer lSeedingRdvList = new StringTokenizer(aProperties.getProperty(SEEDING_RDV),"|" ); 150 while (lSeedingRdvList.hasMoreTokens()) { 151 lNetworkConfigurator.addSeedRendezvous(new URI(lSeedingRdvList.nextToken())); 152 } 153 } 154 if (aProperties.getProperty(SEEDING_RELAY) != null) { 155 StringTokenizer lSeedingRelayList = new StringTokenizer(aProperties.getProperty(SEEDING_RELAY),"|" ); 156 while (lSeedingRelayList.hasMoreTokens()) { 157 lNetworkConfigurator.addSeedRelay(new URI(lSeedingRelayList.nextToken())); 158 } 159 } 160 161 162 if (aProperties.getProperty(SEEDING_RDV_URL) != null) { 163 StringTokenizer lSeedingRdvList = new StringTokenizer(aProperties.getProperty(SEEDING_RDV_URL),"|" ); 164 while (lSeedingRdvList.hasMoreTokens()) { 165 lNetworkConfigurator.addRdvSeedingURI(new URI(lSeedingRdvList.nextToken())); 166 } 167 } else { 168 lNetworkConfigurator.addRdvSeedingURI("http://seeding.fonis.net/rdv"); 169 } 170 if (aProperties.getProperty(SEEDING_RELAY_URL) != null) { 171 StringTokenizer lSeedingRelayList = new StringTokenizer(aProperties.getProperty(SEEDING_RELAY_URL),"|" ); 172 while (lSeedingRelayList.hasMoreTokens()) { 173 lNetworkConfigurator.addRelaySeedingURI(new URI(lSeedingRelayList.nextToken())); 174 } 175 } else { 176 lNetworkConfigurator.addRelaySeedingURI("http://seeding.fonis.net/relay"); 177 } 178 179 if (aProperties.getProperty(HTTP_LISTENING_PUBLIC_ADDRESS) != null) { 180 lNetworkConfigurator.setHttpPublicAddress(aProperties.getProperty(HTTP_LISTENING_PUBLIC_ADDRESS), true); 181 } 182 183 // set listening ports 184 if (aProperties.getProperty(HTTP_LISTENING_PORT) != null) { 185 lNetworkConfigurator.setHttpPort(Integer.parseInt(aProperties.getProperty(HTTP_LISTENING_PORT))); 186 } 187 188 if (aProperties.getProperty(TCP_LISTENING_PUBLIC_ADDRESS) != null) { 189 lNetworkConfigurator.setTcpPublicAddress(aProperties.getProperty(TCP_LISTENING_PUBLIC_ADDRESS), true); 190 lNetworkConfigurator.setTcpStartPort(-1); 191 lNetworkConfigurator.setTcpEndPort(-1); 192 } 193 194 if (aProperties.getProperty(TCP_LISTENING_PORT) != null) { 195 lNetworkConfigurator.setTcpPort(Integer.parseInt(aProperties.getProperty(TCP_LISTENING_PORT))); 196 } 197 198 // connect to rdv 199 int lRdvConnectionTimout = Integer.parseInt(aProperties.getProperty(RDV_CONNECT_TIMEOUT,"60000")); 200 init(lNetworkConfigurator,lRdvConnectionTimout,mMode); 201 202 182 203 } 183 204 /** -
p2pproxy/src/org/linphone/p2pproxy/core/media/MediaResourceService.java
r164 r171 80 80 mStunRtpServerAdvertisement = (NetworkResourceAdvertisement) AdvertisementFactory.newAdvertisement(NetworkResourceAdvertisement.getAdvertisementType()); 81 81 mStunRtpServerAdvertisement.setAddress("udp://"+mConfig.getAudioVideoPublicSocketAddress().getAddress().getHostAddress()+":"+mConfig.getAudioVideoPublicSocketAddress().getPort()); 82 mStunRtpServerAdvertisement.setID(IDFactory.newCodatID(mJxtaNetworkManager.getPeerGroup().getPeerGroupID() /*, mStunRtpServerAdvertisement.getAddress().getBytes("US-ASCII")*/));82 mStunRtpServerAdvertisement.setID(IDFactory.newCodatID(mJxtaNetworkManager.getPeerGroup().getPeerGroupID(), Integer.toHexString(mStunRtpServerAdvertisement.getAddress().hashCode()).getBytes("US-ASCII"))); 83 83 mStunRtpServerAdvertisement.setName(ADV_NAME); 84 84 mJxtaNetworkManager.getPeerGroup().getDiscoveryService().publish(mStunRtpServerAdvertisement,ADV_LIFE_TIME,ADV_LIFE_TIME/2); -
p2pproxy/src/org/linphone/p2pproxy/core/sipproxy/SipProxyRegistrar.java
r164 r171 395 395 if (mProxyRegistrationAdvertisement == null) { 396 396 mProxyRegistrationAdvertisement = (NetworkResourceAdvertisement) AdvertisementFactory.newAdvertisement(NetworkResourceAdvertisement.getAdvertisementType()); 397 mProxyRegistrationAdvertisement.setID(IDFactory.newCodatID(mJxtaNetworkManager.getPeerGroup().getPeerGroupID() /*, mSuperPeerProxy.getSipProxyRegistrarAddress().getBytes("US-ASCII")*/));397 mProxyRegistrationAdvertisement.setID(IDFactory.newCodatID(mJxtaNetworkManager.getPeerGroup().getPeerGroupID(), Integer.toHexString(mSuperPeerProxy.getSipProxyRegistrarAddress().hashCode()).getBytes("US-ASCII"))); 398 398 mProxyRegistrationAdvertisement.setAddress(mSuperPeerProxy.getSipProxyRegistrarAddress()); 399 399 mProxyRegistrationAdvertisement.setName(ADV_NAME); -
p2pproxy/src/org/linphone/p2pproxy/core/stun/StunClient.java
r164 r171 78 78 } 79 79 } 80 public List<InetSocketAddress> getStrunServerList() { 81 return mStunServerList; 82 } 80 83 private List<InetSocketAddress> acquireStunServerAddress() throws P2pProxyAdvertisementNotFoundException, InterruptedException, IOException { 81 84 List<NetworkResourceAdvertisement> lStunServerAdv = (List<NetworkResourceAdvertisement>) mJxtaNetworkManager.getAdvertisementList(null, MediaResourceService.ADV_NAME, true); -
p2pproxy/test-src/org/linphone/p2pproxy/test/RtpRelayServerTester.java
r170 r171 13 13 14 14 import org.apache.log4j.BasicConfigurator; 15 import org.apache.log4j.Logger; 15 16 import org.junit.After; 16 17 import org.junit.Before; … … 20 21 21 22 public class RtpRelayServerTester extends TestCase{ 22 23 private final static Logger mLog = Logger.getLogger(RtpRelayServerTester.class); 23 24 static private RtpRelayServer mRtpRelayServer; 24 25 static private int RTP_SERVER_PORT = 16000; … … 83 84 try { 84 85 //1 send rtcp app A 85 DatagramSocket lRtcpSocketA = new DatagramSocket( new InetSocketAddress("localhost", 0));86 DatagramSocket lRtcpSocketA = new DatagramSocket(); 86 87 DatagramPacket lRtcpaPacket = new DatagramPacket(lRtcpA,lRtcpA.length,mServerSocket); 87 88 lRtcpSocketA.setSoTimeout(SO_TIMEOUT); … … 89 90 90 91 //2 send rtcp app B 91 DatagramSocket lRtcpSocketB = new DatagramSocket( new InetSocketAddress("localhost", 0));92 DatagramSocket lRtcpSocketB = new DatagramSocket(); 92 93 DatagramPacket lRtcpbPacket = new DatagramPacket(lRtcpB,lRtcpB.length,mServerSocket); 93 94 lRtcpSocketB.setSoTimeout(SO_TIMEOUT); … … 96 97 97 98 //3 send rtp A 98 DatagramSocket lRtpSocketA = new DatagramSocket( new InetSocketAddress("localhost", 0));99 DatagramSocket lRtpSocketA = new DatagramSocket(); 99 100 DatagramPacket lRtpaPacket = new DatagramPacket(lRtpA,lRtpA.length,mServerSocket); 100 101 lRtpSocketA.setSoTimeout(SO_TIMEOUT); … … 102 103 103 104 //4 send rtp B 104 DatagramSocket lRtpSocketB = new DatagramSocket( new InetSocketAddress("localhost", 0));105 DatagramSocket lRtpSocketB = new DatagramSocket(); 105 106 DatagramPacket lRtpblPacket = new DatagramPacket(lRtpB,lRtpB.length,mServerSocket); 106 107 lRtpSocketB.send(lRtpblPacket); -
p2pproxy/test-src/org/linphone/p2pproxy/test/utils/UserInstance.java
r164 r171 37 37 import org.linphone.p2pproxy.core.stun.StunClient; 38 38 import org.linphone.p2pproxy.launcher.P2pProxylauncherConstants; 39 import org.linphone.p2pproxy.test.RtpRelayServerTester; 39 40 import org.zoolu.net.SocketAddress; 40 41 import org.zoolu.sip.provider.SipProvider; … … 46 47 private final SipProvider mProvider; 47 48 private final SipClient mSipClient; 48 private StunClient mStunClient; 49 private RtpRelayServerTester mRtpRelayServerTester; 50 private StunClient mStunClient; 49 51 private final int REGISTRATION_PERIOD=60; 50 52 private final static Logger mLog = Logger.getLogger(UserInstance.class); … … 123 125 } 124 126 125 mSipClient.register(REGISTRATION_PERIOD,userName); 127 try{ 128 mSipClient.register(REGISTRATION_PERIOD,userName); 129 }catch(Exception e) { 130 mLog.error("registration error", e); 131 } 132 if (lMediaServer.length > 0) { 133 mRtpRelayServerTester = new RtpRelayServerTester(mStunClient.getStrunServerList().get(0)); 134 } 126 135 mIsRegistered = true; 127 136 } … … 142 151 public void call(String aTo, int duration) { 143 152 mSipClient.call(aTo, true, duration); 153 if (mRtpRelayServerTester != null) { 154 mRtpRelayServerTester.testRouting(); 155 mLog.info("rtp relay ok"); 156 } 144 157 } 145 158 public static void main(String[] args) throws P2pProxyException {
Note: See TracChangeset
for help on using the changeset viewer.
