Changeset 209

Show
Ignore:
Timestamp:
03/21/05 20:25:05 (7 years ago)
Author:
ronhartmann
Message:

Added functions to allow for trunk prioritization.

Trunks now have the outrt-001-Name, outrt-002-Name etc naming

Requires an update table for the extensions "context and application" fileds.

ALTER TABLE extensions modify context varchar(45) NOT NULL default 'default';
and
ALTER TABLE extensions modify application varchar(45) NOT NULL default ;

Existing routes will need to be renamed using rename button (until we get the update script finished) you can name the routes the same thing they were originally called.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/AMP/amp_conf/htdocs/admin/functions.php

    r202 r209  
    690690          die($result->getMessage()."<br><br>".$sql);  
    691691      } 
     692    setDefaultTrunk("1"); 
    692693    $unique_trunks[] = array('OUT_1','ZAP/g0'); 
    693694    addOutTrunk("1"); 
     
    12761277  } 
    12771278   
     1279   
     1280  $routepriority = getroutenames(); 
     1281  $order=setroutepriorityvalue(count($routepriority)); 
     1282  $name = sprintf ("%s-%s",$order,$name); 
    12781283  $trunks = array_values($trunks); // probably already done, but it's important for our dialplan 
     1284 
    12791285   
    12801286  foreach ($patterns as $pattern) { 
     
    13871393function renameRoute($oldname, $newname) { 
    13881394  global $db; 
     1395 
     1396  $route_prefix=substr($oldname,0,4); 
     1397  $newname=$route_prefix.$newname; 
    13891398  $sql = "SELECT context FROM extensions WHERE context = 'outrt-".$newname."'"; 
    13901399  $results = $db->getAll($sql); 
     
    13991408    die($result->getMessage()); 
    14001409  } 
    1401    
    1402   $sql = "UPDATE extensions SET application = 'outrt-".$newname."'WHERE context = 'outbound-allroutes' AND application = 'outrt-".$oldname."' "; 
     1410        $mypriority=sprintf("%d",$route_prefix);   
     1411  $sql = "UPDATE extensions SET application = 'outrt-".$newname."', priority = '$mypriority' WHERE context = 'outbound-allroutes' AND application = 'outrt-".$oldname."' "; 
    14031412  $result = $db->query($sql); 
    14041413  if(DB::IsError($result)) { 
     
    14131422  addroute($name, $patterns, $trunks); 
    14141423} 
     1424 
     1425function getroute($route) { 
     1426  global $db; 
     1427  $sql = "SELECT DISTINCT args FROM extensions WHERE context = 'outrt-".$route."' AND args LIKE 'dialout-trunk,%' ORDER BY priority "; 
     1428  $results = $db->getAll($sql); 
     1429  if(DB::IsError($results)) { 
     1430    die($results->getMessage()); 
     1431  } 
     1432   
     1433  $trunks = array(); 
     1434  foreach ($results as $row) { 
     1435    if (preg_match('/^dialout-trunk,(\d+)/', $row[0], $matches)) { 
     1436      // check in_array -- even though we did distinct 
     1437      // we still might get ${EXTEN} and ${EXTEN:1} if they used | to split a pattern 
     1438      if (!in_array("OUT_".$matches[1], $trunks)) { 
     1439        $trunks[] = "OUT_".$matches[1]; 
     1440      } 
     1441    } 
     1442  } 
     1443  return $trunks; 
     1444} 
     1445function setroutepriorityvalue2($key) 
     1446{ 
     1447  $my_lookup=array(); 
     1448  $x=0; 
     1449  for ($j=97;$j<100;$j++) 
     1450  { 
     1451    for ($i=97;$i<123;$i++) 
     1452    { 
     1453      $my_lookup[$x++] = sprintf("%c%c",$j,$i); 
     1454    } 
     1455  } 
     1456echo "my key is $key $my_lookup[$key]"; 
     1457  return ($my_lookup[$key]); 
     1458} 
     1459function setroutepriorityvalue($key) 
     1460{ 
     1461  $key=$key+1; 
     1462  if ($key<10) 
     1463    $prefix = sprintf("00%d",$key); 
     1464  else if ((9<$key)&&($key<100)) 
     1465    $prefix = sprintf("0%d",$key); 
     1466  else if ($key>100) 
     1467    $prefix = sprintf("%d",$key); 
     1468  return ($prefix); 
     1469} 
     1470function setroutepriority($routepriority, $reporoutedirection, $reporoutekey) 
     1471{ 
     1472  global $db; 
     1473  $counter=-1; 
     1474  foreach ($routepriority as $tresult)  
     1475  { 
     1476    $counter++; 
     1477    if (($counter==($reporoutekey-1)) && ($reporoutedirection=="up")) { 
     1478      // swap this one with the one before (move up) 
     1479      $temproute = $routepriority[$counter]; 
     1480      $routepriority[ $counter ] = $routepriority[ $counter+1 ]; 
     1481      $routepriority[ $counter+1 ] = $temproute; 
     1482       
     1483    } else if (($counter==($reporoutekey)) && ($reporoutedirection=="down")) { 
     1484      // swap this one with the one after (move down) 
     1485      $temproute = $routepriority[ $counter+1 ]; 
     1486      $routepriority[ $counter+1 ] = $routepriority[ $counter ]; 
     1487      $routepriority[ $counter ] = $temproute; 
     1488    } 
     1489  } 
     1490  unset($temptrunk); 
     1491  $routepriority = array_values($routepriority); // resequence our numbers 
     1492  $counter=0; 
     1493  foreach ($routepriority as $tresult)  
     1494  { 
     1495    $order=setroutepriorityvalue($counter++); 
     1496    $sql = sprintf("Update extensions set context='outrt-%s-%s' WHERE context='outrt-%s'",$order,substr($tresult[0],4), $tresult[0]); 
     1497    $result = $db->query($sql);  
     1498    if(DB::IsError($result)) {      
     1499      die($result->getMessage());  
     1500    } 
     1501  } 
     1502  // Delete and readd the outbound-allroutes entries 
     1503  $sql = "delete from  extensions WHERE context='outbound-allroutes'"; 
     1504  $result = $db->query($sql); 
     1505  if(DB::IsError($result)) { 
     1506          die($result->getMessage().$sql); 
     1507  } 
     1508  $sql = "SELECT DISTINCT context FROM extensions WHERE context like 'outrt-%' ORDER BY context"; 
     1509  $results = $db->getAll($sql); 
     1510  if(DB::IsError($results)) { 
     1511    die($results->getMessage()); 
     1512  } 
     1513 
     1514  $priority_loops=1;   
     1515  foreach ($results as $row) { 
     1516    $sql = "INSERT INTO extensions (context, extension, priority, application, args, descr, flags) VALUES "; 
     1517    $sql .= "('outbound-allroutes', "; 
     1518    $sql .= "'include', "; 
     1519    $sql .= "'".$priority_loops++."', "; 
     1520    $sql .= "'".$row[0]."', "; 
     1521    $sql .= "'', "; 
     1522    $sql .= "'', "; 
     1523    $sql .= "'2')"; 
     1524   
     1525    //$sql = sprintf("Update extensions set application='outrt-%s-%s' WHERE context='outbound-allroutes' and  application='outrt-%s'",$order,substr($tresult[0],4), $tresult[0]); 
     1526    $result = $db->query($sql);  
     1527    if(DB::IsError($result)) {      
     1528      die($result->getMessage(). $sql);  
     1529    } 
     1530  } 
     1531  $routepriority = getroutenames(); 
     1532  return ($routepriority); 
     1533} 
     1534 
     1535  
    14151536 
    14161537 
  • trunk/AMP2-UseAmportal/amp_conf/var/www/html/admin/functions.php

    r202 r209  
    690690          die($result->getMessage()."<br><br>".$sql);  
    691691      } 
     692    setDefaultTrunk("1"); 
    692693    $unique_trunks[] = array('OUT_1','ZAP/g0'); 
    693694    addOutTrunk("1"); 
     
    12761277  } 
    12771278   
     1279   
     1280  $routepriority = getroutenames(); 
     1281  $order=setroutepriorityvalue(count($routepriority)); 
     1282  $name = sprintf ("%s-%s",$order,$name); 
    12781283  $trunks = array_values($trunks); // probably already done, but it's important for our dialplan 
     1284 
    12791285   
    12801286  foreach ($patterns as $pattern) { 
     
    13871393function renameRoute($oldname, $newname) { 
    13881394  global $db; 
     1395 
     1396  $route_prefix=substr($oldname,0,4); 
     1397  $newname=$route_prefix.$newname; 
    13891398  $sql = "SELECT context FROM extensions WHERE context = 'outrt-".$newname."'"; 
    13901399  $results = $db->getAll($sql); 
     
    13991408    die($result->getMessage()); 
    14001409  } 
    1401    
    1402   $sql = "UPDATE extensions SET application = 'outrt-".$newname."'WHERE context = 'outbound-allroutes' AND application = 'outrt-".$oldname."' "; 
     1410        $mypriority=sprintf("%d",$route_prefix);   
     1411  $sql = "UPDATE extensions SET application = 'outrt-".$newname."', priority = '$mypriority' WHERE context = 'outbound-allroutes' AND application = 'outrt-".$oldname."' "; 
    14031412  $result = $db->query($sql); 
    14041413  if(DB::IsError($result)) { 
     
    14131422  addroute($name, $patterns, $trunks); 
    14141423} 
     1424 
     1425function getroute($route) { 
     1426  global $db; 
     1427  $sql = "SELECT DISTINCT args FROM extensions WHERE context = 'outrt-".$route."' AND args LIKE 'dialout-trunk,%' ORDER BY priority "; 
     1428  $results = $db->getAll($sql); 
     1429  if(DB::IsError($results)) { 
     1430    die($results->getMessage()); 
     1431  } 
     1432   
     1433  $trunks = array(); 
     1434  foreach ($results as $row) { 
     1435    if (preg_match('/^dialout-trunk,(\d+)/', $row[0], $matches)) { 
     1436      // check in_array -- even though we did distinct 
     1437      // we still might get ${EXTEN} and ${EXTEN:1} if they used | to split a pattern 
     1438      if (!in_array("OUT_".$matches[1], $trunks)) { 
     1439        $trunks[] = "OUT_".$matches[1]; 
     1440      } 
     1441    } 
     1442  } 
     1443  return $trunks; 
     1444} 
     1445function setroutepriorityvalue2($key) 
     1446{ 
     1447  $my_lookup=array(); 
     1448  $x=0; 
     1449  for ($j=97;$j<100;$j++) 
     1450  { 
     1451    for ($i=97;$i<123;$i++) 
     1452    { 
     1453      $my_lookup[$x++] = sprintf("%c%c",$j,$i); 
     1454    } 
     1455  } 
     1456echo "my key is $key $my_lookup[$key]"; 
     1457  return ($my_lookup[$key]); 
     1458} 
     1459function setroutepriorityvalue($key) 
     1460{ 
     1461  $key=$key+1; 
     1462  if ($key<10) 
     1463    $prefix = sprintf("00%d",$key); 
     1464  else if ((9<$key)&&($key<100)) 
     1465    $prefix = sprintf("0%d",$key); 
     1466  else if ($key>100) 
     1467    $prefix = sprintf("%d",$key); 
     1468  return ($prefix); 
     1469} 
     1470function setroutepriority($routepriority, $reporoutedirection, $reporoutekey) 
     1471{ 
     1472  global $db; 
     1473  $counter=-1; 
     1474  foreach ($routepriority as $tresult)  
     1475  { 
     1476    $counter++; 
     1477    if (($counter==($reporoutekey-1)) && ($reporoutedirection=="up")) { 
     1478      // swap this one with the one before (move up) 
     1479      $temproute = $routepriority[$counter]; 
     1480      $routepriority[ $counter ] = $routepriority[ $counter+1 ]; 
     1481      $routepriority[ $counter+1 ] = $temproute; 
     1482       
     1483    } else if (($counter==($reporoutekey)) && ($reporoutedirection=="down")) { 
     1484      // swap this one with the one after (move down) 
     1485      $temproute = $routepriority[ $counter+1 ]; 
     1486      $routepriority[ $counter+1 ] = $routepriority[ $counter ]; 
     1487      $routepriority[ $counter ] = $temproute; 
     1488    } 
     1489  } 
     1490  unset($temptrunk); 
     1491  $routepriority = array_values($routepriority); // resequence our numbers 
     1492  $counter=0; 
     1493  foreach ($routepriority as $tresult)  
     1494  { 
     1495    $order=setroutepriorityvalue($counter++); 
     1496    $sql = sprintf("Update extensions set context='outrt-%s-%s' WHERE context='outrt-%s'",$order,substr($tresult[0],4), $tresult[0]); 
     1497    $result = $db->query($sql);  
     1498    if(DB::IsError($result)) {      
     1499      die($result->getMessage());  
     1500    } 
     1501  } 
     1502  // Delete and readd the outbound-allroutes entries 
     1503  $sql = "delete from  extensions WHERE context='outbound-allroutes'"; 
     1504  $result = $db->query($sql); 
     1505  if(DB::IsError($result)) { 
     1506          die($result->getMessage().$sql); 
     1507  } 
     1508  $sql = "SELECT DISTINCT context FROM extensions WHERE context like 'outrt-%' ORDER BY context"; 
     1509  $results = $db->getAll($sql); 
     1510  if(DB::IsError($results)) { 
     1511    die($results->getMessage()); 
     1512  } 
     1513 
     1514  $priority_loops=1;   
     1515  foreach ($results as $row) { 
     1516    $sql = "INSERT INTO extensions (context, extension, priority, application, args, descr, flags) VALUES "; 
     1517    $sql .= "('outbound-allroutes', "; 
     1518    $sql .= "'include', "; 
     1519    $sql .= "'".$priority_loops++."', "; 
     1520    $sql .= "'".$row[0]."', "; 
     1521    $sql .= "'', "; 
     1522    $sql .= "'', "; 
     1523    $sql .= "'2')"; 
     1524   
     1525    //$sql = sprintf("Update extensions set application='outrt-%s-%s' WHERE context='outbound-allroutes' and  application='outrt-%s'",$order,substr($tresult[0],4), $tresult[0]); 
     1526    $result = $db->query($sql);  
     1527    if(DB::IsError($result)) {      
     1528      die($result->getMessage(). $sql);  
     1529    } 
     1530  } 
     1531  $routepriority = getroutenames(); 
     1532  return ($routepriority); 
     1533} 
     1534 
     1535  
    14151536 
    14161537