Here's what I've got running at home:
Server: Virtual Machine running Ubuntu Server w/ tvheadend
HTPC living room: OpenElec PVR on a Asus E45M1-M Pro w/ SSD (the whole box is passively cooled) in a Zalman HD503
HTPC bedoom: XBMC Eden on ATV2
OpenElec is basically XBMC on a minimal linux kernel. Recently, they've added support for XBMC's PVR branch, which works great w/ tvheadend. It shows the EPG data my tvheadend grabs every night, allows me to watch live tv (and record, but I haven't tried this) and I can even channel surf (which wasn't possible w/out the PVR branch). Fortunately, my provider sends unencrypted IPTV streams, so not sure how well this will work for you.
I believe OpenElec allows the Asterisk plugin to be installed, not sure (need to check).
Unfortunately, the ATV2 isn't very powerful, which results in poor user experience. I wanted to use it anyway, so it's hooked up to a smaller screen in the bedroom. Note that I'm not running a PVR branch on the ATV2, so no channel surfing there (I connect to tvheadend as a htps video source).
If I could do this again, I'd probably:
- never get the ATV2
- get a smaller HTPC case (chose this one because it looked nice, had buttons on the front and a screen. I wanted to be able to use this is a audio player w/out having to turn on my tv, but navigation w/ the small buttons and screen is not very nice, rather use an Android app or something for that -- or just turn the TV on to create a playlist and then turn it off)
- maybe get a MoBo w/ built-in WiFi