Changeset 7296

Show
Ignore:
Timestamp:
11/17/08 19:18:01 (5 years ago)
Author:
p_lindheimer
Message:

clean up directed call pickup code by putting all the contexts to call into a single Pickup() call, there is no reason to have multipe priorities to try

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/branches/2.6/core/functions.inc.php

    r7273 r7296  
    767767        unset($fcc); 
    768768 
    769  
    770         $ext->add('app-pickup', "_$fc_pickup.", '', new ext_NoOp('Attempt to Pickup ${EXTEN:'.$fclen.'} by ${CALLERID(num)}')); 
    771         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('${EXTEN:'.$fclen.'}')); 
    772         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('${EXTEN:'.$fclen.'}@ext-local')); 
    773         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('${EXTEN:'.$fclen.'}@from-internal')); 
    774         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('${EXTEN:'.$fclen.'}@from-did-direct')); 
    775         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('FMPR-${EXTEN:'.$fclen.'}')); 
    776         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('LC-${EXTEN:'.$fclen.'}@from-internal')); 
    777         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('FMPR-${EXTEN:'.$fclen.'}@from-internal')); 
    778         $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup('FMPR-${EXTEN:'.$fclen.'}@from-did-direct')); 
     769        $picklist = '${EXTEN:'.$fclen.'}'; 
     770        $picklist .= '&${EXTEN:'.$fclen.'}@ext-local'; 
     771        $picklist .= '&${EXTEN:'.$fclen.'}@from-internal'; 
     772        $picklist .= '&${EXTEN:'.$fclen.'}@from-did-direct'; 
     773        $picklist .= '&LC-${EXTEN:'.$fclen.'}@from-internal'; 
     774        $picklist .= '&FMPR-${EXTEN:'.$fclen.'}@from-internal'; 
     775        $picklist .= '&FMPR-${EXTEN:'.$fclen.'}@from-did-direct'; 
     776 
     777        $ext->add('app-pickup', "_$fc_pickup.", '', new $ext_pickup($picklist)); 
     778        $ext->add('app-pickup', "_$fc_pickup.", '', new ext_hangup('')); 
     779 
    779780        if ($intercom_code != '') { 
    780           $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new $ext_pickup('${EXTEN:'.strlen($fc_pickup.$intercom_code).'}')); 
    781           $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new $ext_pickup('${EXTEN:'.strlen($fc_pickup.$intercom_code).'}@from-internal')); 
    782           $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new $ext_pickup('${EXTEN:'.strlen($fc_pickup.$intercom_code).'}@from-did-direct')); 
    783           $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new $ext_pickup('FMPR-${EXTEN:'.strlen($fc_pickup.$intercom_code).'}')); 
    784           $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new $ext_pickup('FMPR-${EXTEN:'.strlen($fc_pickup.$intercom_code).'}@from-internal')); 
    785           $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new $ext_pickup('FMPR-${EXTEN:'.strlen($fc_pickup.$intercom_code).'}@from-did-direct')); 
    786         } 
    787         $ext->add('app-pickup', "_$fc_pickup.", '', new ext_hangup('')); 
     781          $len = strlen($fc_pickup.$intercom_code); 
     782          $picklist  = '${EXTEN:'.$len.'}'; 
     783          $picklist .= '&${EXTEN:'.$len.'}@ext-local'; 
     784          $picklist .= '&${EXTEN:'.$len.'}@from-internal'; 
     785          $picklist .= '&${EXTEN:'.$len.'}@from-did-direct'; 
     786          $picklist .= '&LC-${EXTEN:'.$len.'}@from-internal'; 
     787          $picklist .= '&FMPR-${EXTEN:'.$len.'}@from-internal'; 
     788          $picklist .= '&FMPR-${EXTEN:'.$len.'}@from-did-direct'; 
     789 
     790          $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new $ext_pickup($picklist)); 
     791          $ext->add('app-pickup', "_{$fc_pickup}{$intercom_code}.", '', new ext_hangup('')); 
     792        } 
    788793        // In order to do call pickup in ringgroups, we will need to try the ringgoup number 
    789794        // when doing call pickup for that ringgoup so we must see who is a member of what ringgroup 
     
    808813        // to try the ringgoup. 
    809814        foreach ($rg_members as $exten => $grps) { 
    810           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup($exten))
    811           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup($exten.'@ext-local')); 
    812           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup($exten.'@from-internal')); 
    813           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup($exten.'@from-did-direct')); 
    814           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup('LC-'.$exten.'@from-internal')); 
    815           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup('FMPR-'.$exten)); 
    816           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup('FMPR-'.$exten.'@from-internal')); 
    817           $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup('FMPR-'.$exten.'@from-did-direct')); 
     815          $picklist  = $exten
     816          $picklist .= '&'.$exten.'@ext-local';  
     817          $picklist .= '&'.$exten.'@from-internal';  
     818          $picklist .= '&'.$exten.'@from-did-direct';  
     819          $picklist .= '&LC-'.$exten.'@from-internal';  
     820          $picklist .= '&FMPR-'.$exten.'@from-internal';  
     821          $picklist .= '&FMPR-'.$exten.'@from-did-direct';  
     822 
    818823          foreach ($grps as $grp) { 
    819             $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup($grp.'@from-internal')); 
    820             $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup($grp.'@ext-group')); 
     824            $picklist .= '&'.$grp.'@from-internal';  
     825            $picklist .= '&'.$grp.'@ext-group';  
    821826          } 
     827          $ext->add('app-pickup', "$fc_pickup".$exten, '', new $ext_pickup($picklist)); 
    822828          $ext->add('app-pickup', "$fc_pickup".$exten, '', new ext_hangup('')); 
     829          if ($intercom_code != '') { 
     830            $ext->add('app-pickup', "$fc_pickup".$intercom_code.$exten, '', new $ext_pickup($picklist)); 
     831            $ext->add('app-pickup', "$fc_pickup".$intercom_code.$exten, '', new ext_hangup('')); 
     832          } 
    823833        } 
    824834      }