Example #1
0
function findUserIdFromChannel($channel)
{
    global $userGUID;
    $asteriskExt = extractExtensionNumberFromChannel($channel);
    $maybeAssignedUser = findUserByAsteriskExtension($asteriskExt);
    if ($maybeAssignedUser) {
        $assignedUser = $maybeAssignedUser;
        logLine("! Assigned user id set to {$assignedUser}\n");
    } else {
        $assignedUser = $userGUID;
        logLine(" ! Assigned user will be set to Administrator.\n");
    }
    return $assignedUser;
}
 // raw data from asterisk_log
 $query = sprintf("UPDATE asterisk_log SET callstate='%s', timestampHangup=%s, hangup_cause=%d, hangup_cause_txt='%s' WHERE asterisk_id='%s'", 'Hangup', 'NOW()', $e['Cause'], $e['Cause-txt'], $id);
 $updateResult = mysql_checked_query($query);
 if ($updateResult) {
     //
     // Attempt to find assigned user by asterisk ext
     //
     $assignedUser = $userGUID;
     // Use logged in user as fallback
     $channel = $rawData['channel'];
     $channelSplit = array();
     echo "# Channel was {$channel}\n";
     if (eregi('^([[:alpha:]]+)/([[:alnum:]]+)-', $channel, $channelSplit) > 0) {
         $asteriskExt = $channelSplit[2];
         echo "# Extension was " . $asteriskExt . "\n";
         $maybeAssignedUser = findUserByAsteriskExtension($asteriskExt);
         if ($maybeAssignedUser) {
             $assignedUser = $maybeAssignedUser;
             echo "! Assigned user id set to {$assignedUser}\n";
         }
     }
     //
     // ... on success also update entry in Calls module
     //
     //
     // Calculate call duration...
     //
     $hangupTime = time();
     $callDurationRaw = 0;
     // call duration in seconds, only matters if timestampLink != NULL
     if ($rawData['timestampLink'] != NULL) {
 $query = sprintf("UPDATE asterisk_log SET callstate='%s', timestampHangup=%s, hangup_cause=%d, hangup_cause_txt='%s' WHERE asterisk_id='%s'", 'Hangup', 'NOW()', $e['Cause'], $e['Cause-txt'], $id);
 $updateResult = mysql_checked_query($query);
 if ($updateResult) {
     //
     // Attempt to find assigned user by asterisk ext
     //
     $direction = $rawData['direction'];
     $assignedUser = $userGUID;
     // Use logged in user as fallback
     $channel = $rawData['channel'];
     if ($direction == 'O') {
         // Assigned user is the caller
         $assignedUser = findUserByAsteriskExtension($rawData['callerID']);
     } else {
         echo "# Extension was " . $rawData['recipientID'] . "\n";
         $maybeAssignedUser = findUserByAsteriskExtension($rawData['recipientID']);
         if ($maybeAssignedUser) {
             $assignedUser = $maybeAssignedUser;
         }
     }
     echo "# Channel was {$channel}\n";
     echo "! Assigned user id set to {$assignedUser}\n";
     //
     // ... on success also update entry in Calls module
     //
     //
     // Calculate call duration...
     //
     $hangupTime = time();
     $callStart = strtotime($rawData['timestampCall']);
     $callDurationRaw = 0;