1 package org.linphone.p2pproxy.core;
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;
12 public class P2pProxyResourceManagementImpl implements P2pProxyResourceManagement {
13 protected final JxtaNetworkManager mJxtaNetworkManager;
15 private final static Logger mLog = Logger.getLogger(P2pProxyResourceManagementImpl.class);
16 P2pProxyResourceManagementImpl(JxtaNetworkManager aJxtaNetworkManager) {
17 mJxtaNetworkManager = aJxtaNetworkManager;
19 public String[] lookupSipProxiesUri(String aDomaine) throws P2pProxyException {
21 if (!DOMAINE.equals(aDomaine)) {
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();
31 }catch (Exception e) {
32 throw new P2pProxyException(e);
36 public void revokeSipProxy(String aProxy) throws P2pProxyException {
37 revokeNetworkResoure(aProxy, SipProxyRegistrar.ADV_NAME);
39 public String[] getMediaServerList() throws P2pProxyException {
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();
48 }catch (Exception e) {
49 throw new P2pProxyException(e);
53 public void revokeMediaServer(String aMediaServer) throws P2pProxyException {
54 revokeNetworkResoure(aMediaServer, MediaResourceService.ADV_NAME);
56 private void revokeNetworkResoure(String aResource,String anAdvName) throws P2pProxyException {
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");
66 } catch (Exception e) {
67 throw new P2pProxyException(e);