Program Documentation


James Lee
Columbia University
New York, NY
USA
jl1341@columbia.edu

Amit Kaul
Columbia University
New York, NY
USA
ak946@columbia.edu


Abstract

This page describes the detailed program operations of the TRIP protocol and the location server implemented.  The program consist of an LS, when run, both connect to peers that exist in its location server configuration file and accepts connections from a peer.  The LS can be run in three modes: send only, receive only, and send/receive with arguments provided when invoking the program.  After a connection is made, the LS initiates its finite state machine.

Several test tools demonstrate the working of the LS.  When running the peer session test with the LS program, the peer session tries connects to the LS.  If succeeds, the test program sends a OPEN message.  The success of the reception of this OPEN message by an LS will depend on the mode it is currently running as and the connection between the testing peer session and the LS.

With update message testing, a peer session opens a connection to an running LS program, and sends update message to the LS.  The LS locator test program locates the LS and the TRIP id test returns the TRIP id of an LS.


System Requirements

The libraries are for Sun Solaris and Linux operating systems.  The make utility and the build tools are available for both of these operating systems.


Installation Instructions

To install, use the make utility provided with the program.  Unzip the tar file, if necessary.  In the root directory of the program, typing make lsserver will make the necessary binaries for the location server.  Typing make trip_test will make the test clients. To save yourself from typing two commands, type make all to get make everything. It will automatically do the configure for Solaris or Linux.

To clean the .o and .d type make clean.


Operation

The man page for the operation of an LS.

A screen dump of an LS running:
 

 

Program Internal Operation

The program is build on libraries of the TRIP stack, which contains: 

An location server is build on the TRIP stack.  The following code segment provides an instance of a LS peer session with LSSessionManager. 

#include <stdio.h>
#include <unistd.h>
#include <iostream.h>
#include "LSSessionManager.hxx"
#include "cpLog.h"

main() 
{
    try
    {
        cpLogSetPriority(7);
        LSSessionManager& manager = LSSessionManager::instance(1234);
        manager.threadRun();
        while(1)
        {
            sleep(2);
         }
    }
    catch(VException& e)
    {
        cerr << "Caught exception:" << e.getDescription().c_str() << endl;
    }
}


Useful Enhancements

The current stages does not include a decision manager for each incoming UPDATE message.  Enhancements can be made to include this into the current implementations.

Acknowledgement

  1. Rosenberg, J., H. Salama and M.Squire.  "Telephony Routing over IP Internet Draft", IPTEL Working Group, Nov. 2000.
  2. J. Rosenberg and H. Schulzrinne, "A Framework for a Gateway Location Protocol", IETF RFC 2871, June 2000.
  3. Y. Rekhter and T. Lli, "Border Gateway Protocol 4 (BGP -4)" IETF RFC 1771, March 1995.