Skip to content

Quick Start

Ondřej Perutka edited this page Feb 11, 2016 · 14 revisions

So you want to start with integration of Arrow Client into your device or you just want to play with it? Good! This is the document you should read. In this little how to, we go briefly through compilation, setting up your environment, application usage and the pairing procedure. In the end, you will know what Arrow Client really is and how it works.

Compilation

In order to make it simple, we will go only through direct compilation here. If you need to set up a cross-compiler, take a look at this page. Now, let's get started! Arrow Client should be able to run in any Linux environment. Currently, it is tested only on Linux x86, x86_64 and ARM architectures. It is written mostly in Rust and there is also a small part written in C. So first of all, you will need a copy of Rust compiler and gcc. Installation is pretty simple, you can get your copy of Rust compiler here:

https://www.rust-lang.org/downloads.html

In case of gcc, it is enough to install the package provided with your distribution. For a Debian-based distribution, run:

sudo apt-get install gcc

Fedora users will need to use this command:

sudo dnf install gcc

Assuming you have gcc and the Rust compiler installed, you will also need to install some dependencies. Arrow Client has several dependencies but don't worry. You will have to install only one. The others are downloaded automatically. Depending on you distribution, you will have to install OpenSSL development files. In case of Ubuntu, Debian, Raspbian and possibly other Debian-based distributions, you will need a package called libssl-dev:

sudo apt-get install libssl-dev

In case of Fedora, the package name is openssl-devel:

sudo dnf install openssl-devel

This is it! We have everything we need to compile Arrow Client. We just need to clone this repository and compile the client:

git clone https://github.com/angelcam/arrow-client.git arrow-client
cd arrow-client
cargo build

The resulting binary is called arrow-client and you will find it in the target/debug/ sub-directory.

Network scanning

If you want to use also the network scanning feature, you will have to install one more dependency and compile the client with this feature enabled. Users of Debian-based distributions can use this command:

sudo apt-get install libpcap-dev

Fedora users will use:

sudo dnf install libpcap-devel

The compilation command changes to:

cargo build --features "discovery"

Environment

Arrow Client requires access to /etc/arrow directory to store its configuration and it also needs a file containing RTSP paths in case the network scanning is enabled. The file must be in /etc/arrow/rtsp-paths. You can use the rtsp-paths file from this repository.

sudo mkdir /etc/arrow
sudo cp rtsp-paths /etc/arrow/rtsp-paths

Application usage

First of all, you will need an RTSP server with H.264 video stream and RTP over TCP support. Let us suppose the stream is accessible at:

rtsp://localhost/webcam.264

Our Arrow Servers are accessible at:

arr-rs.angelcam.com:8900

This is the address your client should connect to. You will also need a CA certificate to verify server's identity. Currently, we use a self signed certificate, you can find it in this repository. The certificate will be later replaced by a proper EV certificate, so you should also tell the client where it can find the CA certificates in your system. The application requires root privileges in order to access your network interfaces. All logs can be found in your syslog. Assuming you are logged in as root and the arrow-client is in your PATH, you can use a command like this:

arrow-client arr-rs.angelcam.com:8900 \
    -c /usr/share/ca-certificates \
    -c ca.pem \
    -r "rtsp://localhost/webcam.264"

For more options, start the application without any arguments.

Pairing procedure

Assuming you have your client running and it knows about at least one IP camera with RTSP and H.264 support, you can proceed to the pairing procedure. This procedure is designed to verify you as an owner of the Arrow Client and it lets you add all IP cameras visible to the client under your Angelcam account. For security reasons, it is possible to initiate the pairing procedure only within the first 20 minutes after the application is started, so it is a good idea to restart the client first.

When you are ready, go to the this web page and enter MAC address of the device running the Arrow Client (the client uses MAC address of the first configured ethernet/wlan interface):


Entering MAC address


In case the IP camera is password protected, you will see a form allowing you to enter the credentials.


Entering credentials


After entering them, you should be able to see the stream from the camera. Proceed by clicking on the checkbox under the stream.


Preview stream


A pop-up window with QR code and the video stream on its right will appear.


QR code pop-up


Point the camera to the QR code and wait until it shows "success". The video might be delayed a little bit. If everything goes right, you will be able to add the camera under your Angelcam account.

Clone this wiki locally