CamRPC, a simple XML-RPC based webcam system

Overview

camrpc is simple XML-RPC server that provides two methods:

It's a simple way to update/manage several webcams using a web server (camrpc is coded in PHP) and uploading images from any client with XML-RPC capabilities.

Some example clients are provided in different programming languages supporting XML-RPC.

At last the package comes with an example PHP page to show the images from a web server using Javascript in the client side.

Required

Server

Client

Check INSTALL file form the package for installation and configuration details.

Security

camrpc server needs an user/password pair in order to satisfy any method call, but this pair is sent over the network in plain text. Think about usinh SSL if the secutity is a big concern for you.

It's a good idea to not use a valuable passwords for the users.

The server has a configurable length limit to avoid DoS attacks over the server trying to fill the disk space.

Clients

Clients allow to execute both methods: push and off.

webcam.sh is included as example of usage of python client with a simple grabber (streamer, from xawtv package). You must edit it to setup the server URL, the user and the password. Run it in background with & and terminate with: kill -SIGTERM `cat webcam.sh.pid`. The shell script will set the camera offline at exit.

Included clients

Examples:

Push:
	$ ./camrpcc -p image.jpg -u user -P password -U http://server.com/RPC2/

Offline:
	$ ./camrpcc -o -u user -P password -U http://server.com/RPC2/

Python: camrpcc.py

usage:
	
	camrpcc -h
	camrpcc -p FILE [-u,-U,-P]
	camrpcc -o [-u,-U,-P]

-h,           This help
--help

-q,           Be quiet
--quiet

-p FILE,      Push FILE into the server
--push FILE

-o,           Mark a cam as offline
--offline

-u USER,      Use USER as username
--user USER

-U URL,       URL for the xml-rpc server
--URL URL

-P PASSWD,    User PASSWD as password
--Password PASSWD

NOTE: camrpcc.py resolves the MIME type automatically.

Perl: camrpcc.pl

usage:
	camrpcc -h
	camrpcc -p FILE [-u,-U,-P]
	camrpcc -o [-u,-U,-P]
		
-h		This help
-q		Be quiet
-p FILE		Push FILE into the server
-o		Mark a cam as offline
-u USER		Use USER as username
-U URL		URL for the xml-rpc server
-P PASSWD	User PASSWD as password

Perl client needs Frontier::RPC, MIME::Base64 and MIME::Types installed in your system.

About use and distribution

This package is Free Software (free as in free speech, even I distribute it as free beer).

Please read and understand the LICENSE file before downloading this software.

Download

IMPORTANT: version 1.0.2 updates the XML-RPC library (included in the camrpc distribution) because a security problem.

Current version is 1.0.2, you can check the ChangeLog from previous versions.

You can get the newest version of this package at http://usebox.net/jjm/camrpc/.


Copyright © 2004 Juan J. Martínez <jjm _at_ usebox *dot* net>. All rights reserved.
Last Updated: 2005-07-01