The Carrida Discovery Server

Revision:1.0
Date:2017-02-05
Contact:support@carrida-technologies.com
Copyright:2017-2018 Carrida Technologies GmbH, Ettlingen, Germany
Author:VC Support

Home page

Table of Contents

1   Introduction

Carrida Discovery is a tool to help you locate your Carrida cameras in a local network. The solution consists of a server and a client part. This document discusses the server part and is intended for developers.

2   Implementation of the Discovery Protocol

The discovery mechanism is implemented as a broadcast by a client program for search and the corresponding response for detection by servers, which runs on the Carrida camera. The server receives a multicast [1] [2] and responds to it by sending a single packet, which contains various pieces of information about the Carrida camera, its model number, and serial number.

3   Installation

To install the discovery server, it is recommended to use the pip package manager. With the provided wheel package, one can easily install it using the following command:

pip install discover-1.0-py3-none-any.whl

The server can now be started by typing discover-carrida on the command line.

Note

Note Sign The discovery service is pre-installed on all Carrida cameras from Carrida version 4.1.8 on.

4   Options

There are some settings of the server, which can be used to modify its operation. These options are available as command line switches during server invocation. To list all possible options, type discover-carrida --help:

# discover-carrida --help
usage: discover-carrida [-h] [-4 | -6] [-t N] [-i SECONDS] [-a IP] [-p PORT] [-v]

Carrida Camera Discovery Server

optional arguments:
  -h, --help            show this help message and exit
  -4, --ipv4            Use IPv4
  -6, --ipv6            Use IPv6
  -t N, --ttl N         Set Time-to-Live (default: 127)
  -i SECONDS, --timeout SECONDS
                        Set timeout for sockets (default: 100)
  -a IP, --address IP   Listen on specified multicast address (default:
                        239.192.13.230 or ff68::CADA)
  -p PORT, --port PORT  Listen on specified port (default: 4800)
  -v, --verbose         Verbose Output
  -l PORT, --listen PORT
                        Listen for update packages on specified port
                        (default: 4799)

The flags -4 or --ipv4 indicate that the server should listen for IPv4 addresses. Note that this is also the default when running the program without any flags set.

With the -6 or --ipv6 flags set, the server will listen for IPv6 addresses.

If needed, it is possible to specify another multicast address to listen on by passing the -a or --address flags with a valid IPv4 or IPv6 address.

If needed, it is also possible to change the port number from the default value of 4800 to any other valid port number in the range of 1-65535 by passing the -p or the --port flag.

The other port that can be defined is the port that is listening for updates. Here, the .dat update files are received and the updates are applyed to the camera.

To change the time-to-live [3] of the response package, set the -t or --ttl flag with an integer number between 1 (default) and 255.

The timeout for the server socket can be explicitly specified by setting the -i or --timeout flags.

5   References

[1]Administratively Scoped IP Multicast https://tools.ietf.org/html/rfc2365
[2]IPv6 Multicast Address https://tools.ietf.org/html/rfc2375
[3]Time to live (TTL) or hop limit determines through how many networks a package may travel. See https://tools.ietf.org/html/rfc791#page-14 and https://tools.ietf.org/html/rfc2460#section-8.2