We have used asterisk for years now. I even contributed to the code by writing the land-line SMS module.
For those that don't know, asterisk (AKA "*") is basically a phone system. It allows traditional phone lines, digital phone lines and internet telephone connections to all inter-work (if you have the right bits of equipment). It does voicemail and voice prompt/response systems as well.
However, after years of using * I am now using SIP directly. I wish I had done it years ago. In just under two weeks I have coded a complete SIP call router that meets our needs (centrex type operation, hunt groups, etc) including some special handling for the mobile service.
I have also coded a call recording SIP proxy that integrates in - it is a separate stateless (from SIP point of view) proxy that adds Via and Record-Route headers and changes the SDP to allow it to force A-law and capture the call to disk. It makes a native A-law stereo wav file and a script will convert to MP3 or OGG if needed and email. Extra headers in the INVITE say who to email. Nice and general purpose and easy to scale. Probably easy to integrate with other SIP systems.
I have also coded a simple SIP media endpoint that plays wav files, either as call progress (183) or as call content. Again, a separate module so easy to scale.
But this is just the start - now I am using SIP I discover we get more from some carriers. One even provides call divert info, so a call diverted to us shows as such and we are told what number did the divert even. This is useful proper telco carrier stuff. Just need to get the other carrier to do the same.
What it does mean is that I think we are the first telco to do anonymous call rejection on mobiles now. Well, maybe others do now, but when the law came in, in 2003, the mobiles were not interested in complying and the regulators decided to do nothing (good having laws like that!).
So, two weeks solid coding and something good to show for it. We won't be ditching * completely as it will still do IAX relaying and voicemail and a few things. But it was proving unstable and hard to scale. We have a few weeks of tinkering and testing I am sure, but I can start on some other work in the mean time.