*********************************************************************************
*                                                                               *
* 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 B2B 3PCC Readme File
                   ---------------------------------
General
-------
1. The simple B2B 3pcc is a sample code demonstrate the usage of
   RADVISION's SIP Server toolkit as 3pcc application.
   It show how to connect a 3pcc call between two parties and how
   the call can be transfered (blindly) to a third party.

2. The simple B2B 3pcc does not implement any states regarding to
   its transparent functionality, as a result, this sample will
   not handle received requests of any type.


Usage
-----
3. Initialize the application parameters such as the destination (to header) of 
   the call parties, indication whether or not to transfer the call when it 
   reaches the connected state and the Transferred-To destination (to header).
   The application parameters are initialized using the appConfig.txt file for
   avaliable all OS's except for VxWorks.
   VxWorks users need to modify the following definitions at SimpleB2B3pccAppTypes.h file:
   APP_FIRST_PARTY_TO
   APP_SECOND_PARTY_TO, 
   APP_TRANSFERRED_TO_PARTY_TO 
   APP_TRANSFER_CALL_ON_CONNECTED.

4. The SIP server is using APP_LOCAL_INTERFACE as its listening address. 
   Before running the sample you should update the definition of  
   APP_LOCAL_INTERFACE in SimpleB2B3pccTypes.h file.

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

6. The scenario of connecting a call between 2 parties by the B2B implement flow-4 of connecting a call as defined
   in draft-ietf-sipping-3pcc-04.txt.
   The flow include connecting a call to first UA with no media line at the sdp, 
   then connecting a call with INVITE without sdp to second UA, which should return in the 2xx it's sdp 
   and then the B2B update first UA regarding the media of second UA by sending him the second UA media 
   in a reInvite.
   In order to complete the scenario you should make sure that the UA are behaving corretly 
   (they should follow the basic rules of offer-answer model).

Notes
-----
6. General function description:
   a. General functions: The following functions are responsible for constructing 
      the Server Toolkit with required parameters (e.g. listening address and port, domain list)
	  (InitB2BServer()), registering call backs (RegisterCallBacks()).

   b. 3pcc related functions: functions that causing a starting of a 3pcc scenario,
      connect 3pcc call (B2BConnectCall()), transferring a call (TransferCall()) and
	  functions that manipulates an SDP message (UpdateSdpOrigin() and UpdateSdpVersion()).
   
   c. CallBacks: responsible for controlling the toolkit behaviour. With these 
      functions we handle state changes 
      (AppB2BStateChangeEvHandler(), AppB2BTransferStateChangeEvHandler(), 
       and notify about messages being sent to and received from the toolkit 
      (AppB2BMsgReceivedEv(), and AppB2BMsgToSendEv()).

   d. Utility functions: function used for displaying the status of the application.
      functions that used for converting SIP body to SDP message and vise versa.




