I wonder if some one can advise me regarding a job that i've been considering taking.
An old client of mine wants me to create a web application that will include an online video/audio chat between a professional and a client. When both are online and chatting, the application should count the time. once the chatting is officially over, the amount of time should be sent to a php script for payment processing.
I've been programming as3.0, php, mysql on a daily basis for the last few years and I consider myself and expert. I've worked on ecommerce, payment gateways, flash-php integration, etc, but I never worked with FMS & video streaming.
I'm reluctant to take this job as I'm not sure how steep is the learning curve for FMS3 and video streaming. I'm also not really sure about the job from a legal point of view. I mean, online video chats can get a bit buggy and unstable, how secured are they? Did any one worked on a similar application before and has any suggestions or thoughts ?
"Steep" is sort of a relative term, and will be different in the context of any given developer's skillset (if you have a strong CS background, it will be less steep than if you are limited to web application development).
There are some prinicles that are completely foriegn to new developers coming from web application development. You'll need to gain understanding of the application and application instance (and lifetime) architecture, you'll need some understanding of how resources are allocated on the server side, and you'll need to understand how to properly configure FMS (or other RTMP server if you choose not to use FMS), and you'll need some understanding of dealing with varied network conditions and how they affect the streaming experience. You'll also need to gain understanding of how to secure the FMS application against abuse.
On the client side, you'll need to understand firewall and proxy concerns, device incompatibilities (not every camera / machine combination will work), environmental variables (for example, how to properly use AEC), and how to manage and maintain netconnections and netstreams (and how to deal with it when they break). You'll also need to understand that with every new flashplayer release, there is potential for something to come up broken (this has been true in the past few releases), and have to wait for another update for a fix. You also need to set your client's expectations properly... while most users will have a good experience, some will not, and a few will not be able to use the application at all.
When you say "buggy and unstable", there are actually a few parts to this. As I see things, the 'buggy" part tends to stem from applications that were developed without a solid understanding of the client/server architecture of RTMP applications, or recklessly without any means of handing network issues or human factors. If find that unstable applications tend to be the result of having been developed and deployed without understanding of the architecture or limitations of FMS.
As for security, it's up to you to secure your application. While FMIS supports a few limited methods of securing the server (SWF verification, IP allow / deny) they are somewhat wide-net in nature, and in my experience, don't offer the fine-grained access control you can achieve with application level code and interaction with external services.
While it's not all that difficult to get an application up and running, there is quite a bit to learn when it comes to building (what I consider to be) properly developed applications. If you're uncomfortable diving in to RTMP application development on a paid project at this point, you might consider farming out that part of the application to someone with some practical experience.