*********************************************************************************
*                                                                               *
* 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 Registrar Readme File
                      ----------------------------
General
-------
1. The simple registrar is a sample code designed to show how to use 
   RADVISION's SIP Server Toolkit in order to build a simple registrar.

2. The simple registrar implement usage of advanced features like authenticating, 
   maintaining a location database. 
   
3. The simple registrar implements only the registrar logical function and does not 
   handle (i.e. proxy or redirect) other types of requests.

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 SimpleRegistrarTypes.h file.

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

6. After the server has been started it will wait for incoming register requests on 
   port 5060.
   a. If Authenticating was selected in the start menu, the registrar will check the 
      authenticating credentials of the message. If the credentials are wrong or 
      insufficient, the registrar will reject the request with 401 response, 
      that includes the data needed to contsruct credentials.
   b. If Authenticating was not selected, or if the credentials were sufficient, the 
      registrar will accept the registration request and update its database.
7. To Authenticate against the simple registrar, use the following parameters:
   a. User: "User"
   b. Password: "Password"
   c. Realm: "radvision.com"
   d. The algorithm used for authentication is MD5

Notes
-----
8. General function description:
   a. General functions: functions required to operate the proxy registration 
      mechanism. These functions are responsible for constructing the toolkit with
      required parameters (e.g. authentication and interfaces list) (RegistrarInit()), registering 
      call backs (RegisterCallBacks()), and initiating the components for security and 
      location database (AppSecurityInit(), 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.




