reSIProcate/stack  9694
Defines | Functions
lg.cxx File Reference
#include "rutil/Logger.hxx"
#include "resip/stack/Uri.hxx"
#include "Register.hxx"
#include "Registrar.hxx"
#include "InviteServer.hxx"
#include "InviteClient.hxx"
#include "Transceiver.hxx"
Include dependency graph for lg.cxx:

Go to the source code of this file.

Defines

#define RESIPROCATE_SUBSYSTEM   Subsystem::SIP

Functions

void usage ()
int main (int argc, char *argv[])

Define Documentation

#define RESIPROCATE_SUBSYSTEM   Subsystem::SIP

Definition at line 17 of file lg.cxx.


Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 27 of file lg.cxx.

References resip::Symbols::COLON, resip::Log::Cout, resip::ParseBuffer::data(), resip::ParseBuffer::end(), Loadgen::Registrar::go(), Loadgen::InviteServer::go(), Loadgen::InviteClient::go(), Loadgen::Register::go(), resip::Uri::host(), resip::Log::Info, InfoLog, resip::Log::initialize(), resip::ParseBuffer::integer(), resip::ParserCategory::param(), resip::Uri::port(), resip::ParseBuffer::position(), resip::ParseBuffer::skipChar(), resip::ParseBuffer::skipToChar(), and usage().

{
   Log::initialize(Log::Cout, Log::Info, argv[0]);
 
   if (!(argc == 3 || argc == 6 || argc == 7))
   {
      usage();
   }

   int port = atoi(argv[1]);
   if (port == 0)
   {
      usage();
   }
   
   if (Data(argv[2]) == "REG_SEND" || Data(argv[2]) == "INV_SEND")
   {
      Uri target;

      ParseBuffer host(argv[3], strlen(argv[3]));
      const char* start = host.position();
      host.skipToChar(Symbols::COLON[0]);
      if (host.position() == host.end())
      {
         usage();
      }
      
      target.host() = host.data(start);
      host.skipChar();
      target.port() = host.integer();
      target.param(p_transport) = "udp";

      InfoLog(<< target);
   
      Transceiver stack(port);
      
      int startExt = atoi(argv[4]);
      int endExt = atoi(argv[5]);
      if (startExt == 0 || endExt == 0 || startExt > endExt)
      {
         usage();
      }
      int numTimes = 0;
      if (argc == 7)
      {
         numTimes = atoi(argv[6]);
         if (numTimes == 0)
         {
            usage();
         }
      }
      if (Data(argv[2]) == "REG_SEND")
      {
         Register reg(stack, target, 
                      startExt, endExt, numTimes);
         reg.go();
      }
      else
      {
         InviteClient inv(stack, target, 
                          startExt, endExt, numTimes);
         inv.go();
      }
   }
   else if (Data(argv[2]) == "REG_RECEIVE")
   {
      Transceiver stack(port);
      Registrar reg(stack);
      reg.go();
   }
   else if (Data(argv[2]) == "INV_RECEIVE")
   {
      Transceiver stack(port);
      InviteServer inv(stack);
      inv.go();
   }
   else
   {
      usage();
   }
   return 0;
}

Here is the call graph for this function:

void usage ( )

Definition at line 19 of file lg.cxx.

Referenced by main().

{
   cout << "Usage: lg port {REG_RECEIVE, INV_RECEIVE}" << endl
        << "       lg port {REG_SEND, INV_SEND} targetHost:port startingExt endingExt [registers]" << endl;
   exit(-1);
}