]> sjero.net Git - linphone/blob - p2pproxy/src/org/linphone/p2pproxy/core/P2pProxyResourceManagementImpl.java
remove mediastreamer2 and add it as a submodule instead.
[linphone] / p2pproxy / src / org / linphone / p2pproxy / core / P2pProxyResourceManagementImpl.java
1 package org.linphone.p2pproxy.core;
2
3 import java.util.List;
4
5 import org.apache.log4j.Logger;
6 import org.linphone.p2pproxy.api.P2pProxyException;
7 import org.linphone.p2pproxy.api.P2pProxyResourceManagement;
8 import org.linphone.p2pproxy.core.media.MediaResourceService;
9 import org.linphone.p2pproxy.core.sipproxy.NetworkResourceAdvertisement;
10 import org.linphone.p2pproxy.core.sipproxy.SipProxyRegistrar;
11
12 public class P2pProxyResourceManagementImpl implements P2pProxyResourceManagement {
13         protected final JxtaNetworkManager mJxtaNetworkManager;
14
15         private final static Logger mLog = Logger.getLogger(P2pProxyResourceManagementImpl.class);
16         P2pProxyResourceManagementImpl(JxtaNetworkManager aJxtaNetworkManager) {
17                 mJxtaNetworkManager = aJxtaNetworkManager;
18         }
19         public String[] lookupSipProxiesUri(String aDomaine) throws P2pProxyException {
20                 try {
21                         if (!DOMAINE.equals(aDomaine)) {
22                                 //unknown domaine
23                                 return new String[0];
24                         }
25                         List<NetworkResourceAdvertisement> lSipProxyRegistrarAdvertisements =  (List<NetworkResourceAdvertisement>) (mJxtaNetworkManager.getAdvertisementList(null, "Name",SipProxyRegistrar.ADV_NAME, true,2));
26                         String[] lAddresses = new String[lSipProxyRegistrarAdvertisements.size()];
27                         for (int i=0;i<lSipProxyRegistrarAdvertisements.size();i++) {
28                                 lAddresses[i] = lSipProxyRegistrarAdvertisements.get(i).getAddress();
29                         }
30                         return lAddresses;
31                 }catch (Exception e) {
32                         throw new P2pProxyException(e);
33                 }
34
35         }
36         public void revokeSipProxy(String aProxy) throws P2pProxyException {
37                 revokeNetworkResoure(aProxy, SipProxyRegistrar.ADV_NAME);
38         }
39         public String[] getMediaServerList() throws P2pProxyException {
40                 try {
41
42                         List<NetworkResourceAdvertisement> lMediaResoureAdvertisements =  (List<NetworkResourceAdvertisement>) (mJxtaNetworkManager.getAdvertisementList(null, "Name",MediaResourceService.ADV_NAME, true,2));
43                         String[] lAddresses = new String[lMediaResoureAdvertisements.size()];
44                         for (int i=0;i<lMediaResoureAdvertisements.size();i++) {
45                                 lAddresses[i] = lMediaResoureAdvertisements.get(i).getAddress();
46                         }
47                         return lAddresses;
48                 }catch (Exception e) {
49                         throw new P2pProxyException(e);
50                 }
51         }
52
53         public void revokeMediaServer(String aMediaServer) throws P2pProxyException {
54                 revokeNetworkResoure(aMediaServer, MediaResourceService.ADV_NAME);
55         }
56         private void revokeNetworkResoure(String aResource,String anAdvName) throws P2pProxyException {
57                 try {
58                         List<NetworkResourceAdvertisement> lMediaResourceAdvertisement = (List<NetworkResourceAdvertisement>) (mJxtaNetworkManager.getAdvertisementList(null,anAdvName, true));
59                         for (NetworkResourceAdvertisement lMediaResource:lMediaResourceAdvertisement) {
60                                 if (lMediaResource.getAddress().equals("udp://"+aResource)) {
61                                         mJxtaNetworkManager.getPeerGroup().getDiscoveryService().flushAdvertisement(lMediaResource);
62                                         mLog.info(aResource +" revoked");
63                                 }
64
65                         }
66                 } catch (Exception e) {
67                         throw new P2pProxyException(e);
68                 }       
69         }
70
71 }