Is Asterisk the right tool?

I want to know if I can use Asterisk to set up a particular set of services in my house. I use a SIP service(Callcentric) to get my phone calls. I have an Cisco SPA112 ATA which is hooked up to a wireless phone with multiple extensions - so basic phone service is covered and that part works well.

I would like to be able to capture the incoming caller id and take some actions. I would like to:

  • act on the incoming caller ID on a computer connected to my network;
  • lookup the caller ID in my personal address book(on a Mac);
  • play different ringtones based on the caller ID;
  • detect when my cell phones are in the house and send them the caller ID information as a notification;
  • ideally redirect selected calls to my iPhone VOIP app; and
  • manage voicemail messages based on the caller ID - sending some via emails while storing others for later review and deletion.

I can do some of these functions via the Callcentric website - but they don’t provide an API to interact with stored voicemails and they don’t allow me to programmatically change my calling rules.

I have already set up Asterisk and FreePBX on a Beaglebone Black and assigned it an extension on my Callcentric account and that basically works.

What I want to know - is there a fairly simple way to have Asterisk send information to another program I will write in Python to take the above actions. I am not looking to replace the SPA112 for basic phone service - I really want to trigger events and manage voicemail on my local network.

I am comfortable with the programming end of this problem – but I am new to Asterisks and I haven’t found any examples of what I am trying to do. Of course if Asterisks is able to perform these functions, all the better - one less thing I have to do.
Thanks for any suggestions.

There are whole chapters on AMI and AGI at asteriskdocs.org

You can also use System, or URL access, with CURL.