Changeset 171:ce4db06f18c6 in mediastreamer2


Ignore:
Timestamp:
Nov 15, 2008 4:08:15 PM (5 years ago)
Author:
jehan <jehan@…>
Branch:
default
Message:

add seeding server retrieval from url

git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@174 3f6dc0c8-ddfe-455d-9043-3cd528dc4637

Location:
p2pproxy
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • p2pproxy/src/org/linphone/p2pproxy/core/JxtaNetworkManager.java

    r164 r171  
    8383   public final static String HTTP_LISTENING_PUBLIC_ADDRESS="org.linphone.p2pproxy.JxtaNetworkManager.http.listening.public.address"; 
    8484   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 
    8588   public final static String SO_TIMEOUT="org.linphone.p2pproxy.so-timout"; 
    8689   public final static String ENABLE_HTTP_CLIENT="org.linphone.p2pproxy.JxtaNetworkManager.http.client.enable"; 
     
    112115    */ 
    113116   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 
    182203   } 
    183204   /** 
  • p2pproxy/src/org/linphone/p2pproxy/core/media/MediaResourceService.java

    r164 r171  
    8080                                   mStunRtpServerAdvertisement = (NetworkResourceAdvertisement) AdvertisementFactory.newAdvertisement(NetworkResourceAdvertisement.getAdvertisementType()); 
    8181                                   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"))); 
    8383                                   mStunRtpServerAdvertisement.setName(ADV_NAME); 
    8484                                   mJxtaNetworkManager.getPeerGroup().getDiscoveryService().publish(mStunRtpServerAdvertisement,ADV_LIFE_TIME,ADV_LIFE_TIME/2); 
  • p2pproxy/src/org/linphone/p2pproxy/core/sipproxy/SipProxyRegistrar.java

    r164 r171  
    395395           if (mProxyRegistrationAdvertisement == null) {    
    396396           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"))); 
    398398              mProxyRegistrationAdvertisement.setAddress(mSuperPeerProxy.getSipProxyRegistrarAddress()); 
    399399              mProxyRegistrationAdvertisement.setName(ADV_NAME); 
  • p2pproxy/src/org/linphone/p2pproxy/core/stun/StunClient.java

    r164 r171  
    7878      } 
    7979   }    
     80   public List<InetSocketAddress> getStrunServerList() { 
     81           return mStunServerList; 
     82   } 
    8083   private List<InetSocketAddress> acquireStunServerAddress() throws P2pProxyAdvertisementNotFoundException, InterruptedException, IOException { 
    8184      List<NetworkResourceAdvertisement> lStunServerAdv = (List<NetworkResourceAdvertisement>) mJxtaNetworkManager.getAdvertisementList(null, MediaResourceService.ADV_NAME, true); 
  • p2pproxy/test-src/org/linphone/p2pproxy/test/RtpRelayServerTester.java

    r170 r171  
    1313 
    1414import org.apache.log4j.BasicConfigurator; 
     15import org.apache.log4j.Logger; 
    1516import org.junit.After; 
    1617import org.junit.Before; 
     
    2021 
    2122public class RtpRelayServerTester extends TestCase{ 
    22  
     23        private final static Logger mLog = Logger.getLogger(RtpRelayServerTester.class); 
    2324        static private RtpRelayServer mRtpRelayServer; 
    2425        static private int RTP_SERVER_PORT = 16000; 
     
    8384                try { 
    8485                        //1 send rtcp app A 
    85                         DatagramSocket lRtcpSocketA = new DatagramSocket(new InetSocketAddress("localhost", 0)); 
     86                        DatagramSocket lRtcpSocketA = new DatagramSocket(); 
    8687                        DatagramPacket lRtcpaPacket = new DatagramPacket(lRtcpA,lRtcpA.length,mServerSocket); 
    8788                        lRtcpSocketA.setSoTimeout(SO_TIMEOUT); 
     
    8990                         
    9091                        //2 send rtcp app B 
    91                         DatagramSocket lRtcpSocketB = new DatagramSocket(new InetSocketAddress("localhost", 0)); 
     92                        DatagramSocket lRtcpSocketB = new DatagramSocket(); 
    9293                        DatagramPacket lRtcpbPacket = new DatagramPacket(lRtcpB,lRtcpB.length,mServerSocket); 
    9394                        lRtcpSocketB.setSoTimeout(SO_TIMEOUT); 
     
    9697 
    9798            //3 send rtp A 
    98             DatagramSocket lRtpSocketA = new DatagramSocket(new InetSocketAddress("localhost", 0)); 
     99            DatagramSocket lRtpSocketA = new DatagramSocket(); 
    99100            DatagramPacket lRtpaPacket = new DatagramPacket(lRtpA,lRtpA.length,mServerSocket); 
    100101            lRtpSocketA.setSoTimeout(SO_TIMEOUT); 
     
    102103             
    103104            //4 send rtp B 
    104             DatagramSocket lRtpSocketB = new DatagramSocket(new InetSocketAddress("localhost", 0)); 
     105            DatagramSocket lRtpSocketB = new DatagramSocket(); 
    105106            DatagramPacket lRtpblPacket = new DatagramPacket(lRtpB,lRtpB.length,mServerSocket); 
    106107            lRtpSocketB.send(lRtpblPacket); 
  • p2pproxy/test-src/org/linphone/p2pproxy/test/utils/UserInstance.java

    r164 r171  
    3737import org.linphone.p2pproxy.core.stun.StunClient; 
    3838import org.linphone.p2pproxy.launcher.P2pProxylauncherConstants; 
     39import org.linphone.p2pproxy.test.RtpRelayServerTester; 
    3940import org.zoolu.net.SocketAddress; 
    4041import org.zoolu.sip.provider.SipProvider; 
     
    4647private final SipProvider mProvider; 
    4748private final SipClient mSipClient; 
    48 private  StunClient mStunClient; 
     49private RtpRelayServerTester mRtpRelayServerTester; 
     50private StunClient mStunClient; 
    4951private final int REGISTRATION_PERIOD=60; 
    5052private final static Logger mLog = Logger.getLogger(UserInstance.class); 
     
    123125                                        } 
    124126                                         
    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                                        } 
    126135                                        mIsRegistered = true; 
    127136                                }        
     
    142151public void call(String aTo, int duration) { 
    143152        mSipClient.call(aTo, true, duration); 
     153        if (mRtpRelayServerTester != null) { 
     154                mRtpRelayServerTester.testRouting(); 
     155                mLog.info("rtp relay ok"); 
     156        } 
    144157} 
    145158public static void main(String[] args) throws P2pProxyException { 
Note: See TracChangeset for help on using the changeset viewer.