Changeset 5250
- Timestamp:
- 11/18/07 20:02:26 (1 year ago)
- Files:
-
- modules/branches/2.4/core/functions.inc.php (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
modules/branches/2.4/core/functions.inc.php
r5228 r5250 395 395 396 396 $hint = core_hint_get($exten['extension']); 397 if (!empty($hint)) 397 if (!empty($hint)) { 398 398 $ext->addHint('ext-local', $exten['extension'], $hint); 399 } 399 400 if ($exten['sipname']) { 400 401 $ext->add('ext-local', $exten['sipname'], '', new ext_goto('1',$item[0],'from-internal')); … … 504 505 // Then do one call to user-callerid and record-enable instead of each time as in the past 505 506 // 507 $ext->add($outrt['application'], $exten['extension'], '', new ext_macro('user-callerid,SKIPTTL')); 506 508 $ext->add($outrt['application'], $exten['extension'], '', new ext_setvar("_NODEST","")); 507 $ext->add($outrt['application'], $exten['extension'], '', new ext_macro('user-callerid,SKIPTTL'));508 509 $ext->add($outrt['application'], $exten['extension'], '', new ext_macro('record-enable,${AMPUSER},OUT')); 509 510 $lastexten = $exten['extension']; … … 819 820 $astman->database_put("DEVICE",$id."/type",$devicetype); 820 821 $astman->database_put("DEVICE",$id."/default_user",$user); 821 if( !empty($emergency_cid)) {822 if($emergency_cid != '') { 822 823 $astman->database_put("DEVICE",$id."/emergency_cid","\"".$emergency_cid."\""); 823 824 } … … 959 960 $astman->database_put("DEVICE",$id."/type",$devicetype); 960 961 $astman->database_put("DEVICE",$id."/user",$user); 962 $astman->database_put("DEVICE",$id."/default_user",$user); 963 if(trim($emergency_cid) != '') { 964 $astman->database_put("DEVICE",$id."/emergency_cid","\"".$emergency_cid."\""); 965 } 961 966 // If a user is selected, add this device to the user 962 967 if ($user != "none") { … … 1261 1266 1262 1267 function core_hint_get($account){ 1263 //determine what devices this user is associated with 1264 $sql = "SELECT dial from devices where user = '{$account}'"; 1268 global $astman; 1269 1270 // We should always check the AMPUSER in case they logged into a device 1271 // but we will fall back to the old methond if $astman not open although 1272 // I'm pretty sure everything else will puke anyhow if not running 1273 // 1274 if ($astman) { 1275 $device=$astman->database_get("AMPUSER",$account."/device"); 1276 $device_arr = explode('&',$device); 1277 $sql = "SELECT dial from devices where id in ('".implode("','",$device_arr)."')"; 1278 } else { 1279 $sql = "SELECT dial from devices where user = '{$account}'"; 1280 } 1265 1281 $results = sql($sql,"getAll",DB_FETCHMODE_ASSOC); 1266 //print_r($results);1267 1282 1268 1283 //create an array of strings … … 1311 1326 } 1312 1327 1328 function core_check_extensions($exten=true) { 1329 global $amp_conf; 1330 1331 $extenlist = array(); 1332 if (is_array($exten) && empty($exten)) { 1333 return $extenlist; 1334 } 1335 $sql = "SELECT extension, name FROM users "; 1336 if (is_array($exten)) { 1337 $sql .= "WHERE extension in ('".implode("','",$exten)."')"; 1338 } 1339 $sql .= " ORDER BY extension"; 1340 $results = sql($sql,"getAll",DB_FETCHMODE_ASSOC); 1341 1342 foreach ($results as $result) { 1343 $thisexten = $result['extension']; 1344 $extenlist[$thisexten]['description'] = _("User Extension: ").$result['name']; 1345 $extenlist[$thisexten]['status'] = 'INUSE'; 1346 $display = ($amp_conf['AMPEXTENSIONS'] == "deviceanduser")?'users':'extensions'; 1347 $extenlist[$thisexten]['edit_url'] = "config.php?type=setup&display=$display&extdisplay=".urlencode($thisexten)."&skip=0"; 1348 } 1349 return $extenlist; 1350 } 1351 1352 function core_check_destinations($dest=true) { 1353 global $active_modules; 1354 1355 $destlist = array(); 1356 if (is_array($dest) && empty($dest)) { 1357 return $destlist; 1358 } 1359 $sql = "SELECT extension, cidnum, channel, description, destination FROM incoming "; 1360 if ($dest !== true) { 1361 $sql .= "WHERE destination in ('".implode("','",$dest)."')"; 1362 } 1363 $sql .= "ORDER BY extension, cidnum, channel"; 1364 $results = sql($sql,"getAll",DB_FETCHMODE_ASSOC); 1365 1366 //$type = isset($active_modules['announcement']['type'])?$active_modules['announcement']['type']:'setup'; 1367 1368 foreach ($results as $result) { 1369 $thisdest = $result['destination']; 1370 $thisid = $result['extension'].'/'.$result['cidnum'].'/'.$result['channel']; 1371 $destlist[] = array( 1372 'dest' => $thisdest, 1373 'description' => 'Inbound Route: '.$result['description'].' ('.$thisid.')', 1374 'edit_url' => 'config.php?display=did&extdisplay='.urlencode($thisid), 1375 ); 1376 } 1377 return $destlist; 1378 } 1379 1313 1380 function core_sipname_check($sipname, $extension) { 1314 1381 global $db; … … 1328 1395 } 1329 1396 1330 function core_users_add($vars ) {1397 function core_users_add($vars, $editmode=false) { 1331 1398 extract($vars); 1332 1399 … … 1455 1522 $astman->database_put("AMPUSER",$extension."/cidnum",$cid_masquerade); 1456 1523 $astman->database_put("AMPUSER",$extension."/voicemail","\"".isset($voicemail)?$voicemail:''."\""); 1457 $astman->database_put("AMPUSER",$extension."/device","\"".((isset($device))?$device:'')."\""); 1524 if (!$editmode) { 1525 $astman->database_put("AMPUSER",$extension."/device","\"".((isset($device))?$device:'')."\""); 1526 } 1458 1527 1459 1528 if (trim($callwaiting) == 'enabled') { … … 1546 1615 } 1547 1616 1548 function core_users_del($extension ){1617 function core_users_del($extension, $editmode=false){ 1549 1618 global $db; 1550 1619 global $amp_conf; … … 1559 1628 1560 1629 //delete details to astdb 1561 if ($astman ) {1630 if ($astman && !$editmode) { 1562 1631 $astman->database_del("AMPUSER",$extension."/password"); 1563 1632 $astman->database_del("AMPUSER",$extension."/ringtimer"); … … 1569 1638 $astman->database_del("AMPUSER",$extension."/voicemail"); 1570 1639 $astman->database_del("AMPUSER",$extension."/device"); 1571 } else {1572 fatal("Cannot connect to Asterisk Manager with ".$amp_conf["AMPMGRUSER"]."/".$amp_conf["AMPMGRPASS"]);1573 1640 } 1574 1641 } … … 1634 1701 //delete and re-add 1635 1702 if (core_sipname_check($vars['sipname'],$extension)) { 1636 core_users_del($extension );1637 core_users_add($vars );1703 core_users_del($extension, true); 1704 core_users_add($vars, true); 1638 1705 } 1639 1706 return true; … … 2826 2893 if ( $display == 'extensions' ) { 2827 2894 $currentcomponent->addguielem('_top', new gui_pageheading('title', _("Extension").": $extdisplay", false), 0); 2828 $currentcomponent->addguielem('_top', new gui_link('del', _("Delete Extension")." $extdisplay", $delURL, true, false), 0); 2895 if (!isset($GLOBALS['abort']) || $GLOBALS['abort'] !== true) { 2896 $currentcomponent->addguielem('_top', new gui_link('del', _("Delete Extension")." $extdisplay", $delURL, true, false), 0); 2897 } 2829 2898 } else { 2830 2899 $currentcomponent->addguielem('_top', new gui_pageheading('title', _("User").": $extdisplay", false), 0); 2831 $currentcomponent->addguielem('_top', new gui_link('del', _("Delete User")." $extdisplay", $delURL, true, false), 0); 2900 if (!isset($GLOBALS['abort']) || $GLOBALS['abort'] !== true) { 2901 $currentcomponent->addguielem('_top', new gui_link('del', _("Delete User")." $extdisplay", $delURL, true, false), 0); 2902 } 2832 2903 } 2833 2904 … … 2928 2999 switch ($action) { 2929 3000 case "add": 2930 if (core_users_add($_REQUEST)) { 3001 $conflict_url = array(); 3002 $usage_arr = framework_check_extension_usage($_REQUEST['extension']); 3003 if (!empty($usage_arr)) { 3004 $GLOBALS['abort'] = true; 3005 $conflict_url = framework_display_extension_usage_alert($usage_arr,true); 3006 global $currentcomponent; 3007 $id=0; 3008 foreach ($conflict_url as $edit_link) { 3009 $currentcomponent->addguielem('_top', new gui_link('conflict'.$i++, $edit_link['label'], $edit_link['url'])); 3010 } 3011 } elseif (core_users_add($_REQUEST)) { 2931 3012 needreload(); 2932 3013 redirect_standard_continue();
