Is there any way to make Asterisk see a ring come in, ring the phones, but do NOT actually pick up the line until someone picks up a phone? I have two POTS lines into a TDM4xx card and one VOIP line. The POTS lines ring through Asterisk but also still ring a few analog phones that have yet to be replaced. The darn * box picks up the line, even tho the caller still hears ringing, so when I pick up an analog phone, the line is already in use. Same thing is happening with my VOIP line. I have simultaneous ring setup on it to ring my cell phone at the same time it is ringing the actual voip line. Again, the blasted * box picks up the call, keeps sending a ring sound to the caller, but I can not answer the call from my cell phone!!! The d&*m box has already “answered” it.
This causes no end of problems, like mentioned above, but also bills the caller for the call even if they hang up before voicemail kicks in. Not good.
Actually, I don’t think you don’t need an Answer() command in here at all.
Let the object (SIP phone or Voicemail() application) return the result code that best describes what’s going on. For example, a SIP phone may have Do not Disturb active, or it may be avaialble. The Answer() command is more or less implied when a phone accepts an incoming call request.
Many applications, like Voicemail(), Background(), or Playback(), have Answer() built in, so it’s redundant to use it. It’s sometimes useful only because it can help establish a channel earlier which keeps some messages or sound files from being clipped off at the front of playback. But functionally, it’s not necessary.