PSTN without line supervision

As you may or may not know, some phone companies suck!
One such company is the one providing phone service at my location. They will not add line supervision (GroundStart or KewlStart) unless I upgrade to a business line and pay $25 more per month and a $100 set-up fee.

So here is my question, is there a way via a dialplan or something to basically check after each ring and see if the caller hung up?
Then if the caller hung up exit the dialplan
Something like:
exten => s,1,SetCallerID(“L1: ${CALLERIDNUM}” <${CALLERIDNUM}>)
exten => s,2,Answer()
exten => s,3,Dial(${GROUP1},4,tr)
exten => s,4,LineCheck(${ZAP/1})
exten => s,105,Hangup()
exten => s,5,Dial(${GROUP1},4,tr)
exten => s,6,LineCheck(${ZAP/1})
exten => s,107,Hangup()
exten => s,7,Dial(${GROUP1},4,tr)
exten => s,8,LineCheck(${ZAP/1})
exten => s,109,Hangup()
exten => s,9,Dial(${GROUP1},4,tr)
exten => s,10,LineCheck(${ZAP/1})
exten => s,111,Hangup()
exten => s,11,Answer()
exten => s,12,Wait(1)
exten => s,13,VoiceMail,su101
exten => s,114,VoiceMail,sb101
exten => s,115,Hangup()
exten => s,14,Hangup()
exten => h,1,Hangup()

I am running FC4 with Asterisk Version and 2 fxo lines on a TDM400P

have you tried using these in zapata.conf

busydetect: If enabled, Asterisk will analyze the audio coming in on the line during a call or a dial attempt to attempt to recognize busy signals. This is useful on analog trunk interfaces both to detect a busy signal when dialing out, and for detecting when the person has hung up. See also Disconnect Supervision. Be sure that you don’t use this on digital interfaces like QuadBri cards and so on. Otherwise you will run in “broken calls” problems. default=no

busycount: This option requires busydetect=yes. You can specify how many busy tones to wait before hanging up. The default is 3, but better results can be achieved if set to 6 or even 8. The higher the number, the more time is needed to detect a disconnected channel, but the lower the probability mistaking some other sound as being a busy tone.

callprogress: Asterisk can attempt to monitor the state of the call to listen for a ringing tone, busy tone, congestion tone, and sounds indicating that the line has been answered. It appears that this feature is independent of the busydetect feature; it seems that both can run in parallel, and both will independently attempt to recognize a busy tone. The callprogress feature is highly experimental and can easily detect false answers, so don’t count on it being very accurate. Also, it is currently configured only for standard U.S. phone tones. Default: no.
callprogress = yes

To no avail.

Hmm…maybe i miss something, but i dont get it…

What is the problem right now ?
Phones still ringing if the caller hung up already ?

Why you have this line ?

exten => s,2,Answer()

Take it out, you dont want to answer the call when its routed into a normal dial command.

As soon as the caller hangs up, no ring should be present anymore.

Or do you have some problems atm i cant see ?

Why you have this line?
exten => s,2,Answer()

You have to answer the line or it will keep ringing on the pots line and not the asterisk phones.

The problem is when someone calls it rings all the asterisk phones 4 times, even if the caller hung up after say 2 rings, it also goes to voice mail and records 2 seconds of busy signal before it reads the busy and disconnects. So basically any time someone calls it ties up the line for 20 seconds even if they hang up after 1 ring.

And it records false V-mail.

You can set the minimum voicemail length so it wouldnt record the busy signal but it still wouldnt solve the supervision issue

[quote=“ccolumbu”]>>Why you have this line?

exten => s,2,Answer()

You have to answer the line or it will keep ringing on the pots line and not the asterisk phones.

That is not correct, you might want to check your dialplan again.
You dont have to answer a call to let a phone ring.