Asterisk Baby Monitor
Asterisk can be configured as a baby monitor. The cool thing is that it can be multi-baby and multi-parent, and can even be configured for remote access. I set mine up with an old corded speaker phone in the baby's room, and a cordless phone as the parent unit.
It uses a MeetMe conference bridge, with the parent's microphone muted, and the baby's earpiece muted.
Configuring The Monitor
meetme.conf
Here's how you create the conference bridge:
[rooms] conf => 222
extensions.conf
First, create the extension that the parent unit(s) will dial in to. The lowercase m in the MeetMe function will mute the parent's microphone, so as not to transmit sound in to the baby's room.
exten => 222,1,NoOp(>>>> CONNECTING TO MONITOR MODE FROM REMOTE PHONE <<<<) exten => 222,n,MeetMe(222,m)
Next, create a context for the baby unit(s). The lowercase t MeetMe option sets it to talk-only, so the earpiece of the phone should not play any conversation from the parent unit(s). The q option also suppresses the notification that plays when someone joins the conference.
[BABY-MONITOR] exten => s,1,NoOp(>>>> CONNECTING TO MONITOR MODE FROM BABY'S ROOM <<<<) exten => s,n,MeetMe(222,tq)
chan_dahdi.conf
This creates an analogue line to put in to the baby's room. It's set with the BABY-MONITOR context and immediate=yes. The result is that it will automatically go to the s extension in that context when the handset is picked up (or if you activate speakerphone, if the phone has it), without the need to dial. It also has the txgain set to -100, just to further suppress any sounds that may be sent to the phone.
[channels] group=4 context=BABY-MONITOR signalling=fxo_ks immediate=yes txgain=-100 channel => 4