--------------------------------------------------------------------------------
Building the DIAL server
--------------------------------------------------------------------------------
1) Define the TARGET environment variable to point to the CC compiler prefix
   for your target platform. 

   For example, using the NRDP-3.2 x86 desktop toolchain, the CC is located at: 
   /usr/local/i686-netflix-linux-gnu-3.2/bin/i686-netflix-linux-gnu-gcc

2) Run make, passing in your TARGET value. 

   For example:  
   TARGET=/usr/local/i686-netflix-linux-gnu-3.2/bin/i686-netflix-linux-gnu- make

--------------------------------------------------------------------------------
Running the DIAL server
--------------------------------------------------------------------------------
The DIAL server should be started as a service, after the platform's networking
has been initialized, and it should remain running at all times (a daemon 
process in the system).

Sample SysV init scripts are available on the Netflix NRD Partner portal. 

--------------------------------------------------------------------------------
Building the DIAL client
--------------------------------------------------------------------------------
The DIAL client is a standalone C++ console application you can use to test 
a running DIAL server implementation on your device. Unlike the server, which
is built for, and meant to run on your device, the client is meant to run on 
your desktop (development) machine. 

The DIAL client uses CURL to send HTTP REST commands to the DIAL server, so to
build the client, you need to ensure that the CURL dependecies are 
defined properly. If you are a Netflix NRD partner and have the NRD Platform
desktop toolchain installed, it includes libcurl. To build against that version,
use the following build command:

TARGET=/usr/local/i686-netflix-linux-gnu-3.2/bin/i686-netflix-linux-gnu- \
LDFLAGS="-L/usr/local/i686-netflix-linux-gnu-3.2/netflix/lib \
-Wl,-rpath,/usr/local/i686-netflix-linux-gnu-3.2/netflix/lib" \
INCLUDES=-I/usr/local/i686-netflix-linux-gnu-3.2/netflix/include \
make

Alternatively, you can build against a different, current version of libcurl. 
Adjust the INCLUDES and LDFLAGS definitions to point to your actual libcurl
header and library locations. In most cases, you can omit the TARGET define. 

Note: the -rpath argument passed to LDFLAGS specifies the libcurl location
to the runtime linker. 

--------------------------------------------------------------------------------
Running the DIAL client in interactive (menu) mode
--------------------------------------------------------------------------------
1) The DIAL client application must be running in the same subnet as the 
   DIAL server.

2) Start the client: ./dialclient (or ./dialclient -m)  
   The on-screen menu will list all available actions.

--------------------------------------------------------------------------------
Running the DIAL client in conformance test (non-interactive) mode
--------------------------------------------------------------------------------
1) The DIAL client application must be running in the same subnet as the 
   DIAL server.

2) Start the client: 
   ./dialclient -i [input-file] [-o output-file] [-a server-IP-addr]   

   In script-driven mode, the client reads in an input-file, executes the
   instructions in the input-file, and generates a 
   report. The default file locations (which can be overridden) are: 
      ./dialclient_input.txt 
      ./report.html

--------------------------------------------------------------------------------
DIAL client Usage
--------------------------------------------------------------------------------
When running the DIAL client, you have the following options
usage: dialclient <option>

Option Parameter          Description
 -h     none               Usage menu
 -m     none               Use menu
 -o     filename           Reporter output file (./report.html)
 -i     filename           Input File (./dialclient_input.txt)
 -a     ip_address         IP addr of DIAL server (used for conformance testing)

If you do not provide an ip_address and multiple servers are discovered, the 
client will prompt you to select a server.
