Package local.ua

Source Code of local.ua.RATLauncher

package local.ua;


import local.net.UdpRelay;
import org.zoolu.sip.provider.SipStack;
import org.zoolu.tools.Log;
import org.zoolu.tools.LogLevel;
//import tools.Parser;

//import java.util.Iterator;
//import java.util.Vector;
//import java.io.*;


/** RAT launcher */
public class RATLauncher implements MediaLauncher
{
   /** Event logger. */
   Log log=null;

   /** Runtime media process (RAT application) */
   Process media_process=null;
  
   int localport;
   int remoteport;
   String remoteaddr;
  
   /** Media application command */
   String command;

   /** Costructs the RAT launcher
     * <p> <i>attributes</i> is a Vector of the sdp media attributes */
   public  RATLauncher(String rat_comm, int local_port, String remote_addr, int remote_port, Log logger)
   {  log=logger;
      command=rat_comm;
      localport=local_port;
      remoteport=remote_port;
      remoteaddr=remote_addr;
   }

   /** Starts media application */
   public boolean startMedia()
   {  // udp flow adaptation for RAT application
      if (localport!=remoteport)
      {  printLog("UDP local relay: src_port="+localport+", dest_port="+remoteport);
         printLog("UDP local relay: src_port="+(localport+1)+", dest_port="+(remoteport+1));
         new UdpRelay(localport,"127.0.0.1",remoteport,null);
         new UdpRelay(localport+1,"127.0.0.1",remoteport+1,null)
      }
      else
      printLog("local_port==remote_port --> no UDP relay is needed");
      }

      //debug...
      printLog("launching RAT-Audio...");

      String cmds[] = {"","",""};
      cmds[0] = command;
      cmds[1] = remoteaddr+"/"+remoteport;

      // try to start the RAT
      try
      media_process=Runtime.getRuntime().exec(cmds);
         return true;
      }
      catch (Exception e)
      {  e.printStackTrace();
         return false;
      }         
   }

   /** Stops media application */
   public boolean stopMedia()
   {  if (media_process!=null) media_process.destroy();
      return true;
   }


   // ****************************** Logs *****************************

   /** Adds a new string to the default Log */
   private void printLog(String str)
   {  if (log!=null) log.println("RATLauncher: "+str,SipStack.LOG_LEVEL_UA+LogLevel.HIGH)
      //if (LOG_LEVEL<=LogLevel.HIGH) System.out.println("RATLauncher: "+str);
      System.out.println("RATLauncher: "+str);
   }
     
}
TOP

Related Classes of local.ua.RATLauncher

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.