Changeset 5340

Show
Ignore:
Timestamp:
12/04/07 14:10:53 (5 years ago)
Author:
p_lindheimer
Message:

add Extensions quick-pick and allow hunt calls with confirmation (which requires changes to core not yet checked in but coming shortly

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/branches/2.4/findmefollow/page.findmefollow.php

    r4909 r5340  
    187187 
    188188      <tr> 
    189         <td><a href="#" class="info"><?php echo _("Disable as Default")?><span><?php echo _('By default (not checked) any call to this extension will go to this FollowMe instead, including directory calls by name from IVRs. If checked, calls will go only to the extension.<BR>However, destinations that specify FollowMe will come here.<BR>Checking this box is often used in conjunction with VmX Locater, where you want a call to ring the extension, and then only if the caller chooses to find you do you want it to come here.')?></span></a>:</td> 
     189        <td><a href="#" class="info"><?php echo _("Disable")?><span><?php echo _('By default (not checked) any call to this extension will go to this Follow-Me instead, including directory calls by name from IVRs. If checked, calls will go only to the extension.<BR>However, destinations that specify FollowMe will come here.<BR>Checking this box is often used in conjunction with VmX Locater, where you want a call to ring the extension, and then only if the caller chooses to find you do you want it to come here.')?></span></a>:</td> 
    190190        <td><input type="checkbox" name="ddial" value="CHECKED" <?php echo $ddial ?>  /></td> 
    191191      </tr> 
     
    197197        </td> 
    198198        <td> 
    199           &nbsp; 
    200199          <select name="pre_ring"/> 
    201200          <?php 
     
    209208      </tr> 
    210209 
    211  
    212       <tr
    213         <td> <a href="#" class="info"><?php echo _("Ring Strategy:")?> 
     210      <tr> 
     211      <td
     212        <a href="#" class="info"><?php echo _("Ring Strategy:")?> 
    214213        <span> 
    215214          <b><?php echo _("ringallv2")?></b>:  <?php echo _("ring primary extension for initial ring time followed by all additional extensions until one answers")?><br> 
     
    221220          <b><?php echo _("firstnotonphone")?></b>:  <?php echo _("ring only the first channel which is not offhook - ignore CW")?><br> 
    222221        </span> 
    223         </a></td> 
    224         <td> 
    225           &nbsp;&nbsp;<select name="strategy"/> 
     222        </a> 
     223        </td> 
     224        <td> 
     225          <select name="strategy"/> 
    226226          <?php 
    227227            $default = (isset($strategy) ? $strategy : 'ringall'); 
     
    234234        </td> 
    235235      </tr> 
    236       <tr> 
    237         <td><a href="#" class="info"><?php echo _("Alert Info")?>:<span><?php echo _('You can optionally include an Alert Info which can create distinctive rings on SIP phones.')?></span></a></td> 
    238         <td><input size="18" type="text" name="dring" value="<?php  echo $dring ?>"></td> 
    239       </tr> 
    240   <tr> 
    241     <td><a href="#" class="info"><?php echo _("Confirm Calls")?><span><?php echo _('Enable this if you\'re calling external numbers that need confirmation - eg, a mobile phone may go to voicemail which will pick up the call. Enabling this requires the remote side push 1 on their phone before the call is put through. This feature only works with the ringall/ringall-prim  ring strategy')?></span></a>:</td> 
    242     <td> <?php if (!function_exists('recordings_list')) { echo _("System Recordings not installed. Option Disabled"); } else { ?> 
    243       <input type="checkbox" name="needsconf" value="CHECKED" <?php echo $needsconf ?>  /></td> 
    244 <?php } ?> 
    245   </tr> 
    246 <?php if(function_exists('recordings_list')) { //only include if recordings is enabled?> 
    247   <tr> 
    248     <td><a href="#" class="info"><?php echo _("Remote Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if 'Confirm Calls' is enabled.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
    249     <td> 
    250       &nbsp;&nbsp;<select name="remotealert"/> 
    251       <?php 
    252         $tresults = recordings_list(); 
    253         $default = (isset($remotealert) ? $remotealert : ''); 
    254         echo '<option value="">'._("Default")."</option>"; 
    255         if (isset($tresults[0])) { 
    256           foreach ($tresults as $tresult) { 
    257             echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
    258           } 
    259         } 
    260       ?> 
    261       </select> 
    262     </td> 
    263   </tr> 
    264   <tr> 
    265     <td><a href="#" class="info"><?php echo _("Too-Late Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if the call has already been accepted before they push 1.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
    266     <td> 
    267     &nbsp;&nbsp;<select name="toolate"/> 
    268       <?php 
    269         $tresults = recordings_list(); 
    270         $default = (isset($toolate) ? $toolate : ''); 
    271         echo '<option value="">'._("Default")."</option>"; 
    272         if (isset($tresults[0])) { 
    273           foreach ($tresults as $tresult) { 
    274             echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
    275           } 
    276         } 
    277       ?> 
    278       </select> 
    279     </td> 
    280   </tr> 
    281 <?php } ?> 
    282       <tr> 
    283         <td valign="top"><a href="#" class="info"><?php echo _("Follow-Me List")?>:<span><br><?php echo _("List extensions to ring, one per line.<br><br>You can include an extension on a remote system, or an external number by suffixing a number with a pound (#).  ex:  2448089# would dial 2448089 on the appropriate trunk (see Outbound Routing).")?><br><br></span></a></td> 
    284         <td valign="top">&nbsp; 
     236 
     237      <tr> 
     238        <td> 
     239          <a href=# class="info"><?php echo _("Ring Time (max 60 sec)")?> 
     240            <span> 
     241              <?php echo _("Time in seconds that the phones will ring. For all hunt style ring strategies, this is the time for each iteration of phone(s) that are rung")?> 
     242            </span> 
     243          </a> 
     244        </td> 
     245        <td><input size="4" type="text" name="grptime" value="<?php  echo $grptime?$grptime:20 ?>"></td> 
     246      </tr> 
     247 
     248      <tr> 
     249        <td valign="top"><a href="#" class="info"><?php echo _("Follow-Me List")?>:<span><br><?php echo _("List extensions to ring, one per line, or use the Extension Quick Pick below.<br><br>You can include an extension on a remote system, or an external number by suffixing a number with a pound (#).  ex:  2448089# would dial 2448089 on the appropriate trunk (see Outbound Routing).")?><br><br></span></a></td> 
     250        <td valign="top"> 
    285251<?php 
    286252    $rows = count($grplist)+1;  
     
    290256    ($rows < 5) ? 5 : (($rows > 20) ? 20 : $rows); 
    291257?> 
    292           <textarea id="grplist" cols="15" rows="<?php  echo $rows ?>" name="grplist"><?php echo implode("\n",$grplist);?></textarea><br> 
    293            
    294           <input type="submit" style="font-size:10px;" value="<?php echo _("Clean & Remove duplicates")?>" /> 
    295         </td> 
    296       </tr> 
     258          <textarea id="grplist" cols="15" rows="<?php  echo $rows ?>" name="grplist"><?php echo implode("\n",$grplist);?></textarea> 
     259        </td> 
     260      </tr> 
     261 
     262      <tr> 
     263        <td> 
     264        <a href=# class="info"><?php echo _("Extension Quick Pick")?> 
     265          <span> 
     266            <?php echo _("Choose an extension to append to the end of the extension list above.")?> 
     267          </span> 
     268        </a> 
     269        </td> 
     270        <td> 
     271          <select onChange="insertExten();" id="insexten"> 
     272            <option value=""><?php echo _("(pick extension)")?></option> 
     273  <?php 
     274            $results = core_users_list(); 
     275            foreach ($results as $result) { 
     276              echo "<option value='".$result[0]."'>".$result[0]." (".$result[1].")</option>\n"; 
     277            } 
     278  ?> 
     279          </select> 
     280        </td> 
     281      </tr> 
     282 
     283<?php if(function_exists('recordings_list')) { //only include if recordings is enabled?> 
     284      <tr> 
     285        <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>To add additional recordings please use the \"System Recordings\" MENU to the left")?></span></a></td> 
     286        <td> 
     287          <select name="annmsg"/> 
     288          <?php 
     289            $tresults = recordings_list(); 
     290            $default = (isset($annmsg) ? $annmsg : ''); 
     291            echo '<option value="">'._("None"); 
     292            if (isset($tresults)) { 
     293              foreach ($tresults as $tresult) { 
     294                echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]; 
     295              } 
     296            } 
     297          ?>     
     298          </select>    
     299        </td> 
     300      </tr> 
     301<?php } else { ?> 
     302      <tr> 
     303        <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>You must install and enable the \"Systems Recordings\" Module to edit this option")?></span></a></td> 
     304        <td> 
     305          <?php 
     306            $default = (isset($annmsg) ? $annmsg : ''); 
     307          ?> 
     308          <input type="hidden" name="annmsg" value="<?php echo $default; ?>"><?php echo ($default != '' ? $default : 'None'); ?> 
     309        </td> 
     310      </tr> 
     311 
     312<?php } if (function_exists('music_list')) { ?> 
     313      <tr> 
     314        <td><a href="#" class="info"><?php echo _("Play Music On Hold?")?><span><?php echo _("If you select a Music on Hold class to play, instead of 'Ring', they will hear that instead of Ringing while they are waiting for someone to pick up.")?></span></a></td> 
     315        <td> 
     316          <select name="ringing"/> 
     317          <?php 
     318            $tresults = music_list($amp_conf['ASTVARLIBDIR']."/mohmp3"); 
     319            $cur = (isset($ringing) ? $ringing : 'Ring'); 
     320            echo '<option value="Ring">'._("Ring")."</option>"; 
     321            if (isset($tresults[0])) { 
     322              foreach ($tresults as $tresult) { 
     323                echo '<option value="'.$tresult.'"'.($tresult == $cur ? ' SELECTED' : '').'>'.$tresult."</option>\n"; 
     324              } 
     325            } 
     326          ?> 
     327          </select> 
     328          </td> 
     329        </tr> 
     330<?php } ?> 
     331 
    297332      <tr> 
    298333        <td><a href="#" class="info"><?php echo _("CID Name Prefix")?>:<span><?php echo _('You can optionally prefix the Caller ID name when ringing extensions in this group. ie: If you prefix with "Sales:", a call from John Doe would display as "Sales:John Doe" on the extensions that ring.')?></span></a></td> 
     
    300335      </tr> 
    301336 
    302  
    303       <tr> 
    304         <td><?php echo _("Ring Time (max 60 sec)")?>:</td> 
    305         <td><input size="4" type="text" name="grptime" value="<?php  echo $grptime?$grptime:20 ?>"></td> 
    306       </tr> 
     337      <tr> 
     338        <td><a href="#" class="info"><?php echo _("Alert Info")?>:<span><?php echo _('You can optionally include an Alert Info which can create distinctive rings on SIP phones.')?></span></a></td> 
     339        <td><input size="18" type="text" name="dring" value="<?php  echo $dring ?>"></td> 
     340      </tr> 
     341 
     342      <tr> 
     343        <td><a href="#" class="info"><?php echo _("Confirm Calls")?><span><?php echo _('Enable this if you\'re calling external numbers that need confirmation - eg, a mobile phone may go to voicemail which will pick up the call. Enabling this requires the remote side push 1 on their phone before the call is put through. This feature only works with the ringall/ringall-prim  ring strategy')?></span></a>:</td> 
     344        <td>  
     345          <input type="checkbox" name="needsconf" value="CHECKED" <?php echo $needsconf ?>  /> 
     346        </td> 
     347      </tr> 
     348 
    307349<?php if(function_exists('recordings_list')) { //only include if recordings is enabled?> 
    308   <tr> 
    309     <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>To add additional recordings please use the \"System Recordings\" MENU to the left")?></span></a></td> 
    310     <td> 
    311       &nbsp;&nbsp;<select name="annmsg"/> 
    312       <?php 
    313         $tresults = recordings_list(); 
    314         $default = (isset($annmsg) ? $annmsg : ''); 
    315         echo '<option value="">'._("None"); 
    316         if (isset($tresults)) { 
    317           foreach ($tresults as $tresult) { 
    318             echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]; 
    319           } 
    320         } 
    321       ?>     
    322       </select>    
    323     </td> 
    324   </tr> 
    325 <?php } else { ?> 
    326   <tr> 
    327     <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>You must install and enable the \"Systems Recordings\" Module to edit this option")?></span></a></td> 
    328     <td> 
    329       <?php 
    330         $default = (isset($annmsg) ? $annmsg : ''); 
    331       ?> 
    332       <input type="hidden" name="annmsg" value="<?php echo $default; ?>"><?php echo ($default != '' ? $default : 'None'); ?> 
    333     </td> 
    334   </tr> 
    335 <?php } if (function_exists('music_list')) { ?> 
    336   <tr> 
    337     <td><a href="#" class="info"><?php echo _("Play Music On Hold?")?><span><?php echo _("If you select a Music on Hold class to play, instead of 'Ring', they will hear that instead of Ringing while they are waiting for someone to pick up.")?></span></a></td> 
    338     <td> 
    339       &nbsp;&nbsp;<select name="ringing"/> 
    340       <?php 
    341         $tresults = music_list($amp_conf['ASTVARLIBDIR']."/mohmp3"); 
    342         $cur = (isset($ringing) ? $ringing : 'Ring'); 
    343         echo '<option value="Ring">'._("Ring")."</option>"; 
    344         if (isset($tresults[0])) { 
    345           foreach ($tresults as $tresult) { 
    346             echo '<option value="'.$tresult.'"'.($tresult == $cur ? ' SELECTED' : '').'>'.$tresult."</option>\n"; 
    347           } 
    348         } 
    349       ?> 
    350       </select> 
    351       </td> 
    352     </tr> 
     350      <tr> 
     351        <td><a href="#" class="info"><?php echo _("Remote Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if 'Confirm Calls' is enabled.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
     352        <td> 
     353          <select name="remotealert"/> 
     354          <?php 
     355            $tresults = recordings_list(); 
     356            $default = (isset($remotealert) ? $remotealert : ''); 
     357            echo '<option value="">'._("Default")."</option>"; 
     358            if (isset($tresults[0])) { 
     359              foreach ($tresults as $tresult) { 
     360                echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
     361              } 
     362            } 
     363          ?> 
     364          </select> 
     365        </td> 
     366      </tr> 
     367      <tr> 
     368        <td><a href="#" class="info"><?php echo _("Too-Late Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if the call has already been accepted before they push 1.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
     369        <td> 
     370        <select name="toolate"/> 
     371          <?php 
     372            $tresults = recordings_list(); 
     373            $default = (isset($toolate) ? $toolate : ''); 
     374            echo '<option value="">'._("Default")."</option>"; 
     375            if (isset($tresults[0])) { 
     376              foreach ($tresults as $tresult) { 
     377                echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
     378              } 
     379            } 
     380          ?> 
     381          </select> 
     382        </td> 
     383      </tr> 
    353384<?php } ?> 
    354385       
     
    372403<script language="javascript"> 
    373404<!-- 
     405 
     406function insertExten() { 
     407  exten = document.getElementById('insexten').value; 
     408 
     409  grpList=document.getElementById('grplist'); 
     410  if (grpList.value[ grpList.value.length - 1 ] == "\n") { 
     411    grpList.value = grpList.value + exten; 
     412  } else { 
     413    grpList.value = grpList.value + '\n' + exten; 
     414  } 
     415 
     416  // reset element 
     417  document.getElementById('insexten').value = ''; 
     418} 
    374419 
    375420function checkGRP(theForm) { 
     
    379424  var msgInvalidTime = "<?php echo _('Invalid time specified'); ?>"; 
    380425  var msgInvalidGrpTimeRange = "<?php echo _('Time must be between 1 and 60 seconds'); ?>"; 
    381   var msgInvalidRingStrategy = "<?php echo _('You must choose ringall, ringall-prim, ringallv2 or ringallv2-prim ring strategy when using Confirm Calls'); ?>"; 
     426  var msgInvalidRingStrategy = "<?php echo _('Only ringall, ringallv2, hunt and the respective -prim versions are supported when confirmation is checked'); ?>"; 
    382427 
    383428 
     
    400445  } 
    401446 
    402   if (theForm.needsconf.checked && theForm.strategy.value.substring(0,7) != "ringall") { 
     447  if (theForm.needsconf.checked && (theForm.strategy.value.substring(0,7) != "ringall" && theForm.strategy.value.substring(0,4) != "hunt")) { 
    403448    return warnInvalid(theForm.needsconf, msgInvalidRingStrategy); 
    404449  } 
  • modules/branches/2.4/ringgroups/page.ringgroups.php

    r5281 r5340  
    193193<?php     } ?> 
    194194      </tr> 
     195 
    195196      <tr> 
    196197        <td> <a href="#" class="info"><?php echo _("Group Description:")?>:<span><?php echo _("Provide a descriptive title for this Ring Group.")?></span></a></td> 
    197198        <td><input size="20" maxlength="35" type="text" name="description" value="<?php echo htmlspecialchars($description); ?>"></td> 
    198199      </tr> 
    199       <tr> 
    200         <td> <a href="#" class="info"><?php echo _("Ring strategy:")?> 
     200 
     201      <tr> 
     202        <td> <a href="#" class="info"><?php echo _("Ring Strategy:")?> 
    201203        <span> 
    202204          <b><?php echo _("ringall")?></b>:  <?php echo _("Ring all available channels until one answers (default)")?><br> 
     
    220222        </td> 
    221223      </tr> 
    222       <tr> 
    223         <td valign="top"><a href="#" class="info"><?php echo _("Extension list")?>:<span><br><?php echo _("List extensions to ring, one per line.<br><br>You can include an extension on a remote system, or an external number by suffixing a number with a pound (#).  ex:  2448089# would dial 2448089 on the appropriate trunk (see Outbound Routing)<br><br>Extensions will ring the actual extension. If you want them to be sent down channel local (to ring follow-me, other ringgroups, queues, etc. then put a pound (#) at the end. Be careful!")?><br><br></span></a></td> 
     224 
     225      <tr> 
     226        <td> 
     227          <a href=# class="info"><?php echo _("Ring Time (max 60 sec)")?> 
     228            <span> 
     229              <?php echo _("Time in seconds that the phones will ring. For all hunt style ring strategies, this is the time for each iteration of phone(s) that are rung")?> 
     230            </span> 
     231          </a> 
     232        </td> 
     233        <td><input size="4" type="text" name="grptime" value="<?php  echo $grptime?$grptime:20 ?>"></td> 
     234      </tr> 
     235 
     236      <tr> 
     237        <td valign="top"><a href="#" class="info"><?php echo _("Extension List")?>:<span><br><?php echo _("List extensions to ring, one per line, or use the Extension Quick Pick below to insert them here.<br><br>You can include an extension on a remote system, or an external number by suffixing a number with a '#'.  ex:  2448089# would dial 2448089 on the appropriate trunk (see Outbound Routing)<br><br>Extensions (without a '#' will not ring a user's Follow-Me. To dial Follow-Me, Queues and other numbers that are not extensions, put a '#' at the end.")?><br><br></span></a></td> 
    224238        <td valign="top"> 
    225239<?php 
     
    227241    ($rows < 5) ? 5 : (($rows > 20) ? 20 : $rows); 
    228242?> 
    229           <textarea id="grplist" cols="15" rows="<?php  echo $rows ?>" name="grplist"><?php echo implode("\n",$grplist);?></textarea><br> 
    230            
    231           <input type="submit" style="font-size:10px;" value="<?php echo _("Clean & Remove duplicates")?>" /> 
    232         </td> 
    233       </tr> 
    234       <tr> 
    235         <td><a href="#" class="info"><?php echo _("CID name prefix")?>:<span><?php echo _('You can optionally prefix the Caller ID name when ringing extensions in this group. ie: If you prefix with "Sales:", a call from John Doe would display as "Sales:John Doe" on the extensions that ring.')?></span></a></td> 
    236         <td><input size="4" type="text" name="grppre" value="<?php  echo $grppre ?>"></td> 
    237       </tr> 
    238  
    239  
    240       <tr> 
    241         <td><?php echo _("Ring time (max 60 sec)")?>:</td> 
    242         <td><input size="4" type="text" name="grptime" value="<?php  echo $grptime?$grptime:20 ?>"></td> 
    243       </tr> 
     243          <textarea id="grplist" cols="15" rows="<?php  echo $rows ?>" name="grplist"><?php echo implode("\n",$grplist);?></textarea> 
     244        </td> 
     245      </tr> 
     246 
     247      <tr> 
     248        <td> 
     249        <a href=# class="info"><?php echo _("Extension Quick Pick")?> 
     250          <span> 
     251            <?php echo _("Choose an extension to append to the end of the extension list above.")?> 
     252          </span> 
     253        </a> 
     254        </td> 
     255        <td> 
     256          <select onChange="insertExten();" id="insexten"> 
     257            <option value=""><?php echo _("(pick extension)")?></option> 
     258  <?php 
     259            $results = core_users_list(); 
     260            foreach ($results as $result) { 
     261              echo "<option value='".$result[0]."'>".$result[0]." (".$result[1].")</option>\n"; 
     262            } 
     263  ?> 
     264          </select> 
     265        </td> 
     266      </tr> 
     267 
    244268<?php if(function_exists('recordings_list')) { //only include if recordings is enabled?> 
    245   <tr> 
    246     <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>To add additional recordings please use the \"System Recordings\" MENU to the left")?></span></a></td> 
    247     <td> 
    248       <select name="annmsg"/> 
    249       <?php 
    250         $tresults = recordings_list(); 
    251         $default = (isset($annmsg) ? $annmsg : ''); 
    252         echo '<option value="">'._("None")."</option>"; 
    253         if (isset($tresults[0])) { 
    254           foreach ($tresults as $tresult) { 
    255             echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
    256          
    257        
    258       ?>     
    259       </select>    
    260     </td> 
    261   </tr> 
     269     <tr> 
     270       <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>To add additional recordings please use the \"System Recordings\" MENU to the left")?></span></a></td> 
     271       <td> 
     272         <select name="annmsg"/> 
     273         <?php 
     274           $tresults = recordings_list(); 
     275           $default = (isset($annmsg) ? $annmsg : ''); 
     276           echo '<option value="">'._("None")."</option>"; 
     277           if (isset($tresults[0])) { 
     278             foreach ($tresults as $tresult) { 
     279               echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
     280             
     281           
     282         ?>    
     283         </select>     
     284       </td> 
     285     </tr> 
    262286<?php } else { ?> 
    263   <tr> 
    264     <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>You must install and enable the \"Systems Recordings\" Module to edit this option")?></span></a></td> 
    265     <td> 
    266       <?php 
    267         $default = (isset($annmsg) ? $annmsg : ''); 
    268       ?> 
    269       <input type="hidden" name="annmsg" value="<?php echo $default; ?>"><?php echo ($default != '' ? $default : 'None'); ?> 
    270     </td> 
    271   </tr> 
     287     <tr> 
     288       <td><a href="#" class="info"><?php echo _("Announcement:")?><span><?php echo _("Message to be played to the caller before dialing this group.<br><br>You must install and enable the \"Systems Recordings\" Module to edit this option")?></span></a></td> 
     289       <td> 
     290         <?php 
     291           $default = (isset($annmsg) ? $annmsg : ''); 
     292         ?> 
     293         <input type="hidden" name="annmsg" value="<?php echo $default; ?>"><?php echo ($default != '' ? $default : 'None'); ?> 
     294       </td> 
     295     </tr> 
    272296<?php } if (function_exists('music_list')) { ?> 
    273   <tr> 
    274     <td><a href="#" class="info"><?php echo _("Play Music On Hold?")?><span><?php echo _("If you select a Music on Hold class to play, instead of 'Ring', they will hear that instead of Ringing while they are waiting for someone to pick up.")?></span></a></td> 
    275     <td> 
    276       <select name="ringing"/> 
    277       <?php 
    278         $tresults = music_list($amp_conf['ASTVARLIBDIR']."/mohmp3"); 
    279         $cur = (isset($ringing) ? $ringing : 'Ring'); 
    280         echo '<option value="Ring">'._("Ring")."</option>"; 
    281         if (isset($tresults[0])) { 
    282           foreach ($tresults as $tresult) { 
    283             echo '<option value="'.$tresult.'"'.($tresult == $cur ? ' SELECTED' : '').'>'.$tresult."</option>\n"; 
    284          
    285        
    286       ?>     
    287       </select>    
    288     </td> 
    289   </tr> 
     297     <tr> 
     298       <td><a href="#" class="info"><?php echo _("Play Music On Hold?")?><span><?php echo _("If you select a Music on Hold class to play, instead of 'Ring', they will hear that instead of Ringing while they are waiting for someone to pick up.")?></span></a></td> 
     299       <td> 
     300         <select name="ringing"/> 
     301         <?php 
     302           $tresults = music_list($amp_conf['ASTVARLIBDIR']."/mohmp3"); 
     303           $cur = (isset($ringing) ? $ringing : 'Ring'); 
     304           echo '<option value="Ring">'._("Ring")."</option>"; 
     305           if (isset($tresults[0])) { 
     306             foreach ($tresults as $tresult) { 
     307               echo '<option value="'.$tresult.'"'.($tresult == $cur ? ' SELECTED' : '').'>'.$tresult."</option>\n"; 
     308             
     309           
     310         ?>    
     311         </select>     
     312       </td> 
     313     </tr> 
    290314<?php } ?> 
    291315       
    292   <tr> 
    293     <td><a href="#" class="info"><?php echo _("Alert Info")?><span><?php echo _('ALERT_INFO can be used for distinctive ring with SIP devices.')?></span></a>:</td> 
    294     <td><input type="text" name="alertinfo" size="10" value="<?php echo ($alertinfo)?$alertinfo:'' ?>"></td> 
    295   </tr> 
    296   <tr> 
    297     <td><a href="#" class="info"><?php echo _("Confirm Calls")?><span><?php echo _('Enable this if you\'re calling external numbers that need confirmation - eg, a mobile phone may go to voicemail which will pick up the call. Enabling this requires the remote side push 1 on their phone before the call is put through. This feature only works with the ringall ring strategy')?></span></a>:</td> 
    298     <td> <?php if (!function_exists('recordings_list')) { echo _("System Recordings not installed. Option Disabled"); } else { ?> 
    299       <input type="checkbox" name="needsconf" value="CHECKED" <?php echo $needsconf ?>  /></td> 
     316      <tr> 
     317        <td><a href="#" class="info"><?php echo _("CID Name Prefix")?>:<span><?php echo _('You can optionally prefix the Caller ID name when ringing extensions in this group. ie: If you prefix with "Sales:", a call from John Doe would display as "Sales:John Doe" on the extensions that ring.')?></span></a></td> 
     318        <td><input size="4" type="text" name="grppre" value="<?php  echo $grppre ?>"></td> 
     319      </tr> 
     320 
     321      <tr> 
     322        <td><a href="#" class="info"><?php echo _("Alert Info")?><span><?php echo _('ALERT_INFO can be used for distinctive ring with SIP devices.')?></span></a>:</td> 
     323        <td><input type="text" name="alertinfo" size="20" value="<?php echo ($alertinfo)?$alertinfo:'' ?>"></td> 
     324      </tr> 
     325 
     326      <tr> 
     327        <td><a href="#" class="info"><?php echo _("Confirm Calls")?><span><?php echo _('Enable this if you\'re calling external numbers that need confirmation - eg, a mobile phone may go to voicemail which will pick up the call. Enabling this requires the remote side push 1 on their phone before the call is put through. This feature only works with the ringall ring strategy')?></span></a>:</td> 
     328        <td> 
     329          <input type="checkbox" name="needsconf" value="CHECKED" <?php echo $needsconf ?>  /> 
     330        </td> 
     331      </tr> 
     332 
     333<?php if(function_exists('recordings_list')) { //only include if recordings is enabled?> 
     334      <tr> 
     335        <td><a href="#" class="info"><?php echo _("Remote Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if 'Confirm Calls' is enabled.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
     336        <td> 
     337          <select name="remotealert"/> 
     338          <?php 
     339            $tresults = recordings_list(); 
     340            $default = (isset($remotealert) ? $remotealert : ''); 
     341            echo '<option value="">'._("Default")."</option>"; 
     342            if (isset($tresults[0])) { 
     343              foreach ($tresults as $tresult) { 
     344                echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
     345              } 
     346            } 
     347          ?>     
     348          </select>    
     349        </td> 
     350      </tr> 
     351 
     352      <tr> 
     353        <td><a href="#" class="info"><?php echo _("Too-Late Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if the call has already been accepted before they push 1.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
     354        <td> 
     355          <select name="toolate"/> 
     356          <?php 
     357            $tresults = recordings_list(); 
     358            $default = (isset($toolate) ? $toolate : ''); 
     359            echo '<option value="">'._("Default")."</option>"; 
     360            if (isset($tresults[0])) { 
     361              foreach ($tresults as $tresult) { 
     362                echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
     363              } 
     364            } 
     365          ?>     
     366          </select>    
     367        </td> 
     368      </tr> 
    300369<?php } ?> 
    301   </tr> 
    302 <?php if(function_exists('recordings_list')) { //only include if recordings is enabled?> 
    303   <tr> 
    304     <td><a href="#" class="info"><?php echo _("Remote Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if 'Confirm Calls' is enabled.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
    305     <td> 
    306       <select name="remotealert"/> 
    307       <?php 
    308         $tresults = recordings_list(); 
    309         $default = (isset($remotealert) ? $remotealert : ''); 
    310         echo '<option value="">'._("Default")."</option>"; 
    311         if (isset($tresults[0])) { 
    312           foreach ($tresults as $tresult) { 
    313             echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
    314           } 
    315         } 
    316       ?>     
    317       </select>    
    318     </td> 
    319   </tr> 
    320   <tr> 
    321     <td><a href="#" class="info"><?php echo _("Too-Late Announce:")?><span><?php echo _("Message to be played to the person RECEIVING the call, if the call has already been accepted before they push 1.<br><br>To add additional recordings use the \"System Recordings\" MENU to the left")?></span></a></td> 
    322     <td> 
    323       <select name="toolate"/> 
    324       <?php 
    325         $tresults = recordings_list(); 
    326         $default = (isset($toolate) ? $toolate : ''); 
    327         echo '<option value="">'._("Default")."</option>"; 
    328         if (isset($tresults[0])) { 
    329           foreach ($tresults as $tresult) { 
    330             echo '<option value="'.$tresult[2].'"'.($tresult[2] == $default ? ' SELECTED' : '').'>'.$tresult[1]."</option>\n"; 
    331           } 
    332         } 
    333       ?>     
    334       </select>    
    335     </td> 
    336   </tr> 
    337 <?php } ?> 
     370 
    338371      <tr><td colspan="2"><br><h5><?php echo _("Destination if no answer")?>:<hr></h5></td></tr> 
    339372 
     
    356389<script language="javascript"> 
    357390<!-- 
     391 
     392function insertExten() { 
     393  exten = document.getElementById('insexten').value; 
     394 
     395  grpList=document.getElementById('grplist'); 
     396  if (grpList.value[ grpList.value.length - 1 ] == "\n") { 
     397    grpList.value = grpList.value + exten; 
     398  } else { 
     399    grpList.value = grpList.value + '\n' + exten; 
     400  } 
     401 
     402  // reset element 
     403  document.getElementById('insexten').value = ''; 
     404} 
    358405 
    359406function checkGRP(theForm) { 
     
    364411  var msgInvalidGrpTimeRange = "<?php echo _('Time must be between 1 and 60 seconds'); ?>"; 
    365412  var msgInvalidDescription = "<?php echo _('Please enter a valid Group Description'); ?>"; 
    366   var msgInvalidRingStrategy = "<?php echo _('You must choose ringall or ringall-prim ring strategy when using Confirm Calls'); ?>"; 
     413  var msgInvalidRingStrategy = "<?php echo _('Only ringall, ringallv2, hunt and the respective -prim versions are supported when confirmation is checked'); ?>"; 
    367414 
    368415  // set up the Destination stuff 
     
    395442  } 
    396443 
    397   if (theForm.needsconf.checked && theForm.strategy.value.substring(0,7) != "ringall") { 
     444  if (theForm.needsconf.checked && (theForm.strategy.value.substring(0,7) != "ringall" && theForm.strategy.value.substring(0,4) != "hunt")) { 
    398445    return warnInvalid(theForm.needsconf, msgInvalidRingStrategy); 
    399446  }