How to make an HTTP request for incoming/outgoing calls? I am looking for a way which will allow me to make HTTP requests to my web server when there is an incoming call (or outgoing/missed called etc if possible). 

This is so that I can log the information (CallerID primarily) and perform actions in my own system based on the number that is calling or being called on the handset.

I need the request to be made while the call is either ringing or in progress - i.e. what is happening now, not what happened previously.

An example use for this is so that I can present information about a caller on another computer which is connected to my system when someone calls.

An alternative to HTTP would be fine, such as SMTP or some other notification/external communication.
You might want to take a look at Tasker, the mighty automation solution on Android. I have not setup something as you request, but it's definitly possible, and basically should work like this:


Condition: Event → Phone Ringing
Task: either HTTP GET or HTTP POST to your server's URL.


For the task, you can make use of the many variables Tasker has preset (see: Tasker UserGuide, Variables). In your case: Call Name / Number/ Date / Time (In) = %CNAME / %CNUM / %CDATE / %CTIME

You might need to play a little with it to get it working exactly as you wish. Hint: A free trial version of Tasker is available via its homepage (7-day trial; on day 6 export all your settings, on day 7 uninstall, re-install, and import all settings for another 7 days, the dev said so). I use Tasker for years, it never let me down, and I don't regret a single cent from its fee ;) Couldn't do without it anymore...