*********************************************************************************
*                                                                               *
* NOTICE:                                                                       *
* This document contains information that is confidential and proprietary to    *
* RADVision LTD.. No part of this publication may be reproduced in any form     *
* whatsoever without written prior approval by RADVision LTD..                  *
*                                                                               * 
* RADVision LTD. reserves the right to revise this publication and make changes *
* without obligation to notify any person of such revisions or changes.         *    
*********************************************************************************

                      Simple Stateful Proxy Readme File
                      ---------------------------------
General
-------
1. The simple Stateful Proxy is a sample code designed to show how to use 
   RADVISION's SIP Server Toolkit in order to build a simple stateful proxy server.

2. The simple stateful proxy implement usage of advanced features like 
   maintaining a location database. 
   
3. The simple stateful proxy implements both the registrar and the proxy server logical 
   functions.

Usage
-----
4. The SIP server is using APP_LOCAL_INTERFACE address as its listening address. 
   Before running the sample you should update the address definitions of 
   APP_LOCAL_INTERFACE located in SimplestatefulProxyServerTypes.h file.

5. To activate the application simply double click the executable 
   (SimpleStatefulProxy.exe by default), or write it's name at the command prompt
   and hit Enter.

6. The first thing you will see is a menu asking for the forward type.
   enter 'p' for parallel or 's' for sequential

7. After the server has been started it will wait for incoming requests on 
   port 5060.
   a. The proxy will accept valid registration requests and update its database.
   b. The proxy will forward incoming requests statefully, using the location 
      database components to resolve addresses.
   c. The Server domain at this sample code is the local ip with port 5060.


Notes
-----
8. General function description:
   a. General functions: The following functions are responsible for constructing 
      the Server Toolkit with required parameters (e.g. interfaces list) (RegistrarInit()), registering 
      call backs (RegisterCallBacks()), and initiating the location database component
      (AppLocationDbInit()).
   
   b. CallBacks: responsible for controlling the toolkit behaviour. With these 
      functions we attach application objects to core objects and reg server objects
      (AppCoreObjectCreatedEvHandler() and AppRegServerObjCreatedEvHandler()), handle state changes 
      (AppCoreObjStateChangeEvHandler() and AppRegServerObjStateChangedEvHandler()), and notify 
      about messages being sent to and received from the toolkit (AppCoreObjMsgReceivedEvHandler(),
      AppCoreObjMsgToSendEvHandler() and AppRegServerObjRespMsgToSendEvHandler()).
      Another important callback is implemented in order to decide if an incoming local register 
      request will be handled as a reg server object, this callback is 
      AppCoreObjHandleLocalRegEvHandler().

   c. Utility functions: function used for displaying the status of the application.




