Guide To Submit IP Camera to MobiWatcher


2007-2008 ,WebSite:  http://MobiWatcher.com     Email:   MobiWatcher@gmail.com

Preparation
Introduction of HTTP Analyzer

Submit IP Camera Page in mobiWatcher website
How can MobiWatcher service work with any IP Camera

User Independent setting

Configurate User Related setting


Video Script




When a IP Camera is not in MobiWatcher system, you are not able to create your device to use MobiWatcher service. Fortunately, MobiWatcher is an open platform to enable user to submit IP Camera to MobiWatcher. After this IP Camera is submit to our system, you and other people can set up the device to enjoy our service.

It need only submit once for each type of IP Camera.

In this guide,  NC 1200 , a IP camera  from Gadspot, is used as an example to show you  step by step how to submit an IP Camera.



Preparation


  1. Set up your IP Camera following the user manual of manufacture so that you can view the live video from browser in you local network.
  2. You need a HTTP sniffer tool. Because most IP camera only work in IE, so HTTP Analyzer is an excellent tool to use in IE. HTTP Analyzer can be download from http://www.ieinspector.com/httpanalyzer  , there is a trial version you can download and use it. Please download IE Add-on version.



Brief Introduction of HTTP Analyzer

After HTTP Analyzer is installed in your computer, open IE and connect to the IP Camera, you will see IE is split as following:
If your IE is not split by HTTP Analyzer, you can turn it on by clicking tools->tool bars->explorer bar->IE HTTP Analyzer.



Area 1: IE Panel, the original IE , in which you camera is showing.
Area 2: URL Panel,the upper part of HTTP Analyzer, in which all visited URL is listing. There is Clear button to clear all links in area 2. It is good idea to click this button to clear all session before you click any link or button to navigate.
Area 3: Request panel, the lower part of HTTP Analyzer, in which http request information such as http headers, content , Query string and Post Data is showing. Query string and  Post Data are extremely important.

There is close button like X in the upper-left corner of area 2, click it to turn HTTP Analyzer off.




Submit IP Camera Page in mobiWatcher website

Open you Browser and type into http://mobiwatcher.com/mgn/SubmitCamera.aspx to navigate to submit camera page in mobiwatcher website. If you are not log in, you are brought to log in page.

If you use IE, and already turn on HTTP Analyzer, you need to turn it off in this browser window to enjoy a large working area in screen.
If possible you can arrange the 2 windows side by side, camera window with  HTTP Analyzer on  in left and submit window with HTTP Analyzer off  in right,  as following:





There are two sections in submit camera page in mobiWatcher website
  1. The upper section, My Submitted Video Capture Device ,will list all cameras you have submitted, in most case, it is empty.
  2. The lower section ,Submit a New Video Capture Device, provide a interface for you to submit new camera.



How can MobiWatcher service work with any IP Camera

MobiWatcher is a open platform to work with almost all IP Camera, how does it work?

As a standard, almost all IP cameras embed a HTTP server inside to communicated on open standards,  such as http, smtp and ftp. User can use standard web browser to access IP Camera to manage, config and operate camera.

MobiWatcher service does the same thing to use http to access, and update IP Camera, however, the challenge is even for the same function, the http parameters for different IP Camera can be totally different. MobiWatcher service will map urls, parameters used in IP Camera to  standard ones so that mobiWatcher can abstract a mapping layer to communicate with all IP Cameras in same way.

For example, IP Camera use FTP protocol to upload snapshot to server.Obviously, different users will use  different FTP location to store their own snapshots in ftp server, so  Mobiwatcher need to make a HTTP request to IP Camera to  update the FTP setting inside camera for specific user.  However, the  parameters for FTP setting used by IP Camera can totally different.Camera A will use FTP_Host for ftp server, meanwhile, Camera B can use host for ftp server and Camera C may use ftp_server for ftp server.  

If there is not any abstract layer, when updating FTP setting, for example, set FTP server to ftp.mobiwatcher.com , MobiWatcher need to send http request as following:
It will be extremely hard to implement.

MobiWatcher use a mapping system to map all parameters to standard ones, for example, MobiWatcher maps ftp server parameter to FTP_SERVER, so that mobiwatcher will sand same request to all Camera as http://ip to camera/handler? FTP_SERVER=ftp.mobiwatcher.com, before this request send out to specific camera, the mapping system in mobiWatcher will be automatically mapped to the parameters which the specific camera can understand.

For each different camera, MobiWatcher only need to be mapped once.

The job for us to submit new camera is tell MobiWatcher how to map the standard parameters used in MobiWatcher to the real parameters my camera can understand.

 
There are 3 tabs in submit new camera section:
  1. User Independent setting, where we submit most url,  parameters is common for all users
  2. User Related setting, where we map handler and parameters varied by users
  3. Video scripts, where we used to play back live video.



User Independent setting


User Independent Setting tab is selected by default, if it is not selected, select it.




                       
               
This url is for http request to get snapshot from IP Camera. You should be able to find the snapshot Url from user manual of the manufacture, if you could not, contact them or visit our forum http://mobiwatcher.com/yaf/  . Some IP Camera take user name and password in this url, for example, http://ipcamera-ip/cgi/snapshot?userName=your_name&pwd=your_Password. In this case, you need to use meta-parameter, {0} to replace userName and {1} to replace password, as a result, you need to input /cgi/snapshot?userName={0}&pwd={1}. For NC 1200, input as /cgi-bin/getimage.cgi?motion=0 (the 0 is not meta-parameter).
All Urls input into submitting form should be the part just after the domain or ip address starting with '/'  ,   take example as above, the whole url should be http://ipcamera-ip/cgi/snapshot?userName={0}&pwd={1} after replacing with meta-parameter,  you have to input as /cgi/snapshot?userName={0}&pwd={1} into the field of Snapshot Url in the submit page

               
After you click Submit, a request  will be sent to web server in camera and HTTP Analyzer can record all information. Now check the HTTP Analyzer to find the url we just sent. Find  the row with type of  "text/plain" or "text/html" , if you already clicked "Clear" button in HTTP Analyzer, you will  easily find the first row is what you need. Please be advised, always clicked "Clear" button in HTTP Analyzer before you click any button so that it is easy to find the information you need.See blow:


Now copy the URL column in the first row, you will get something like this:

http://192.168.0.6/cgi-bin/setevent.cgi?eventid=0&eventsource=131072&eventaction=327680&eventcamera=0&eventduration=3
&eventLastDo=0&eventenable=TRUE&1208024699218

The url is quite different among cameras, and you do not need to understand what the meaning is.

Go to submit page in mobiwatcher website, input following string into Motion Detection ON field: /cgi-bin/setevent.cgi?eventid=0&eventsource=131072&eventaction=327680&eventcamera=0&eventduration=3
&eventLastDo=0&eventenable=TRUE&1208024699218
Remember to remove the the http prefix and ip address of ip camera .
Tips
  • Alway clear HTTP Analyzer before click any button.
  • The trailing number like 1208024699218 is is the timestamp of when the request is made. You do not need to input this into url,because mobiWatcher will add timestamp for you automatically.
  • Url starting with /

        http://192.168.0.6/cgi-bin/setevent.cgi?eventid=0&eventsource=131072&eventaction=327680&eventcamera=0&eventduration=3&eventLastDo=0&
eventenable=FALSE&1208034922046

Switch to submit page in mobiwatcher and fill  Motion Detection Off Url field with the following string
/cgi-bin/setevent.cgi?eventid=0&eventsource=131072&eventaction=327680&eventcamera=0&eventduration=3&eventLastDo=0&
eventenable=FALSE&1208034922046

Now, click Clear button in HTTP Analyzer , then click Submit button  to send request to camera. 
After page refreshs, click the first row in the upper area of  HTTP Analyzer  and copy the column of URL. The value of the URL is :
http://192.168.0.6/cgi-bin/setftp.cgi?ftpserver=mobiwatcher.com&ftpuser=demo&ftppassword=demo&ftpdirectory=/&ftpenable=1&1208037947468

Because we only need the turn on/off FTP and not the actually setting of ftp server or other setting, which will be handle later, we need only part of this url related to ftp on/off, so the eventually url for ftp on  will be http://192.168.0.6/cgi-bin/setftp.cgi?ftpenable=1
Input this into ftp on Url field with the following string:

/cgi-bin/setftp.cgi?ftpenable=1

Please only include the parameter of ftp on or  off, not including the actual setting.Otherwise, it will not work through mobiwatcher system.



Clear HTTP Analyzer, and click Submit button, after page refreshs, click  the first row of HTTP Analyzer, and copy URL as shown below .


The value of URL is:
http://192.168.0.6/cgi-bin/settcpmsg.cgi?msgserver=164.17.121.118&msgport=11090&msgstr=MS0x&msgenable=1&1208040200625
The same reason like FTP on/off setting, we only need input  the part of the url for tcp on or off portion into TCP Message ON Url field:

/cgi-bin/settcpmsg.cgi?msgenable=1


        /cgi-bin/settcpmsg.cgi?msgenable=1

        input /cgi-bin/setmail.cgi?mailenable=1 into submit page of mobiwatcher website as Email On Url

        input /cgi-bin/setmail.cgi?mailenable=0 into submit page of mobiwatcher website as Email Off Url
Check the HTTP Analyzer from the Url in the first row as following:
 
The reboot url is http://192.168.0.6/cgi-bin/reboot.cgi?1208046959359, so we will input reboot field in mobiwatcher as following:

/cgi-bin/reboot.cgi

Some camera may pop up a warning window like below:



Do not click OK. if you click OK the current window is closed and you are not able to check the information in HTTP Analyzer.


Select channel3 and set to active Find the url from HTTP Analyzer
After click submit button and page refresh, click the first row in the upper section of HTTP Analyzer, there are two interesting thing:
  1. The Method is Post, not get as before. 
  2. The Url is very simple like http://192.168.0.127:8088/check_user.html without any ? and & separated parameters.
If you submit you camera and find similar situation, just remember to construct your url in 3 steps:
  1. Write down the url, in this case is http://192.168.0.127:8088/check_user.html
  2. Find the parameters in post data because the http method is Post, Click Post Data in lower section of HTTP Analyzer, and there should be a list pair of parameters and values, find the one you need.Take a look at the right screen shot above which is the record just after channel 3 is submitted, and we can easily identify that the fourth one, IMG_V_C,  is what we need, and  last  parameter, server , is probably required. So we get 2 parameters we need: IMG_V_C and server .
      Please includes only those parameters you need in step 2, other wise you may get bizzard side affects
  1. Construct the url  with the formula: url+?+parameter1=value of parameter1+&+parameter2=value of parameter1. so the url to set active camera will be http://192.168.0.127:8088/check_user.html?IMG_V_C=003&server=Submit
After step 3 we can input /check_user.html?IMG_V_C=003&server=Submit into set active url field.Remeber to remove http prefix and camera ip address. 



Make sure select admin for group and type user name, 1111 for example nad password, 2222 just for example.
Click Clear button in HTTP Analyzer, then Click Submit button. After page reload, check the the url for the frist row in URL panel.
The Url for the request we just made is :

http://192.168.0.6/cgi-bin/adduser.cgi?user=1111&password=2222&group=0&JsVar=sOK&OnJs=onModifyUserComplete&1208116574937

As a rule, remove http prefix, ip address, then replace the user name and password with meta-parameter, so the final string to input into the field in submit page in mobiwatcher website is:


/cgi-bin/adduser.cgi?user=$user$&password=$pwd$&group=0&JsVar=sOK&OnJs=onModifyUserComplete

Admin group is important to be function correctly, the gourp=0 is for admin group. Alos remember to replace user and password with meta-paramter. Here is to replace 1111 with $user$ and 2222 with $pwd$

Save User Independent Setting

Till now, we already gather all information needed in the first tab, User Independent Setting, for submitting camera, and input to the submit camera page.

It is time to review the inoformation we just filled according to the following rules:
  1. Http method is Get or Method
  2. Support Max Number Of Camera will be 1 for integrated Integrated Network Camera, and possible 2,4 ,8, 16 for Network Video Server
  3. All Url is starting with / . No http prefix and ip address or domain.
  4. Replace the real value with meta-paramter if requried. Snapshot Url and Video Url may need user name and password, set active cam Url requires no. of active cam (Channel), set camera name requires $camName$ meta-paramter and create admin user url requires $user$ and $pwd$ meta-parameters
After review the information we filled and ready to create the video cature device, please click button Save Video Capture Device to submit the camera to mobiwatcher. A new record is created for you at top of submit page. Shown as following:





Configurate User Related setting


There is a _Other portion for user related items, for example, WIFI_Other, FTP_Other, PORT_Other, for extra parameters which are vendor related. There is example to map http port for CNet camera. The URL is

         http://xxx/set.html?wport=8080&h_set_wport=1&todo=save&message=
        We can map wport to Web Port and h_set_wport=1&todo=save&message= to PORT_Other, because this portion is mandatory. There is no "&" in PORT_other portion
How to map enumeration to a parameter?  For example, security protocol for WIFI can be wep, wpa.  The follwoing sample takes from a WiFi mapping:
         The http parameter is h_wire_sec and there are 3 options for this parameter, Disable with value of 0, WEP with value of 1 and WPA with value of 2, so we can  map h_wire_sec to WIFI Security Protocol as following:
    
         h_wire_sec|Disabled|WEP|WPA/WPA2 Personal

        the first token h_wire_sec is the parameter, and following tokens splitted by "|" are options, the value starts from 0 and increase by 1.
       If the items in option is not increased by 1 or not starts from 0, or even not number, the value can be specified with a : as following mapping of WIFI WEP Encryption:

       h_w_wep|64 Bit Keys:1|128 Bit Keys:3|256 Bit Keys:6 

      The above mapping will be rendered as 3 options for parameter  h_w_wep : 64 Bit Keys with value of 1, 128 Bit Keys with value of 3 and 256 Bit Keys with value of  6

We just  submmited  a video capture device to mobiwatcher with User Independent Setting. There will be a new row showing in upper section in My Submitted Video Capture Device. Click Show  icon  in the row we just created, the information will load to web page. Click User Related Setting  tab. There is nothing showing here, because we do add any  User Related setting  yet.

The User Related setting is divided into different groups, and each group contains a couple of parameter mapping.

The common setting goupr are Http Port, DNS, FTP and NTP. FTP setting is mandantory, HTTP port setting are required for most camera.

Click show icon and user related setting tab to start configurate user related settings


Plese Click   icon after "Need Another Setting Group, Click to Add", it will bring up a windows for you to pick up which setting group you can start. Show below:
Each item in dropdown list is a group. You can pick up any one to start.
The order to config a setting group is
    1. To add group. It start with clicking the  button besides 
    2. To add parameters mapping for each group. It start with clicking the  under Add column for each group  


FTP Setting Group
Pick up a setting group in above popup window, like FTP server. FTP setting requires two piece of information:
    1. Http Method: Get or  Post
    2. Server side Handler: server side handler is the portion of url without domain and parameters, for example, if there is a url like http://somedomain.com/cgi-bin/abc/def?aa=1&bb=2, then the server side handler will be   http://somedomain.com/cgi-bin/abc/def?aa=1&bb=2
When we input ftp url above, (see here how to find ftp on and off url), we already know the url for ftp is

http://192.168.0.6/cgi-bin/setftp.cgi?ftpserver=mobiwatcher.com&ftpuser=demo&ftppassword=demo&ftpdirectory=/&ftpenable=1

So the method is Get and server side handler is cgi-bin/setftp.cgi without starting  / or  ?. Input the information in the popup window like below.


then clikc Save button, page reloaded, and you will see a record  showing in the section "Setting Type for: NC1200", Click Show  button, there will show all "parameters mapping for current setting Type" section, however, we only add FTP setting, and did not add any detail parameters for it, so there will be a message saying: Total avaible parameters: 7. None mapped. It is true we did not add any parameters mapping here.
Let us start to add a FTP parameters mapping. Find the ftp setting page in camera browser, as we mentioned before, it is under Configuration setting -> advanced->FTP. The setting in your camera must be different than NC1200 , what we used as example. Clear HTTP Analyzer and clcik submit button, the screen shot see here.
After page reload, go to the Request panel in the lower part of HTTP Analyzer, Click Query String, you will see all parameters. Shown below:
The above parameters in red box are what we need to input in submit page. Only those parameters are populated in our system, mobiwatcher service know how to update your camera with correct information.

It is easy to understand what those parameters stand for.  Click the under Add column in the row of FTP server, another   window pops up such as following:

In the window above you are asked to map the parameters between your camera, here is NC 1200 to mobiwatcher standard parameters name. We already got all parameters of FTP from request panel in HTTP Analyzer shown above, so we can type ftpserver into the field of FTP Host or IP, ftpuser for FTP User Name, shown as at the right above.
Click Add, the parameters for FTP will be saved into mobiwatcher system. Shown as below:
You will notice the message for ftp server is changed to "Total available parameters:7. 3 parameters not mapped. If you click  again and check the parameters for ftp parameters, you will found only 3 parameters left for mapping. Not all parameters are support by camera. It is valid if some parameters not mapped.
Ftp server, ftp username and ftp password are required. ftp directory is high recommended, if the camera support this feature.

So far we already input FTP parameters mapping, there are some sumamry here:




NTP Setting  (Network Time Protocol) Group


NTP is very important for camera for synchronization. almost all camera support this setting.

Click icon beside "Need another setting Group, Click to Add", and bring up pop up window shown above again. Pick up NTP Server.
Now we need to find where the setting can be set in camera. In NC 1200, it is under Configuration setting->Basic->System, shown below. Your camera must be different location.

After click submit, we can find the url for this request from HTTP Analyzer. Shown below:
The url is http://192.168.0.6/cgi-bin/setsntp.cgi?enable=1&ipsel=0&timezone=57&ipindex=10&server=0.0.0.0&daylight=0
As the same rule as FTP setting, we know the method is Get and server side handler is cgi-bin/setsntp.cgi, input into popup as below
After click Save, the setting group is saved. Now we have 2 rows in setting type now as shown below. Click the Show  button, the mapping message change to "NTP Server [Total avaialbel parameters:2. None Mapped]". This true, because we did no add any parameters ampping for NTP group.
Click  Add button in the row of NTP Server, and bring up pop up window to add aprameters mapping for NTP setting.
We need to find those two parameter. Based on the url we got:

http://192.168.0.6/cgi-bin/setsntp.cgi?enable=1&ipsel=0&timezone=57&ipindex=10&server=0.0.0.0&daylight=0
We can figure out the parameter for  NTP Server is server and time zone is timezone. Input those value and click Add as following:

NTP setting group finished.





Http Port Setting Group

Http port is the port number your camera will start embedded web server and list to the port for incoming http request.

Click icon beside , and bring up pop up window shown above again. Pick up HTTP Port.

Now we need to find where the setting can be set in camera. In NC 1200, it is under Configuration setting->Basic->Network, shown below. Your camera must be different location.

The above setting contains http port, also DNS setting, which we will cover later. Clear HTTP Analyzer, then click Submit, IE pop up warning to confirm continue.

Find Url from URL panel of HTTP Analyzer as below:

The Url is very long, but we are only interesting for http method and server side handler. For NC 1200, teh method is GET and server side handler is cgi-bin/setnetwork.cgi.  input this infomation into popup like below
Click Save to save HTTP Port group.After page reload, Click Add icon in row of  http port shown below
A window will pop up as following:
The parameter for http port is easy to find form the request panel of HTTP Analyzer, it is port, so input port into the pop up in submit page in mobiwatcher, shown below:
Click Add to finish HTTP Port setting.

If a camera does not require http port setting, it means this camera alway start embedded web server in port 80.




DNS Setting Group



DNS setting is critical for any operation related to domain name, for example, ftp server or email server. If those server is set as a domain name such as mobiwatcher.com, DNS setting has to present to make ftp or email working.

For NC 1200, DNS and Http Port setting is in the same page. For your own camera, you need find the location and repeat the steps describe as other setting group to find method, server side handler and parameters with HTTP Analyzer. 

We already know the method, server side handler and parameters when we config HTTP Port setting for NC 1200. Detail see above
    1. Http methods: GET
    2. Server side handler: cgi-bin/setnetwork.cgi
    3. parameters for DNS are: dnsserver1 and dnsserver2

Click icon beside , and bring up pop up window shown above again. Pick up NDS Server. Type into GET for method andcgi-bin/setnetwork.cgi for Server side handler, then click Add to add DNS group.

Input DNS parameters then click Add to save setting.
DNS Setting group finished.

DDNS Setting Group


DDNS can be configurated in camera to keep the  camera accessible if the ip address changed.


Find the location of the DDNS setting in your camera, for NC 1200 as example, it is sitting under configuration setting->Basic->network->DDNS tab. Shown below:


Click Submit. Then check the HTTP Analyzer to find server side handler and parameters.
The information to add ddns setting are:
  1. Method: Get
  2. Server Side Handler: cgi-bin/setddns.cgi
  3. parameters: domain,server,account,password
We now can create DDNS setting group now as the following :
Mobiwatcher currently does not support turn on/off DDNS. So you need to manually turn it on on your camera after you create your device. Create device is different than submit  video capture device. The submitted video capture device is a template.  To Create device will create a instance of the template, and create a device with mobiwatcher.
The video capture device you submit will be used by other people.But the device you created is accessible  only by you.



Video Script


In order to watch stream video in mobiwatcher website, we need to know how the camera play back video. The script used by camera to play back video is called Video Script.

Not all camera is friendly to embedded into other web page, especially for camera with basic authentication. NC 1200 is very hard to embedded into our web page, so just leave empty.



Submit a camera may take some time but it only need to submit once for each camera.

After camera is submitted, we will review it and published it so that other user can use it.