Membuat layanan pelacakan panggilan sederhana, bagian 2

Pada artikel sebelumnya, kami menerapkan pembuatan dan verifikasi keberadaan coockie yang digunakan untuk menggantikan nomor pada halaman, serta menambahkan pencatatan nomor yang ditampilkan dengan mengacu pada sumber transisi. Artikel ini akan membahas proses membuat antarmuka untuk menampilkan informasi tentang panggilan.

Tapi pertama-tama, di getNumberFirstTime dan fungsi- fungsiuseruser , kita akan membuat coockie ke domain situs-dengan-ct-code.ru dengan indikasi jalur relatif sehingga kode dengan nama yang sama tidak dibuat pada beberapa halaman situs dengan coockie.

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); //  } 

Log Panggilan


Sekarang mari kita beralih ke log panggilan. Ini adalah inti dari fungsionalitas kami, sesuai dengan perbandingan panggilan masuk dan tampilan angka, acara akan dibuat di GA, pembuatan lead di CRM, mengirim surat ke email, grafik, dll.

Dapat dipahami bahwa kami memiliki akses ke informasi tentang panggilan dari PBX, atau pencatatan terjadi dengan menyinkronkan log panggilan pada ponsel manajer dengan basis data eksternal, dalam hal ini diperlukan aplikasi untuk mengunduh log panggilan.

Mari kita memikirkan opsi di mana kami segera menerima log panggilan terbaru untuk nomor yang digunakan oleh kami untuk ditampilkan di situs dan membawanya ke dalam format yang digunakan oleh kami saat membuat tabel angka di artikel sebelumnya .

Kami mencerminkan data ini dalam tabel incoming_calls .

 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; 

Mencocokkan Data Log Panggilan


Tarik data dari tabel nomor dengan nomor telepon dan periode waktu ketika nomor itu ditampilkan di situs dan panggilan dibuat.

 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 

Sekarang kami menampilkan data yang diterima dalam piring. Untuk melakukan ini, buat file ct-server.ru/info.php , di mana kami menempatkan permintaan kami.

 <?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; ?> 

Sebagai hasilnya, kami mendapat tabel di mana Anda dapat menentukan nomor mana yang ditampilkan di situs pada saat panggilan berlangsung.

gambar

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


All Articles