HOWTO: Set up scheduled FTP events in your Axis 207 network camera
From the setup pages in your Axis 207 camera you may be forgiven for thinking that it’s only capable of sending images by email based on motion detection, but can it send a constant stream of images to a server using FTP? Well, yes it can, it’s just a little trickier to achieve but we are here to help.
Let’s get started.
Our example will help you configure an Axis 207W to continuously send 1 image per second to an FTP server, the image being continuously overwritten.
This guide will be suitable for the following Axis Network cameras:
It may also work with the Axis 206, however this is untested.
Note that this will also work for all Axis cameras above the Axis 207 but they have the facility to configure scheduled FTP events through the built-in web pages.
Before you start you may like to delete all previously configured events in the camera so the Events, Servers and Actions all have the same identifiers as our example below.
Step 1 - Adding an FTP server
- Log in to your camera and enter the ‘Setup‘ pages. Choose ‘System Options >> Advanced >> Plain Config‘.
- Select ‘Event Servers‘ from the drop down box.
- Click ‘Add FTP Eventserver‘. This should give you a new FTP server titled F0.
Now, enter your server details in the form and save. You can see an example image below. Of course, you will have to populate the fields with your own server details.

Step 2 - Adding an Event
- Log in to your camera and enter the ‘Setup‘ pages. Choose ‘System Options >> Advanced >> Plain Config‘.
- Select ‘Event‘ from the drop down box.
- Click ‘Add Event Type‘ button. This should give you an event titled E0.
A lot of the values will already be populated. Match the values as shown in the image below for the correct configuration (although the name is not important), and save.

Step 3 - Adding an action to the event
The event won’t work without an action and unfortunately there is no way to add an action using the web pages. We need to put a command directly into the camera using the API (Application Programming Interface).
To add an action enter the following line in your browser’s address bar:
http://[camera IP]/axis-cgi/admin/param.cgi?action=add&group=Event.E0.Actions&template=ftpaction
Where [camera IP] is the address of the camera and E0 represents the newly created event in Step 2.
You should recieve the message “A0 OK” if successful.
Now go back to the event as in Step 2 and you will notice that action A0 has been added to the bottom.
See the image below for the correct values to enter for the action.

That’s all there is to it. Now restart the camera and keep an eye on your FTP server to see your image.
If you have any comments or questions about this guide please leave them below and we will do our best to answer them as soon as possible.
| Digg this | Trackback81 Comments so far
Leave a reply


Excellent, excellent, excellent! The scripting guide from Axis is messy and seems a bit outdated, which is a crying shame since these cameras are so flexible.
This guide worked perfectly on a 207mw. I will test shortly with an axis 211.
I can confirm that this works with the Axis 211 as well. I would guess that this works with the 210, 211A and other (recent) fixed cameras too. For PTZ cameras, why not, but you’d have to add something to pan-tilt-zoom to a defined position somehow. If you want the same view in each snap, that is.
Glad we could be of some help Kevin. Yes, this guide will work in any Axis network camera but it’s worth noting that in the higher-end models such as the 211 or greater, setting up scheduled events can be done from the cameras built-in setup pages. And you are right! It is possible to add a bit of scripting to a PTZ camera to ensure it returns to a particular spot before taking a snapshot. I will make a note to do a guide on this in the future.
Adding a warning here. On some cameras, after following this recipe, you can also change event settings in the normal setup pages. Useful for customising the image (overlay, resolution, compression). BUT! Immediately after, go back to plain config and check “Best effort interval” (and others too, maybe). I have my cams set for a 180000 (3 mins) b.e. interval, but after changing image settings in normal setup, it was back to 1000. So my cam was uploading every second, or certainly its “best effort” to meet that…
And now a new question: any experience with http eventservers? I assumed that this was DAV, but that does not seem to work. Will read the cryptic api docs from Axis, but would be very happy if someone had hands-on for this. (I’m looking into this since it would (i hope) simplify firewall circumvention)
Hi Kevin,
Thanks for the additional tips.
With regards to your new question, what is it you’re trying to achieve? It would be easier for us to advise a possible solution if we know the end goal.
Quite simply i was hoping to upload an image to an apache webdav folder, like ftp but without the extra ports hassle of active or passive ftp. Havent’t done or read anything since my previous message, but I’m guessing the http eventservers the axis cams refer to are only meant for a ping-like message from the camera, not full uploading. Pointing a http eventserver to a webdav folder only gave me a 301 (Moved Permanently) error in the logs, but first attempts rarely bring home any bread. (Hey, I don’t want to hijack or derail this comment thread, btw..)
Thanks for the informative writeup… noticed however, that this is tailored for constant FTP upload. Can you tell us how to config the camera for motion-detection, then upload via FTP?
–Tom
Hi Kevin.
As far as I’m aware you would use FTP to upload files but if you would like to discuss this further perhaps you would like to raise a question in our forum?
http://forum.networkwebcams.com/
Hi Tom,
Thanks for your enquiry.
The reason behind this tutorial was to show camera owners that it was possible to set up a ’scheduled’ event in the 207 model camera. I didn’t cover events based on motion because this can be done in the main setup pages of the camera without resorting to the complicated ‘plain config’ pages.
However I think it would probably be beneficial to create a tutorial for this too so we have all bases covered.
I’ll add it to my list. Keep an eye on the blog.
For file name use suffix field:
%y-%m-%d_%H-%M-%S-%f
Hi,
Great “How To”!!!
I’ve just set it up on a 207W with the latest 4.40 firmware, and the FTP upload is only working if the image does not exist.
Camera Log:
Jul 26 18:46:06 axis-00408c77d499 /bin/sftpclient[3527]: 550 Rename/move failure: File exists
Jul 26 18:46:06 axis-00408c77d499 /bin/sftpclient[3527]: Rename E0B_FTP_1pm@192.168.1.100.tmp -> image.jpg failed
Jul 26 18:46:06 axis-00408c77d499 /etc/event/event[547]: Action A0 for event E0 failed, status 1. Will retry for a while.
The only setting I have changed from your example is the Best Effort Interval = 60000
Any ideas?
Cheers
Paul
Hi Paul,
I would guess this is more to to with permissions on the server than anything wrong with the camera configuration. Make sure you have the correct permissions before attempting to delete/overwrite files.
This is a great manual - it actually was the only useful source I found to make the FTP upload work as I planned within a reasonable amount of time. I set an interval of 36000 seconds (new pic every 6 minutes).
There are just two problems left:
- I got my router and cam attached to a ON/OFF timer. The power is switched on and off 5 times a day when I’m not home. The first image, however, always shows the time and date of 1 january 1970, 00:00 - the cam makes a NNTP update only when the 2nd image is ulpoaded after 6 minutes. Not too bad - but this means I have to leave the power on for at least 7 minutes, and sometimes even this is not enough. Does anybody know how this could be solved? Can I force the cam to make a NNTP update before the first upload?
- What is the meaning of the “duration” field: Does it mean (see screenshot above) “start the job and stop after 24 hrs” or “do the job permanently, never stop”?
Thanks,
Andi
Here is what I used and I get an error message. Did I do something wrong?
http://192.168.1.100/axis-cgi/admin/param.cgi?action=add&group=Event.E0.Actions&template=ftpaction
Hi Jerry,
The syntax looks ok to me, what error are you getting?
I believe it was: No action specified.
Sounds like when adding the action the camera couldn’t find a corresponding event. This could mean a couple of things I think, 1. When you configured the event it somehow didn’t save. or 2. The Event number did not tally with the number in the command you typed. In the command you typed you are adding an action to the event E0. If your configured event is E1 then you should change it to read E1 in the command.
Hope that helps.
Hi,
I tried this with no success. The “action=add&group=Event.E0.Actions&template=ftpaction” gave me a correct “A0 OK” and I changed the settings to “F0″ - but no image on our ftp server.
Any ideas? How can I see that the axis is at öleast “trying” to upload an images? Error logs somewhere?
Thanks for any help,
Steve
Is “Now restart the camera” pulling the power cable and plugging in back in? Maybe that’s my mistake.
Yep. You can restart the camera by cutting the power for 60 seconds or you can restart it from the camera setup menus. ‘System Options > Maintenance > Restart’.
You can also see camera logs in the setup menus. Choose ‘System Options > Support > Logs & Reports’.
It does not work. Log says:
Jan 1 00:00:44 axis-00408c77e9c9 /bin/sftpclient[729]: connect error: No route to host
I had no router ip specified - argh. What a freshman!
Works now.
Great info here. I don’t know if keven still checks this blog, but it _is_ possible (theoretically) to upload images via HTTP. But you have to use scripting, specifically the shttpclient program.
Unfortunately I couldn’t get the web-based event manager to bend to my will so ultimately I’ve written custom scripts for all of my events. The most frustrating bug seemed to be that the video wouldn’t be captured before AND after a motion event, regardless of the values in the “MPEG trigger duration” fields. It seems that parhand wouldn’t create the task.list file correctly, so the MPEG4 buffer handler never had the -b option (for seconds to record after the trigger, ie “MPEG post trigger duration”)
What I’d really like now is to find a command-line RTSP client that I can call on a remote computer (through a TCP or HTTP action to a program like Girder) so that I can record MPEG4 streams off the camera and store them on the network. Can anybody point me in the right direction?
Hi Deryk,
I think you’ll find if you use the ‘interface-based’ event manager in an Axis 207(W/MW) camera you can record MPEG-4 video for storage via FTP (or email).
Greg,
I’ve found two problems with handling MPEG-4 in the camera:
1) Eats CPU to generate the MPEG4 file
2) You can’t stream “continuous” MPEG4 to a file
From what I understand of how buffer_handler_mpeg4 works, it has a pre-trigger duration and a post-trigger duration. Once you send a USR1 signal to the buffer handler (ie, a motion event occurs) it then buffers for some additional seconds, then generates an MPEG-4 file which you can FTP or email.
However I’m interested in starting MPEG4 archiving when an event happens, and generating a stream for a minimum of x seconds with the possibility of streaming for longer if motion continues. This may result in a 5-minute MPEG-4 stream (or longer), which would likely be too big to fit in the camera’s memory _and_ would take a long time for the camera to process.
This can be easily accomplished (I think) by having an external process connect to the camera by RTSP and record the MPEG-4 stream. I’d tell that process when to start and stop by sending HTTP or TCP actions. FFMPEG may be a part of this solution.
Having followed the above, what do you put in the suffix field (in plain config settings) to stop the image being overwritten and build up files as they are sent to the ftp server in sequence?
Any ideas how I might use curl from a linux command line to program these settings listed in the how to?
Thanks for this post!
Kevin L.
Still having problems. Followed the instructions to the letter and the camera is at least trying to upload but the log says my ftp server is an “unknown host”. Now I now that my ftp site is valid as I have been working on my website today so I’m not sure what my problem is.
Hi David,
Could be the DNS settings in your camera. It might not be able to resolve a domain type address such as “ftp.myftpserver.com” into its IP address. Check your DNS settings or simply use the IP address instead. You can find the IP address of your FTP server by using the “ping” command from a command prompt.
Also check the log files in the camera for more information about what it’s trying to do. You’ll find them in the setup pages.
Hi, great info,
unfortunately this doesn’t work on a 206.
The menu’s simply are not available.
Is there anyone who can help me doing the same thing with a 206 ?
Hi Jan-Paul,
Unfortunately this is not possible with an Axis 206. The Axis 206 does not support any alarm management features as far as I’m aware.
Hi Greg,
i,m not looking for alarm events. Just want an image to be uploaded through ftp to a website every minute. The options i have now are or with a tool like this http://sourceforge.net/projects/imagelogistix/ (needs a PC which is not at this location) or by getting the html to pull the image from the camera. This means i need to have my router NAT enabled. This is not what i want to do. FTP straight from the camera would be the ideal solution. I hoped maibe it could be done by using the scripts inside the camera ….
Very useful guide
Would it possible to have a multiple actions to an event, i.e. one to FTP server and other to mail server?
thanks
Absolutely. You can set up multiple events such as transferring an image every X seconds to an FTP server to display a live image on a web-page while also having an event to email you an image or video clip if the camera detects movement.
Greg, I’ve not been able to get multiple events working - if I enable image or mpeg4 FTP uploads triggered by motion, the process described here quits working. Could you possibly provide more info for a relative ‘newbie’ on how I can do both simultaneously? (I’d like to send an overwrite jpg file every 5 seconds to one FTP server, and a few seconds of mpeg4 video triggered by motion.) Thanks.
Maybe what is happening is that the event you create using the plain config is overwritten when you create a second using the wizard.
Try creating the motion detection event using the wizard first then set up a second event using plain config bearing in mind that the details that will already be populate will be the details for your motion detection event so create a NEW event E1 and follow the instructions above but for your E1 event.
Greg, I’ve tried this, but after entering the “http://[camera IP]/axis-cgi/admin/param.cgi?action=add&group=Event.E1.Actions&template=ftpaction”
(notice I’ve replaced E0 with E1) then go back to step 2, it shows (correcly) event E0 attached to Action 0, but also even E1 attached to Action 0) - I’ve setup a seperate FTP server F1 and specified it in ‘Event E1 Action 0′ but this routine still has problems.
Do I not need to get an ‘Event E1 Action 1′ or something like that for the step 3?
What is the meaning of the ‘type’ and ‘priority’ field entries for the Action?
What are the meanings of the ‘type’ and ‘order’ fields in the Event.
Thanks for your help.
John F
Greg, I have gotten it to work (fingers crossed, limited testing.) Seems wierd, but creating an event 1 as a ‘dummy’, then an event 2, then running the action http command thrice to create a E2-> A2, then deleting the dummy E1 event and blanking out the server settings for the unused E1 -> A0 and E1 -> A1 actions created by the http command, just leaving the final E2 -> A2 action, it works.
Why it wouldn’t work with E1 -> A1 action is a mystery yet to be determined, and I’ll play with it more as time allows.
Thanks so much for your help. I’d still like to know what the various ‘type’, ‘order’ and ‘priority’ fields do. Is there a document that explains all of the plain text stuff?
John F
Glad to hear it works for you now. Take a look on Axis.com/support for information about scripting in the cameras.
I spoke too soon. It will upload .jpg’s for anywhere from minutes to hours at the interval I specify while also detecting motion and uploading those images to a separate FTP server, but the ‘timed’ uploads soon stop.
This is very frustrating, especially as the cheapo Panasonics I’ve got will perform up to 5 seperate actions using any combination of timed, motion, or sensor triggers at the same time without flaw.
All I want the 207 to do is upload images or mpeg4 to one FTP server when triggered by motion, while always uploading a jpg in overwrite mode to a different FTP server every 5 seconds. Doesn’t sound like too much to ask, but after weeks of trying everything, I can’t get it done.
If anyone has accomplished this, I’d be very grateful to hear the details.
Keep in mind, the above directions seem to work perfectly for 1/2 of what I want, as long as I don’t ask the 207 to upload jpg’s or mpeg4’s upon motion detection.
John F
Hi Greg,
I ask you as you seem to be quite expert with Axis cameras. I searched the forum but I can’t find anything.
I got a Axis 211 sending image to an FTP server every 5 seconds. I chose to number the images from 0 to 24 then restart, but it seems to be a bug in images numberings.
What I got is image00001, image00003.. to image00023 (all odd numbers). But sometime they are named image00002, image00004.. to image00024 (all even numbers), resulting in a sequence of newer and older images…
All I would like to have are images numbered from 0 to 24, not so hard!
This camera seems to have an old firmware (4.11 dated 2004) but I can’t find any never one. Maybe other firmware version can resolve this problem?
Many thanks
Al
I found a new firmware (4.40) in the Axis site.
Looking at this description, I think my problem has been fixed since 4.20 version:
4.20:27 A problem with gaps in the file name sequence during FTP upload has been corrected.
I should try this on my camera.
Thank you anyway, maybe this post can help other users.
Al
Very helpful thread!
I’m hoping to occasionally trigger my 207W to take a picture (& email it to me) remotely, ideally via a HTTP request or an email. I can trigger from the LIve View site, but I can’t figure out the HTTP GET command which could do this automatically. Any clues?
I also haven’t found the much-mentioned API guide - does anyone have a URL for it?
Many thanks,
Laurie
Doh, I found the trigger URL: http://**mycam**.dyndns.org:8013/axis-cgi/io/virtualinput.cgi?action=6:\
Still seeking the API guide!
[ed - url edited out to protect commenter]
Hi Laurie,
You should be able to call an image from the camera using the following command through HTTP:
http://YOUR-CAMERA’S-IP-ADDRESS/jpg/image.jpg
Links to the API language can be found here:
http://www.axis.com/techsup/cam_servers/dev/index.htm
Hope that helps.
G.
After all my complaining, the 207W has seen the light and uploads images via FTP faithfully now. It has been a week now without issues. Don’t really know, maybe Greg did something remotely to make it work so well . I think the secret for me is to stay in ‘plain config’ exclusively (well, seems to have worked so far anyway). This has been an extremely helpful thread… Thanks Greg
Laurie,
You’ll find the API for Axis cameras at the following address:
http://www.axis.com/techsup/cam_servers/dev/cam_http_api_index.php
How can i configure an event that uploads a picture every hour? I changed the interval fields to 1 and unit to “H” but that doesn’t work..
Hi Leo,
Try increasing the value stored in Best Effort Interval. If it’s 1000 for 1 second then it would be 3600000 for an hour.
Remember to reboot the camera after changing any event settings.
Hello Greg,
Thx voor de fast response. What sould i set in de pre/post trigger interval value?
It would depend how much time you want to see ‘before’ the event (pre trigger) or ‘after’ the event has passed (post trigger).
Great thx!
Why do you have to reset the camera after changing event settings? the changes you made are all ready active before the reset.
Sometimes it’s ok, yes, but I prefer to just reboot the camera after adjusting any event settings as sometimes the camera needs it.
Remember you can reboot the camera remotely using the interface, you don’t need to actually kill the power to reboot it.
Okay thx, will do that. I alsow want to schedule only on weekdays monday/friday. I think that i have to use the “weekdays” setting. Like: 1111100, or if the first day is sunday: 0111110. What to use?
Hi Greg,
Im use this http://www.axis.com/techsup/cam_servers/tech_notes/live_video_medium.htm
template to access my cam.
As I can validate the username and password entry through the browser for a camera axis 207 w without put this data?
If I understand you correctly you wish to know if you can access the live images from the camera without entering the username and password?
Yes this can be done very simply. On the setup pages click the “users” link in the menu under the “basic setup” heading. You will see a checkbox titled “Enable anonymous viewer login (no user name or password required)”. Check this box and save to enable anonymous access. Note that every user who knows your camera’s IP address will now have access to live images but they will not have access to the admin setup pages.
Very helpful site Greg. Well done. I have a problem similar to [John March 5th, 2008] above, where my timed ftp uploads just stop every day to two and the camera has to be restarted. Does anyone know what might be causing this or, as a workaround, how can I get the camera to restart automatically at a set time of day or interval?
Thanks!
If internett connection is lost for a while, the
camera does not resume uploading pictures when connection
is back - Any idea how to fix this ?
As far as I was aware the script shouldn’t stop running if you just lose your Internet connection temporarily but if it does you would need to look at creating a second script in the camera which will initiate the FTP script say once every 15 minutes. This would get around the problem.
Thanks Greg.
I guess the script stop running if internet connection is lost. I have tried with 2 different 207 and 1 207w camera. I noticed a couple of other people posting have similar problems - Camera at random stop uploading. At my current location it’s been working with no problems, but at the other location where it fails I know the internet connection fail several times a day. Tested setting the camera to upload every 1 minute - Working OK - Disconnected the network cable for 2 minutes and reconnected, but then camera refuse to upload unless I restart it. Ill try to make a script as you suggested and will report back the result (Script also if it work)
More try and fail, and as usual the error was between the chair and monitor. In Event E0 Actions A0 I had set order to 1 instead of 0 - Setting it to 0 (As your guide said) made the trick. Thanks again Greg for this guide and your input.
Glad you guys figured out that the script stops running if the connection goes down temporarily. Still looking for a script to initiate the FTP periodically. Any suggestions?
How can i delete the actions like A1, A2, A3….
everytime i paste this: http://[camera IP]/axis-cgi/admin/param.cgi?action=add&group=Event.E0.Actions&template=ftpaction
i get a new action.
thx
marc
Hi Marc,
I’m not sure if there is an easy way to just delete an action but have you tried using the ‘plain config’ tool and deleting the event? Does this not also delete the action?
Dear Greg,
Thank you very much for such an explanation.
What i would like to do, is to keep a serie of images on my server. So is there a possibility to not overwritte the last pictures send to the FTP server. And have for instance a serie like :
image1.jpg; image2.jpg; … image900.jpg…
or
imagedatehour.jpg; imagedatehour+1hour.jpg, etc …
It would be wonderfull if such possibility exists. Indeed is to keep an eye on my babies (i am installing the 207w in their room), and at the end of the day, be able to check the pictures.
Yes, such a possibility does indeed exist.
Under the entry for filename you will see an entry for ’suffix’. This allows you to add a suffix to the filename making each image unique.
Input the following to add a date/time suffix to each image filename:
%y-%m-%d_%H-%M-%S-%f
Thank you Greg.
I will try and let you know. My Livebox (french wifi modem) is actually off …
Hello,
I was able to configure my Axis 207MW using this howto (thanks to its author!).
However I don’t really understand how to delay the upload and that it upload a file, say, every five minutes. In fact I don’t really understand what’s the difference between:
post/pre trigger size
post/pre trigger interval, interval unit
best effort interval, duration, interv. unit, duration unit
I tried different settings and the results are:
- without any settings it uploads a file as much as possible
- with 300 seconds in post/pre trigger it sometimes send a
file every seconds, sometimes every 5 minutes. But after
some unpredictable time it stops sending files. Once it
was after 6 hours and another time after 20 minutes.
It’s a little sad that this webcam offers high level events, but not a simple as timeout…
Anyway thanks in advance for your comments
Hello,
I’ve asked AXIS support for this scheduled event problem and they answered me (in less than 12 hours!) sending me some PDF explaining how to set up different scheduled events. If you want I could send you these files.
Kind regards
I’m glad you got it sorted and found my guide useful. We will already have the API documents from Axis but thanks for the offer.
Hello,
thank you for this great tutorial.
i’ve tried to set the effort-interval to 1 hour (3600000, unit s), but it doesn’t work!
Setting to 60 (unit m), or 1 (unit h) has no effect..
How can i set the event interval time to one hour?
Thanks in advance for your comments
Try setting the following:
Best Effort Interval: 3600000, Best Effort Duration: 0, Best Effort Interval Unit: h, Best Effort Duration Unit: s
Greg, you are great - it works!
But why is the unit setting needed at all?
And how’s the logic? I don’t get it
Anyway, thank you for your help.
Hi
I need to know if you have a model of ip camera that sends a “one” (1) image per second to ftp server.
in the manuals do not specify this information
regards.
¿?
Almost every IP camera will have the functionality to send an image by FTP every second. This guide shows how to do just that using an Axis 207/W/MW.
I have tested with cameras (no axis)
and not send an image 1 per second by FTP.
question:
Axis 207/W/MW have connection PPPoE?
Axis 207/W/MW send 1 image per second by FTP?
regards
The Axis 207, 207W or 207MW has an RJ45 Ethernet connection which must be attached to a router.
And yes, this guide describes how to have the camera send an image by FTP every second.
quote:
“From the setup pages in your Axis 207 camera you may be forgiven for thinking that it’s only capable of sending images by email based on motion detection.
but send a constant stream of images to a server using FTP?”
r2 say: but send images (1 per second) by FTP based on motion detection? (no constant)
Sending images 1 per second by motion detection doesn’t make sense.
The camera will send images when it detects motion. The amount of images it sends can be fully configured, with pre-/post-buffer images included. The Axis 207 models of camera can also send video files (with audio) to an FTP server when motion is detected.