This is designed to be a fairly comprehensive set of API documentation for SerComm IP Cameras.
These API calls have been tested on the following cameras:
- RC8221 - a basic internal camera.
- RC8221D - a modified version of the above camera.
- OC821D - an external camera with weatherproof features.
- RC8230 - a pan/tilt camera.
- iCamera1 - a POE external camera.
- RC8025b-ADT - A version of RC8221 with similar functionality for ADT Pulse
Sercomm supplies cameras to a number of partners - each with a custom firmware. It is possible your camera does not have access to all these API calls.
Your camera may have been supplied with a username and password. If you do not know what these credentials are, you can reset the camera to its defaults.
- Unplug the power from the camera.
- Plug in a network cable and connect it to your network.
- Hold a pin/paperclip in the "reset" hole on the back of the device.
- With the pin still held in, connect the power to the camera.
- Keep the pin in for 10 seconds, then release it.
- (You may need to power cycle the camera again without holding in the reset button if it doesn't connect to the network).
- Visit the IP address of the camera.
- Click on "Administration"
- The default username is
administrator. There is no password. - You will now be able to create a new admin user with a strong password.
- Note: you will need to log in quickly, or ensure that the camera cannot connect to the Internet. Some cameras will "phone home" and reconfigure themselves with the vendor's username & password.
The API is RESTful - although it isn't very communicative.
All API calls are GET except where noted.
Responses are in plain text except where noted.
Some cameras don't show a menu by default.
- This command is used to activate the administration menu on vendor modified firmwares such as Comcast Xfinity, Cox Homelife and ADT Pulse.
/adm/enable_ui.cgi- Response
OK
Many cameras have a "hidden" 720p resolution. This can be activated for video and still images.
-
Set Video to 720p
/adm/set_group.cgi?group=H264&resolution=4- Response
OK
- Response
-
Set JPG to 720p
/adm/set_group.cgi?group=JPEG&resolution=4- Response
OK
- Response
- To get a JPEG of what the camera is currently seeing.
/img/snapshot.cgi- Response is a JPEG encoded image.
- Parameters
- Set the resolution of the image with
size=11280*720size=2320*240size=3640*480
- Set the quality of the image. The higher the JPEG quality, the larger the file.
quality=1JPEG quality 85quality=2JPEG quality 70quality=3JPEG quality 55quality=4JPEG quality 40quality=5JPEG quality 25
- Set the resolution of the image with
For cameras which have moveable lenses, it is possible to control the direction the camera is facing.
- The pan/tilt can be controlled in to different ways.
/pt/ptctrl.cgi?mv=$Direction,$Distance
Where $Direction can be Up, Down, Left, Right.
And $Distance can be any positive integer.
The maximum U and D value is 64.
The maximum L and R value is ??.
For example:
- Left
/pt/ptctrl.cgi?mv=L,10
- Right
/pt/ptctrl.cgi?mv=R,10
- Up
/pt/ptctrl.cgi?mv=U,10
- Down
/pt/ptctrl.cgi?mv=D,10
Diagonal moves can also be made:
- Up Left
/pt/ptctrl.cgi?mv=UL,10
- Up Right
/pt/ptctrl.cgi?mv=UR,10
- Down Left
/pt/ptctrl.cgi?mv=DL,10
- Down Right
/pt/ptctrl.cgi?mv=DR,10
There are preset locations which can be accessed
- Motion Detection (Unsure TODO!)
/pt/ptctrl.cgi?preset=move,100
- Camera Patrol (Unsure TODO!)
/pt/ptctrl.cgi?preset=move,101
- Pan right, then left (once)
/pt/ptctrl.cgi?preset=move,102
- Move to home position
/pt/ptctrl.cgi?preset=move,103
- Calibration (Move the full range of motion)
/pt/ptctrl.cgi?preset=move,104
There is no response sent in reply to these commands - although you should be able to see the camera move.
Arming a camera allows you to create triggers for specific events. For example, send an email on motion detection.
- Check arming status
/adm/get_group.cgi?group=EVENT- Response
[EVENT]
event_trigger=0
event_schedule=1
event_define1=
event_define2=
event_define3=
event_define4=
event_define5=
event_define6=
event_define7=
event_define8=
event_define9=
event_define10=
event_interval=0
event_mt=email:0;ftpu:1;httpn:0;httppost:0;smbc:0
event_attach=mp4,1,5,10
event_audio=email:0;ftpu:1;httpn:0;httppost:0;smbc:0
event_httpc=email:0;ftpu:0;httpn:0;httppost:0;smbc:0- If
event_trigger=0the camera is not armed. - If
event_trigger=1the camera is armed - Arm
/adm/set_group.cgi?group=EVENT&event_trigger=1* ResponseOK
- Disarm
/adm/set_group.cgi?group=EVENT&event_trigger=0- Response
OK
- Response
There are several ways you can get video and audio out of the cameras.
- Motion JPEG is a simple format for viewing video (no audio) in your browser.
/img/video.mjpeg
- Video
*
/img/media.sdp
The following can be accessed via the rtsp:// protocol.
- Video and Audio
/img/media.sav
- Video
/img/video.sav
- Audio
/img/audio.sav
-
Should you want to view the video in Flash
/img/media.swf/img/media.flv
-
With a GUI
/img/sc_flvplayer.swf
This is really tricky!
Some cameras can support up to 4 areas of motion detection. For example, you might have a camera pointed at your door, but are only interested in seeing when the handle or the letter box moves.
No matter what resolution your camera is, the motion detection is defined on a 640*480 grid with the top left corner being position 0,0 and the bottom right being 639,479.
640
+-------------------+
|(0,0) |
| |
| |480
| |
| |
+-------------------+
(639,479)
- Get the currently configured motion detection settings.
/adm/get_group.cgi?group=MOTION- Response:
[MOTION]
md_mode=1
md_switch1=1
md_switch2=0
md_switch3=0
md_switch4=0
md_name1=Window 1
md_name2=Window 2
md_name3=Window 3
md_name4=Window 4
md_window1=0,0,639,479
md_window2=0,0,160,120
md_window3=0,0,160,120
md_window4=0,0,160,120
md_threshold1=80
md_threshold2=127
md_threshold3=127
md_threshold4=127
md_sensitivity1=6
md_sensitivity2=6
md_sensitivity3=6
md_sensitivity4=6
md_update_freq1=90
md_update_freq2=90
md_update_freq3=90
md_update_freq4=90
md_point=0,0
As you can see, there are 4 windows, each with their own switch, name, co-ordinates, threshold, sensitivity, and update frequency.
It may help to think of them being grouped like this:
md_switch1=1
md_name1=Window 1
md_window1=0,0,639,479
md_threshold1=80
md_sensitivity1=6
md_update_freq1=90
md_switch2=0
md_name2=Window 2
md_window2=0,0,160,120
md_threshold2=127
md_sensitivity2=6
md_update_freq2=90
- Each parameter can be retrieved individually
/adm/get_group.cgi?group=MOTION.md_name1- Response
[MOTION]
md_name1=Window 1
-
Each parameter can be set using
/adm/set_group.cgi?group=MOTION&- e.g.
/adm/set_group.cgi?group=MOTION&md_window2=30,60,100,120- Response
OK
- Response
-
Properties which can be set using
/adm/set_group.cgi?group=MOTION&$property=$value.md_modeMotion detection mode0Off1On (Default)
md_pointThe position of motion using PT mode. The format isX,Y- X's range is
-63to63 - X's range is
-36to28
- X's range is
md_switch[1-4]Set whether a motion detection window is active.0Off1On
md_name[1-4]Set the name of a motion detection window.- Maximum 12 ASCII characters.
md_window[1-4]Set the co-ordinates of the motion detection window. No matter the resolution of the camera, the area is considered to be 640*480 is active.- The format is X0,Y0,X1,Y1.
- X's range is
0to639 - Y's range is
0to479
- X's range is
md_threshold[1-4]Set the threshold(???) for the motion detection window.- Range is
0to255
- Range is
You can set the cameras to perform an action when motion is detected.
- Get the current configuration
/adm/get_group.cgi?group=HTTP_NOTIFY- Response
[HTTP_NOTIFY]
http_notify=1
http_url=
http_proxy=
http_proxy_no=80
http_method=1
http_user=
http_password=
proxy_user=
proxy_password=
event_data_flag=0
- Each parameter can be retrieved individually
/adm/get_group.cgi?group=HTTP_NOTIFY.http_notify- Response
[HTTP_NOTIFY]
http_notify=1
- Each parameter can be set using
/adm/set_group.cgi?group=HTTP_NOTIFY&- e.g.
/adm/set_group.cgi?group=HTTP_NOTIFY&http_url=http://example.com- Response
OK
- Response
- To see information about the camera
/util/query.cgi- Response
hostname=Camera
description=
defname=SC92FFF7
mpeg4_resolution=640
mjpeg_resolution=1280
h264_resolution=1280
h264_resolution2=320
h264_resolution3=320
mic_in=on
speaker_out=off
ptctrl=on
wlled=off
irled=off
serial=off
resolutions=1280x720,640*480,320*240,160*120
mac=00:0e:8f:92:ff:f7
privacy_button=off
pir_sensor=off
wps_pin_code=1234567
ioctrl=off
company_name=Xanboo
model_number=RC8230
wireless=on
sw_pppoe=yes- For extra information
/util/query.cgi?extension=yes- Response
fw_ver=V1.0.15R00
ip_addr=192.168.0.42
netmask=255.255.255.0
gateway=192.168.0.1
timezone=26
current_time=10/13/2015 08:56:42
http_port=80
rtsp_port=554
https_port=443- System information
/adm/sysinfo.cgi- Response
Firmware Version: V1.0.15
Serial Number:12345
Firmware Release Date: Mar 01,2013
- To see what features of the camera the current user has access to.
/img/query.cgi- Response
mic_in=on
speaker_out=on
ptctrl=on
ioctrl=off
- Some cameras have an InfraRed filter to enable them to see in the darkness.
/io/query_filter.cgi- Response
filter=0filter is off. - Response
filter=1filter is on.
- Response
- To get the date and time information
/adm/date.cgi?action=get- Response
timezone=26
year=2015
month=10
day=13
hour=08
minute=19
second=57
- To set the date and time information
/adm/date.cgi?action=set&- Parameters
yearmonthdaysecond
- Response
OK
- Parameters
-
Download the camera's configuration settings
/adm/admcfg.cfg- Response is a Base64 encoded representation of the configuration file. According to the specification:
There is the hidden check sum data inside the configuration content to validate the data, Because we use the dword-aligned checksum algorithm, so we will ignore the last data misaligned by dword.
- The Sercomm cameras have a custom BASE64 table:
ACEGIKMOQSUWYBDFHJLNPRTVXZacegikmoqsuwybdfhjlnprtvxz0246813579=+/
- For comparison, a standard table is:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
-
Upload a configuration file. Note this is an HTTP POST
/adm/upload.cgi
- Get the event log of the camera
/adm/log.cgi- Response:
2015-10-13 07:12:33 DHCP: Lease renewal successfully.
2015-10-13 07:11:28 WATCHDOG: Haven't received HTTP requests for 1200 seconds, reconnecting WIFI.
2015-10-13 06:55:12 NTP: Synchronization OK.
2015-10-13 06:53:47 DHCP: Lease renewal successfully.
2015-10-13 06:51:11 Network: Wireless activated.- To see all available WiFi networks
/adm/site_survey.cgi- Response is in XML
<?xml version="1.0" encoding="utf-8"?>
<SiteList>
<Site>
<SSID>MyWiFiNetwork</SSID>
<BSSID>34:44:11:A9:C2:D4</BSSID>
<Mode>Infrastructure</Mode>
<Security>WPA2-PSK</Security>
<AUTH>SharedKey</AUTH>
<Encryption>AES</Encryption>
<Channel>1</Channel>
<Signal>100</Signal>
<WPS>Yes</WPS>
</Site>
...
- See the camera's WiFi status
/adm/wireless_status.cgi- Response:
signal_strength=100
signal_strength-A=0
signal_strength-B=0
essid=MyWiFiNetwork
domain=Europe
channel=11
bssid=C1:15:A2:01:1D:11
wps_pin_code=123456
The cameras can upload images and videos to local network shares.
- LAN survey for SMB/CIFS shares
/adm/smb_survey.cgi?- Response in XML
<?xml version="1.0" encoding="utf-8"?>
<List>
<WorkGroup>
<Name>WORKGROUP</Name>
<List>
<Server>
<Name>MYSERVER</Name>
<Comment>Samba 4.1.6-Ubuntu</Comment>
</Server>
</List>
</WorkGroup>
</List>
- Optional parameters
timeout=value in seconds between 5 - 120. Default is 30. Camera will stop searching after this time.action=stopforce the camera to stop searching.
Sercomm's configuration API uses the concept of "groups".
-
For example, you can get all the "System" group properties by calling:
/adm/get_group.cgi?group=SYSTEM
-
Each parameter can be retrieved individually
/adm/get_group.cgi?group=SYSTEM.ntp_server
-
You can set a group's properties by calling:
/adm/set_group.cgi?group=SYSTEM&$property=$value- e.g.
/adm/set_group.cgi?group=SYSTEM&ntp_server=0.uk.pool.ntp.org
- e.g.
- Note some of the properties are read only.
-
You can see all the possible groups by calling
/adm/get_group.cgi- Returns:
[Manufacture]
[SYSTEM]
[LOG]
[NETWORK]
[WIRELESS]
[DDNS]
[HTTP]
[RTSP_RTP]
[UPNP]
[EMAIL]
[FTP]
[SMBC]
[VIDEO]
[H264]
[MPEG4]
[JPEG]
[STREAMS]
[AUDIO]
[USER]
[IP_FILTER]
[MOTION]
[IO]
[EVENT]
[QOS]
[MCWS]
[HTTP_NOTIFY]
[HTTP_EVENT]
[PPPOE]
[BONJOUR]
[SDCARD]
[PTZ]
Note: The groups available will depend on which camera you have. For example, not all cameras have an SD Card slot.
- The default manufacturer information:
/adm/get_group.cgi?group=Manufacture- Response:
[Manufacture]
def_name=
default_ip=192.168.0.99/255.255.255.0
max_user=20
summer_chg=1
conf_status=1
- All the "System" group properties by calling:
/adm/get_group.cgi?group=SYSTEM- Response:
[SYSTEM]
cfg_ver=RC8230_XANBOO_0001
host_name=MyCamera
comment=
time_format=24
date_format=1
time_zone=26
daylight_saving=1
ntp_mode=1
ntp_server=clock.via.net
ntp_date=0
ntp_hour=6
ntp_min=1
led_mode=1
reboot_time=2015-10-13 06:46:54
boot_up_time=2015-10-13 11:55:22
reboot_reason=Reboot by Internal (Reason: hydra is gone)
wd_timer_wifi=20
wd_timer_idled=300
wd_timer_acted=180
wd_reboot_num=347
wd_reboot_time=1444713006;1444585286
- Properties which can be set using
/adm/set_group.cgi?group=SYSTEM&$property=$value.host_nameCamera's name. Maximum of 16 characters, 0-9, A-Z, a-z, space.commentCamera's description. Maximum of 32 ASCII characters.time_formatValid values are24-hour12-hour
date_formatValid values are0YYYY-MM-DD1MM/DD/YYYY2DD/MM/YYYY
time_zoneValid values are 0-75.daylight_savingValid values are0Off1On
ntp_modeSynchronise with an NTP server. Valid values are0Off1On
ntp_serverWhich NTP server to use. Set using a domain name of up to 64 characters.led_modeKeep the camera's information LED on. Valid values are0Off1On
- Get all log configuration
/adm/get_group.cgi?group=LOG- Response:
[LOG]
log_mode=1
log_level=3
syslog_mode=0
syslog_server=
syslog_port=514
im_mode=0
im_server=
im_account=
im_password=
im_sendto=
im_message=
ftplog_mode=1
smtplog_mode=1
systemlog_mode=1
imlog_mode=1
- Properties which can be set using
/adm/set_group.cgi?group=LOG&$property=$value.syslog_modeValid values are0Off1On
syslog_serverWhich Syslog server to use. Set using a domain name of up to 64 characters.- Others ???
- Get all Network configuration
/adm/get_group.cgi?group=NETWORK- Response:
[NETWORK]
ip_addr=192.168.0.42
netmask=255.255.255.0
gateway=192.168.0.1
dhcp=1
dns_type=1
dns_server1=192.168.0.1
dns_server2=8.8.8.8
wins_type=0
wins_ip=
- Properties which can be set using
/adm/set_group.cgi?group=NETWORK&$property=$value.ip_addrCamera's IP address.netmaskCamera's netmask as IP address.gatewayIP of the network gateway.dhcpValid values are0Fixed IP Address1Use DHCP
dns_typeValid values are0DNS servers assigned by DHCP1Manually assigned DNS servers
dns_server1anddns_server2IP addresses of the DNS servers- Others ???
- Get all WiFi configurations
/adm/get_group.cgi?group=WIRELESS- Response:
[WIRELESS]
wlan_type=1
wlan_essid=MyNetwork
wlan_channel=0
wlan_domain=5
wlan_security=2
wep_authtype=2
wep_mode=1
wep_index=1
wep_ascii=
wep_kep1=
wep_kep2=
wep_kep3=
wep_kep4=
wpa_ascii=
wmm=0
- Properties which can be set using
/adm/set_group.cgi?group=WIRELESS&$property=$value.wlan_typeValid values are0Ad hoc1Infrastructurewlan_essidThe SSID to connect to. Maximum of 32 ASCII characters. Case sensitive.wlan_channelWhich WiFi channel number to use.0auto1-13a specific channel.
wlan_domainDifferent countries have different WiFi channels1- Africa2- Asia3- Australia4- Canada5- Europe6- Spain7- France8- Israel9- Japan10- Mexico11- South American12- USA
wlan_securityWhich wireless security mode0- None1- WEP2- WPA/WPA2-PSK3- WPA PSK TKIP4- WPA PSK AES5- WPA2 PSK TKIP6- WPA2 PSK AES7- WPA enterprise8- WPA PSK9- WPA2 PSK
wpa_asciiSet the password for WPA. Must be between 8 and 63 characters.connection_modeWhich wireless mode to boot up to.0- If a connection is available over the Ethernet interface, the device uses Ethernet; otherwise, it uses wireless.1- The device use wireless whether a connection is available over the Ethernet or not.2- The device enters WPS PBC mode over wireless whether a connection is available over the Ethernet or not.3- The device enters WPS PIN code mode over wireless whether a connection is available over the Ethernet or not.
wmmUse WMM mode. Valid values are0Off1On
wpa_ep_auth_typeSet WPA/WPA2 Enterprise authentication type.1- EAP-TLS2- EAP-TTLS
wpa_tls_userSet EAP-TLS user name. Maximum of 64 ASCII characters.wpa_tls_priv_keypassSet EAP-TLS private key password. Maximum of 64 ASCII characters.wpa_ttls_auth_typeSet EAP-TTLS authentication type.1MSCHAP2MSCHAPv23PAP4EAP-MD55EAP-GTC
wpa_ttls_userSet EAP-TTLS User name. Maximum of 64 ASCII characters.wpa_ttls_passSet EAP-TTLS user password. Maximum of 64 ASCII characters.wpa_ttls_anony_nameSet EAP-TTLS/EAP-TLS anonymous name. Maximum of 64 ASCII characters.
- Get all Dynamic DNS configuration
/adm/get_group.cgi?group=DDNS- Response:
[DDNS]
ddns_mode=0
ddns_service=
ddns_account=
ddns_password=
ddns_host_name=
ddns_hour=12
ddns_minute=
ddns_update_unit=3
ddns_update_period=10
TODO! Many of the DDNS providers no longer work.
- Get all HTTP configuration
/adm/get_group.cgi?group=HTTP- Response:
[HTTP]
http_mode=1
http_port2=1
http_port2_num=8080
https_mode=1
ssport_enable=0
ssport_number=1025
- Get all RTSP configuration
/adm/get_group.cgi?group=RTSP_RTP- Response:
[RTSP_RTP]
rtsp_port=554
rtp_port=5000
rtp_size=1400
mcast_enable=0
mcast_video_enable=0
mcast_video_addr=224.2.0.1
mcast_video_port=2240
mcast_h264_enable=0
mcast_h264_addr=224.2.0.1
mcast_h264_port=2242
mcast_audio_enable=0
mcast_audio_addr=224.2.0.1
mcast_audio_port=2244
mcast_hops=16
- Properties which can be set using
/adm/set_group.cgi?group=RTSP_RTP&$property=$valuertsp_portRTSP port number. Valid values are5541024to65535
rtp_portRTP port number. Valid values1024to65535- Default of
5000
rtp_sizeRTP packet size. Valid values400to1400
mcast_enableRTP/RTSP multicast mode. Valid values are *0Off (Default) *1Onmcast_video_addrVideo multicast IP address.mcast_video_portVideo port number.1024to65534Even numbers only.
mcast_audio_addrAudio multicast IP address.mcast_audio_portAudio port number.1024to65534Even numbers only.
mcast_hopsMulticast time to live value.1to255
- Get all UPNP configuration
/adm/get_group.cgi?group=UPNP- Response:
[UPNP]
upnp_mode=0
upnp_traversal=
upnp_camera=
- Properties which can be set using
/adm/set_group.cgi?group=UPNP&$property=$valueupnp_mode0Off (Default)1On
- NOTE: On an RC8025b-ADT, this is the only way to enable/disable UPNP. Setting it from the webpage GUI results in an
"Invalid Group"error and the change is not saved.
- Get all Email configuration
/adm/get_group.cgi?group=EMAIL- Response:
[EMAIL]
smtp_enable=1
smtp_server=
pop_server=
smtp_port=465
smtp_auth=1
smtp_account=
smtp_password=
smtp2_enable=0
smtp2_server=
pop2_server=
smtp2_port=25
smtp2_auth=0
smtp2_account=
smtp2_password=
from_addr=
from_addr2=
to_addr1=
to_addr2=
to_addr3=
send_email=1
email_att=7
subject=
smtp_serv_flag=1
smtp2_serv_flag=1
Note: The response will never display your passwords.
TODO!
- Get all FTP settings
/adm/get_group.cgi?group=FTP- Response:
[FTP]
ftp1=1
ftp1_server=
ftp1_account=
ftp1_passwd=
ftp1_path=
ftp1_passive=1
ftp1_port=21
ftp2=0
ftp2_server=
ftp2_account=
ftp2_passwd=
ftp2_path=
ftp2_passive=0
ftp2_port=21
Note: The response will never display your passwords.
- Get all Samab configuration
/adm/get_group.cgi?group=SMBC- Response:
[SMBC]
smbc_enable=1
smbc_server=
smbc_path=
smbc_account=
smbc_passwd=
smbc_rec_enable=0
smbc_rec_file_ctrl=1
smbc_rec_filesize=0
smbc_rec_duration=15
smbc_rec_streaming=1
smbc_rec_mode=1
smbc_rec_server=
smbc_rec_path=
smbc_rec_account=
smbc_rec_passwd=
smbc_rec_filename_prefix=
smbc_rec_behavior=0,0,1
smbc_rec_schedule=
smbc_rec_bymd_fn_prefix=
smbc_rec_bymd_len=
TODO!
- Get all Video configuration
/adm/get_group.cgi?group=VIDEO- Response:
[VIDEO]
video_schedule=0
video_define1=
video_define2=
video_define3=
video_define4=
video_define5=
video_define6=
video_define7=
video_define8=
video_define9=
video_define10=
time_stamp=1
text_overlay=0
text=
power_line=50
color=0
exposure=4
sharpness=4
flip=0
mirror=0
hue=4
saturation=4
contrast=4
default_channel=1
mask_window1=0
mask_window2=0
mask_window3=0
mask_window4=0
mask_color1=888888
mask_color2=888888
mask_color3=888888
mask_color4=888888
mask_position1=160,180,480,300
mask_position2=160,180,480,300
mask_position3=160,180,480,300
mask_position4=160,180,480,300
night_mode=0
- Properties which can be set using
/adm/get_group.cgi?group=VIDEOtime_stampDisplay a date / timestamp on the images0Off1On
text_overlayDisplay a line of text on the images0Off1On
textThe text to display- Maximum of 20 ASCII characters
power_lineAdjust the picture to reduce flicker from lights. This should be set the to Hz of your electrical grid.50UK / Europe60USA
colorConfigure the colour balance of the picture0Auto1Indoors2White lighting3Yellow lighting4Outdoor5Black and White
exposurebrightness of the image. Range of1to71Darkest7Brightest
sharpnessSharpness of the image. Range of1to71Least sharp7Most sharp
flipVeritcally flip the images - useful if the camera has been installed upside down.0Off1On
mirrorHorizontal flip the images0Off1On
time_stampDisplay a date / timestamp on the images0Off1On
TODO!
- Get all H264 Video Codec configuration
/adm/get_group.cgi?group=H264- Response:
[H264]
mode=1
resolution=4
quality_type=1
quality_level=5
bit_rate=768
frame_rate=25
gov_length=25
sp_uri=
mode2=1
resolution2=2
quality_type2=0
quality_level2=3
bit_rate2=256
frame_rate2=10
gov_length2=10
sp_uri2=
mode3=1
resolution3=2
quality_type3=0
quality_level3=3
bit_rate3=64
frame_rate3=10
gov_length3=10
sp_uri3=
bandwidth=0
profile=66
cropping=0
bandwidth2=0
profile2=66
cropping2=0
bandwidth3=0
profile3=66
cropping3=0
TODO!
- Get all MPEG4 configuration
/adm/get_group.cgi?group=MPEG4- Response:
[MPEG4]
mode=1
resolution=3
quality_type=1
quality_level=5
bit_rate=256
frame_rate=25
gov_length=10
sp_uri=
mode2=0
resolution2=1
quality_type2=1
quality_level2=3
bit_rate2=256
frame_rate2=15
gov_length2=10
sp_uri2=
mode3=0
resolution3=3
quality_type3=1
quality_level3=3
bit_rate3=1000
frame_rate3=15
gov_length3=10
sp_uri3=
bandwidth=0
cropping=0
bandwidth2=0
cropping2=0
bandwidth3=0
cropping3=0
TODO!
- Get all JPEG image configuration
/adm/get_group.cgi?group=JPEG- Response:
[JPEG]
mode=1
resolution=4
quality_level=3
frame_rate=15
sp_uri=
mode2=0
resolution2=1
quality_level2=3
frame_rate2=15
sp_uri2=
mode3=0
resolution3=3
quality_level3=3
frame_rate3=30
sp_uri3=
bandwidth=0
cropping=0
bandwidth2=0
cropping2=0
bandwidth3=0
cropping3=0
TODO!
- Get all video streaming configuration
/adm/get_group.cgi?group=STREAMS- Response:
[STREAMS]
channel1=H264,1
channel2=JPEG,2
channel3=MPEG4,3
TODO!
- Get all Audio configuration
/adm/get_group.cgi?group=AUDIO- Response:
[AUDIO]
audio_in=1
in_volume=1
in_audio_type=1
audio_out=0
out_volume=8
out_audio_type=0
audio_mode=1
operation_mode=1
in_pcm_sr=8000
audio_in2=1
in_pcm_sr2=5512
in_audio_type2=3
au_trigger_en=0
au_trigger_volume=50
au_trigger_method=0
TODO!
- Get all User information
/adm/get_group.cgi?group=USER- Response:
[USER]
login_check=1
admin_timeout=5
admin_name=admin
admin_password=
viewer_name=demo
viewer_password=
user1=viewer,
user2=
user3=
user4=
user5=
user6=
user7=
user8=
user9=
user10=
user11=
user12=
user13=
user14=
user15=
user16=
user17=
user18=
user19=
user20=
audio_in_ctrl=1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
audio_out_ctrl=1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
pt_ctrl=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
adm_ctrl=0
io_ctrl=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Note: The response will never display your passwords.
TODO!
- Get all IP Filters
/adm/get_group.cgi?group=IP_FILTER- Response:
[IP_FILTER]
ip_filter=0
ip_filter_rule=0
ip_filter1=
ip_filter2=
ip_filter3=
ip_filter4=
ip_filter5=
ip_filter6=
ip_filter7=
ip_filter8=
ip_filter9=
ip_filter10=
ip_filter11=
ip_filter12=
ip_filter13=
ip_filter14=
ip_filter15=
ip_filter16=
ip_filter17=
ip_filter18=
ip_filter19=
ip_filter20=
TODO!
Some cameras have IO pins on the back. You can use these to send signals to, or receive signals from the camera.
- Get all IO configuration
/adm/get_group.cgi?group=IO- Response:
[IO]
in1_trigger=0
in2_trigger=0
in1_type=3
in2_type=0
out1_init=1
out2_init=1
out1_button=0,0,10
out2_button=0,0,10
out1_action=1
out2_action=1
out1_pulse_duration=10
out2_pulse_duration=10
TODO!
- Get all QOS configuration
/adm/get_group.cgi?group=QOS- Response:
[QOS]
qos_enable=0
qos_dscp=32
qos_av_switch=0
TODO!
- Get all ??? configuration
/adm/get_group.cgi?group=MCWS- Response:
[MCWS]
url_periodic=
url_event=
expire_hours=0
TODO!
- Get all HTTP POST Events configuration
/adm/get_group.cgi?group=HTTP_EVENT- Response:
[HTTP_EVENT]
http_event_en=0
http_post_en=0
http_post_user=
http_post_pass=
http_post_url=
Note: The response will never display your passwords.
TODO!
- Get all PPPOE configuration
/adm/get_group.cgi?group=PPPOE- Response:
[PPPOE]
pppoe_enable=0
pppoe_username=
pppoe_password=
pppoe_dod=0
pppoe_idle_time=300
pppoe_redial_time=30
pppoe_hostname=
pppoe_mtu_type=0
pppoe_mtu=1492
Note: The response will never display your passwords.
- Get all ZeroConf Networking configuration
/adm/get_group.cgi?group=- Response:
[BONJOUR]
bonjour_name=RC8230-92fff7
bonjour_mode=0
Some cameras have a slot for a MicroSD Card, onto which images and videos can be saved.
- Get SD Card configuration
/adm/get_group.cgi?group=SDCARD- Response:
[SDCARD]
sdcard_rec_enable=0
sdcard_rec_event_enable=0
sdcard_rec_audio_enable=0
sdcard_rec_file_ctrl=1
sdcard_rec_file_size=10
sdcard_rec_disk_ctrl=0
sdcard_rec_duration=60
sdcard_rec_stream_id=1
sdcard_rec_filename_prefix=
sdcard_rec_event_prefix=
sdcard_rec_schedule=
sdcard_rec_schedule1=
sdcard_rec_schedule2=
sdcard_rec_schedule3=
sdcard_rec_schedule4=
sdcard_rec_schedule5=
sdcard_rec_schedule6=
sdcard_rec_schedule7=
sdcard_rec_schedule8=
sdcard_rec_schedule9=
sdcard_rec_schedule10=
TODO!
- Get all PTZ configuration
/adm/get_group.cgi?group=PTZ- Response:
[PTZ]
PtzMode=1
PtzMdMutex=2
Preset1Name=
Preset2Name=
Preset3Name=
Preset4Name=
Preset5Name=
Preset6Name=
Preset7Name=
Preset8Name=
Preset9Name=
Preset1Position=
Preset2Position=
Preset3Position=
Preset4Position=
Preset5Position=
Preset6Position=
Preset7Position=
Preset8Position=
Preset9Position=
Patrol1Position=
PredefineHome=0,0
PatrolInterval=
PatrolStyle=0
TODO!
- Download the camera's firmware
/adm/flash_dumper.cgi- Response is a file called
fw.bin
- Response is a file called
It is possible to upgrade the firmware via the API. I would strongly recommend doing this via the GUI to ensure that the upgrade is accepted.
Never upload the firmware from one model of camera to a different model.
- Upgrade the camera's firmware using HTTP POST
/adm/upgrade.cgi- The firmware must be uploaded in base64
- Wait at least 5 minutes to ensure that the firmware has been successfully flashed.
These controls allow you to reboot/restart the camera. You can also reset it to its system defaults.
Note: There is no confirmation prompt! Once you issue these commands, they will execute immediately.
-
Reboot the camera
/adm/reboot.cgi- Response
OK - Camera will immediately restart.
- Response
-
Factory reset the camera
/adm/reset_to_default.cgi- Response
OK - Camera will immediately factory reset.
- Response
The cameras make extensive use of Open Source Software. You can see the software versions and Open Source Licensing information.
- View software licenses
/adm/Licenses.txt- Response: a text file containing the information
The cameras use a somewhat baroque way of representing Timezones. Each zone has a number. Timezones with daylight savings are marked with an asterisk *.
0(GMT-12:00) International Date Line West1(GMT-11:00) Midway2(GMT-10:00) Hawaii3*(GMT-09:00) Alaska4*(GMT-08:00) Pacific Time (US & Canada), Tijuana5(GMT-07:00) Arizona6*(GMT-07:00) Chihuahua, La Paz, Mazatlan7*(GMT-07:00) Mountain Time (US & Canada)8(GMT-06:00) Central America9*(GMT-06:00) Central Time (US & Canada)10*(GMT-06:00) Guadalajara, Mexico City, Monterrey11(GMT-06:00) Saskatchewan12(GMT-05:00) Bogota, Lima, Quito13*(GMT-05:00) Eastern Time (US & Canada)14(GMT-05:00) Indiana (East)15*(GMT-04:00) Atlantic Time (Canada)16(GMT-04:00) La Paz17*(GMT-04:00) Santiago18*(GMT-03:30) Newfoundland19*(GMT-03:00) Brasilia20(GMT-03:00) Buenos Aires, Georgetown21*(GMT-03:00) Greenland22*(GMT-02:00) Mid-Atlantic23*(GMT-01:00) Azores24(GMT-01:00) Cape Verde Is.25(GMT) Casablanca, Monrovia26*(GMT) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London27*(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna28*(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague29*(GMT+01:00) Brussels, Copenhagen, Madrid, Paris30*(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb31(GMT+01:00) West Central Africa32*(GMT+02:00) Athens, Istanbul, Minsk33*(GMT+02:00) Bucharest34*(GMT+02:00) Cairo35(GMT+02:00) Harare, Pretoria36*(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius37(GMT+02:00) Jerusalem38*(GMT+03:00) Baghdad39(GMT+03:00) Kuwait, Riyadh40*(GMT+03:00) Moscow, St. Petersburg, Volgograd41(GMT+03:00) Nairobi42*(GMT+03:30) Tehran43(GMT+04:00) Abu Dhabi, Muscat44*(GMT+04:00) Baku, Tbilisi, Yerevan45(GMT+04:30) Kabul46*(GMT+05:00) Ekaterinburg47(GMT+05:00) Islamabad, Karachi, Tashkent48(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi49(GMT+05:45) Kathmandu50*(GMT+06:00) Almaty, Novosibirsk51(GMT+06:00) Astana, Dhaka52(GMT+06:00) Sri Jayawardenepura53(GMT+06:30) Rangoon54(GMT+07:00) Bangkok, Hanoi, Jakarta55*(GMT+07:00) Krasnoyarsk56(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi57*(GMT+08:00) Irkutsk, Ulaan Bataar58(GMT+08:00) Kuala Lumpur, Singapore59(GMT+08:00) Perth60(GMT+08:00) Taipei61(GMT+09:00) Osaka, Sapporo, Tokyo62(GMT+09:00) Seoul63*(GMT+09:00) Yakutsk64*(GMT+09:30) Adelaide65(GMT+09:30) Darwin66(GMT+10:00) Brisbane67*(GMT+10:00) Canberra, Melbourne, Sydney68(GMT+10:00) Guam, Port Moresby69*(GMT+10:00) Hobart70*(GMT+10:00) Vladivostok71(GMT+11:00) Magadan, Solomon Is., New Caledonia72*(GMT+12:00) Auckland, Wellington73(GMT+12:00) Fiji, Kamchatka, Marshall Is.74(GMT+13:00) Nuku'alofa75(GMT-04:30) Caracas
Some cameras will allow Telnet access.
-
Activate Telnet
/adm/file.cgi?todo=inject_telnetd- Response: if successful, you will see
Open Telnet Daemon successfully!
- Response: if successful, you will see
-
(confirmed to work on RC8025b-ADT)
- username:
root - password:
Aq0+0009
List of available telnet commands:
- .
- :
- [
- [[
- alias
- bg
- break
- cd
- chdir
- continue
- echo
- eval
- exec
- exit
- export
- false
- fg
- hash
- help
- jobs
- kill
- let
- local
- printf
- pwd
- read
- readonly
- return
- set
- shift
- source
- test
- times
- trap
- true
- type
- ulimit
- umask
- unalias
- unset
- wait
If you can help with these missing piece of functionality, I would be most grateful.
With the speakers enabled, it should be possible to POST an audio file to the cameras, either in G.726, or G.711 (a-law or u-law). I've not been able to get this working. See further discussion.
Not all API calls are documented. Not all which are in the official documentation are valid. Fill in the gaps :-)