Major problem with concept of ringing/answering


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.


Could you send a bit of your extensions.conf file?

We may be able to help point out a few changes you could make…


These are the two Zap channels from PSTN

exten => s,1,NoOp
exten => s,2,Answer
exten => s,3,Macro(setmohtype)
exten => s,4,Dial(${PHONE1}&${WIFI1},15,Tt)
exten => s,5,Voicemail(u${PHONE1VM})
exten => s,6,Hangup
exten => s,102,Voicemail(b${PHONE1VM})
exten => s,103,Hangup

exten => h,1,Macro(record-cleanup)

exten => s,1,Answer
exten => s,2,Macro(setmohtype)
exten => s,3,Dial(${PHONE1}&${PHONE2}&${WIFI1},15,Tt)
exten => s,4,Voicemail(u${PHONE2VM})
exten => s,5,Hangup
exten => s,102,Voicemail(b${PHONE2VM})
exten => s,203,Hangup

exten => h,1,Macro(record-cleanup)
                                                              694,1         79%


first thing would be to move the answer commands to after you ring your extensions !!


Hmm, then would I need two Answer commands? One for Unavailable voicemail and one for Busy voicemail?

exten => s,1,NoOp
exten => s,2,Macro(setmohtype)
exten => s,3,Dial(${PHONE1}&${WIFI1},15,Tt)
exten => s,4,Answer
exten => s,5,Voicemail(u${PHONE1VM})
exten => s,6,Hangup
exten => s,102,Answer
exten => s,103,Voicemail(b${PHONE1VM})
exten => s,104,Hangup

exten => h,1,Macro(record-cleanup)


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.