Controlling the Aviosys IP Kamera 9000A and the IP9100A video server
(NB! - WORK IN PROGRESS!)

NEW (October 2010) I have just found (with thanks to Canvision) all the commands to control the camera from a web page

The 9000 seems to respond to these commands for a "i-Watcher Network Camera (PT300)"

http://www.canvision.net/support/pt300-cgi/CmdList.htm

I have a backup of these pages here


Objective
I want to place pictures from these web cameras into my own published webpages and perhaps process the pictures they serve in Visual Basic.

Method and where to find help
Aviosys give very little help -.http://www.aviosys.com/faq.htm seems to be all there is.
http://www.digidave.co.uk/ sold me my cameras but Aviosys don't seem to give them any information to pass on to customers. These notes were mainly from detective work via Google plus using Ethereal to look at the packets on the LAN when Visiongs demo V1.51beta program talked to the cameras (it lists the 9000 and 9100 and lets you control which of four ports the 9100 should serve). Tlcstream and Orite seem to be reselling the same cameras and have some information beyond that which Aviosys release (see below). If you look at the source of the webpages served by the cameras you get some clues on how the picture size is changed.

IP 9x00 file structure
(the 9000 camera and 9100 server seem to have the same software and use Linux servers)
I have not been able to get into the file structure with Telnet (can you?) but have so far found the following :-
(in the following text URL is the address of your camera, perhaps 192.168.0.5:1234 on your LAN or www.mysite.com:1234 on the Internet - :1234 is the port you assign to the camera, if nothing is assigned it is port 80 - the browser default)

http://URL/GetData.cgi
- is an internal program that serves the pictures and continually places a jpeg image in the camera's own memory at -
http://URL/Jpeg/CamImg*.jpg
- where * can be anything or nothing (Why the extra?)
On an empty web page place
<img src="http://URL/Jpeg/CamImg.jpg">
between the <body> and </body> tags and you see a snapshot - refresh the page to see another snapshot.


If you type http://URL/ChangeResolution.cgi?ResType=N into the address line of a browser and click go you can change the picture resolution.
N must be 0 to 7 and the resolutions (not all tested) seem to be :-
0 - 176*144
1 - 352*288
2 - 320*240
3 - 640*480
4 - 128*96
5 - 160*120
6 - 704*576
6 - 1280*960
7 - 1280*1024
The two 6 values are as in the Camera webpage source code - not tested as to what it should be.

To make the IP9100 switch channels between it's four inputs place http://192.168.0.7:1024/SetChannel.cgi?Channel=M in the address line of a browser and click go.
M must have a value from 0 to 3 (not 1 to 4)

Later test (18/3/2012) -

You can do this from a bash script if you use htget.bas (from the blassic site)

I am using Yoics firmware (may not need Yoics?)

blassic /home/graham/blassic/htget.bas http://192.168.0.7:8007/SetChannel.cgi?Channel=0 - ALL OFF
blassic /home/graham/blassic/htget.bas http://192.168.0.7:8007/SetChannel.cgi?Channel=1 - Channel 1 ON

then you need the binary value to set the channel pattern -
blassic /home/graham/blassic/htget.bas http://192.168.0.7:8007/SetChannel.cgi?Channel=3 - Channel 1 and 2 ON
blassic /home/graham/blassic/htget.bas http://192.168.0.7:8007/SetChannel.cgi?Channel=8 - Channel 4 only ON

The following cgi scripts are referred to in the camera webpage but I do not know what they do. Do you?
GetStatus.cgi
GetChannel.cgi
GetCapability.cgi


Third Party Support

Orite seem to offer the same camera as the IP9000A but in a different box and called IC301.
They use html code similar to below to show a refreshed image suitable for a PDA display
---------------------------------------------------------------------------------
<META HTTP-EQUIV="refresh" CONTENT="2;">
<img src="http://192.168.0.7:1024/Jpeg/CamImg.jpg">

---------------------------------------------------------------------------------

the 2 after CONTENT=" sets a 2 second refresh rate. The Orite page has no <body> tags and has more code but I don't understand why. Do you?

TLC sell the IP Camera 8000 in USA that seems to be identical to the IP Kamera 9000 and they offer some support including manuals written in real English. See their FAQ

They show how to pull a picture from a camera and serve it on a web page.
Place the following code between the <body> and </body> tags
---------------------------------------------------------------------------------
<script language="JavaScript" type="text/JavaScript">
function showCamera(o)
{
// Replace this url with your own ip camera url...
o.URL = "http://192.168.0.7:1024";
// Set your camera window's width here
o.CamWidth = 340;
}
</script>

<OBJECT onreadystatechange="showCamera(this);" CODEBASE="WinWebPush.cab#version=1,0,1,3" CLASSID="CLSID:7876E4A5-78B7-4020-B08F-C960A1ED54C9"><./OBJECT>
---------------------------------------------------------------------------------
Download the ActiveX Control WinWebPush.cab and place it in the webpage directory of your website. I suppose the web server must be a Windows box. It works on my Xitami server on my LAN but my Macintosh can't see the pictures - only th PC.


Other Resources
ZoneMinder users discussion of IP9000

If you have WebcamXP you can tell it to pull pictures from http://URL/Jpeg/CamImg.jpg and then serve the pictures on the webpage it generates as though from a local webcam.

See http://www.codingforums.com/printthread.php?t=44116



Can anyone visiting this page please help with the following?

I have two cameras plugged into two of the four inputs of an IP9100. I want to have a web page show the outputs of the two cameras.
I will have to choose port 0, then grab the image, then choose port 1, then grab the image, then repeat the process. The code above can do each bit but how to combine them and set up a sequence of actions? Can a javasript do this? (I do not know javascript)

I would like to do the same in Visual Basic. A VB program will pull in the images from the two cameras and then display them and also serve a web page with them. I might manage this one day but any help would be appreciated!In http://IPAddress: port/GetData.cgi?Status=1 what does Status=1 do?


Please email me here - if you have the same objective we might share information


January 2006

If you get here via Google you may not have seen the Yahoo group on the IP9100
http://groups.yahoo.com/group/9100/messages

R.O'Donnell has written a script that uses GetData.cgi?Status. It lets you see the input of each of the 4 video channels.
( It must run on a web server with PHP running) Download at -
http://www.irrelevant.com/cam/

Now what we want is to do the same and not require a dedicated server as well as the one in the Cam...

Linux experts required

:-)

Graham