Erstellen eines einfachen Anrufverfolgungsdienstes, Teil 2

Im vorherigen Artikel haben wir die Generierung und Überprüfung des Vorhandenseins des Coockies implementiert, das zum Ersetzen der Nummer auf der Seite verwendet wurde, und die Protokollierung der angezeigten Nummern mit Bezug auf die Übergangsquelle hinzugefügt. In diesem Artikel wird das Erstellen einer Schnittstelle zum Anzeigen von Informationen zu Anrufen erläutert.

Aber zuerst erstellen wir in den Funktionen getNumberFirstTime und generateuser_id ein Coockie für die Domain site-with-ct-code.ru mit einer Angabe des relativen Pfads, damit der gleichnamige Code nicht auf mehreren Seiten der Site mit dem Coockie erstellt wird.

function getNumberFirstTime() { //.......... var t = xhr.responseText; var path = '/'; var domain = '.site-with-ct-code.ru'; document.getElementById("calltracking").innerHTML = t; setcookie("phone", t, new Date().getTime() + 60 * 60 * 1000, path, domain); //  }; } function generateuser_id() { var ct_user_id = makeid(33); var path = '/'; var domain = '.site-with-ct-code.ru'; setcookie("ct_user", ct_user_id, new Date().getTime() + 60 * 60 * 1000, path, domain); //  } 

Anrufliste


Wenden wir uns nun der Anrufliste zu. Dies ist der Kern unserer Funktionen, anhand des Vergleichs eingehender Anrufe und der Anzeige von Nummern werden Ereignisse in GA erstellt, Leads in CRM generiert, Briefe an E-Mail gesendet, Grafiken erstellt usw.

Es versteht sich, dass wir Zugriff auf Informationen zu Anrufen aus der TK-Anlage haben oder die Protokollierung durch Synchronisieren des Anrufprotokolls auf den Mobiltelefonen von Managern mit einer externen Datenbank erfolgt. In diesem Fall ist eine Anwendung erforderlich, um das Anrufprotokoll herunterzuladen.

Lassen Sie uns bei der Option verweilen, dass wir umgehend ein aktuelles Anrufprotokoll für die von uns auf der Site angezeigten Nummern erhalten und diese in das Format bringen, das wir beim Erstellen der Nummerntabelle im vorherigen Artikel verwendet haben .

Diese Daten spiegeln wir in der Tabelle incoming_calls wider.

 CREATE TABLE `incoming_calls` ( `id` int(11) NOT NULL, `client_number` varchar(200) NOT NULL, `phone_number` varchar(200) NOT NULL, `time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `end_call` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `incoming_calls` (`id`, `client_number`, `phone_number`, `time`, `end_call`) VALUES (1, '78123456789', '78000000005', '2019-11-01 17:33:10', '2019-11-01 17:43:32'), (4, '79876543210', '78000000004', '2019-11-05 11:52:54', '2019-11-05 11:53:40'), (5, '78888888888', '78000000005', '2019-11-01 18:37:44', '2019-11-01 18:38:43'); ALTER TABLE `incoming_calls` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `id` (`id`); ALTER TABLE `incoming_calls` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;COMMIT; 

Übereinstimmende Anrufprotokolldaten


Ziehen Sie die Daten aus der Nummerntabelle nach Telefonnummer und Zeitraum, in dem die Nummer auf der Site angezeigt und ein Anruf getätigt wurde.

 SELECT numbers.id, incoming_calls.time AS time_when_call_start, incoming_calls.end_call AS time_when_call_end, numbers.time AS time_when_phone_show, numbers.phone AS number FROM numbers INNER JOIN incoming_calls ON numbers.phone = incoming_calls.phone_number WHERE numbers.time BETWEEN incoming_calls.time AND incoming_calls.end_call GROUP by time_when_call_start 

Nun zeigen wir die empfangenen Daten in einer Platte an. Erstellen Sie dazu die Datei ct-server.ru/info.php , in die wir unsere Anfrage stellen.

 <?php $pdo = new PDO('mysql:host=localhost;dbname=calltracking', 'root', ''); $sql = "SELECT numbers.id, incoming_calls.time AS time_when_call_start, incoming_calls.end_call AS time_when_call_end, numbers.time AS time_when_phone_show, numbers.phone AS number FROM numbers INNER JOIN incoming_calls ON numbers.phone = incoming_calls.phone_number WHERE numbers.time BETWEEN incoming_calls.time AND incoming_calls.end_call"; $st = $pdo->prepare($sql); $st->execute(); $result = $st->fetchAll(PDO::FETCH_NUM); echo "<table border = '1'><tr><th>time_when_call_start</th><th>time_when_call_end</th><th>time_when_phone_show</th><th>number</th></tr>"; foreach($result as $row){ echo "<tr><td>{$row[1]}</td><td>{$row[2]}</td><td>{$row[3]}</td><td>{$row[4]}</td></tr>"; } echo "</table>"; $pdo = null; ?> 

Als Ergebnis haben wir eine Tabelle erhalten, anhand der Sie bestimmen können, welche Nummer zum Zeitpunkt des Anrufs auf der Site angezeigt wurde.

Bild

Source: https://habr.com/ru/post/de475060/


All Articles