In the directory.agi file, there is a problem where the multi choice menu breaks without a valid keycode but then pauses making the end user think the directory is not working.
here is a fix i creted for this:
74,78c74,96
< foreach($matches as $idx => $match){
< $ret=$dir->getKeypress('for',$validkeys,0);if(trim($ret['result'])){break;}
< $ret=$dir->readContact($matches[$idx],$validkeys,0);if(trim($ret['result'])){break;}
< $ret=$dir->getKeypress('press',$validkeys,0);if(trim($ret['result'])){;break;}
< $ret=$dir->agi->say_digits($idx+1,$validkeys);if(trim($ret['result'])){$ret['result']=chr($ret['result']);break;}
---
> while(1){
> foreach($matches as $idx => $match){
> $ret=$dir->getKeypress('for',$validkeys,0);
> if(trim($ret['result'])){
> break;
> }
> $ret=$dir->readContact($matches[$idx],$validkeys,0);
> if(trim($ret['result'])){
> break;
> }
> $ret=$dir->getKeypress('press',$validkeys,0);
> if(trim($ret['result'])){
> break;
> }
> $ret=$dir->agi->say_digits($idx+1,$validkeys);
> if(trim($ret['result'])){
> $ret['result']=chr($ret['result']);
> break;
> }
> }
> sleep(1);
> debug("got result: ".$ret['result']);
> if($ret['result']>0){break;}