v7.5.1 onward will let you set the max time for the script. It will be achieved by setting the $RV[CallMaxTime] to the maximum time allowed (in seconds).
Current versions do not have an option to set max time limit for a call.
Does your PBX play a disconnect tone when caller hangs up? Are you having trouble making the changes in ConfigLine.xml to detect this disconnect tone?
(instructions are here: http://www.voiceguid...ctiondetect.htm )
As far as the scripts themselves:
Each module that plays a sound file and expects a response will only replay the message the specified number of times. If a module that expects a response from caller does not receive a response after a set number of replays then the call will be hung up - or a 'timeout' or a 'fail' path will be taken if it is set in that module
From script design point of view, a 'timeout' or 'fail' path from one module that expects a response from caller should not point to another module that again expects some response from caller. And such paths should not be used to create loops that will result in script cycling through a set of modules over and over all by itself.
The voicemail system scripts that are supplied with VoiceGuide will hangup the call if there is no response from caller. The voicemail scripts will not loop through any modules if there is no response from caller.