Trang đang mở CÔNG KHAI — chế độ test. Không đòi đăng nhập, ai có URL đều xem được MAC, IPv4 và số line của toàn bộ máy. Xong test thì mở yealink.php, đặt YL_REQUIRE_LOGIN = true và chuyển file về thư mục app.

Điện thoại Yealink 02/09/26b

Theo dõi trạng thái SIP, cuộc gọi và tín hiệu sống của từng máy. TR-069 Inform quyết định online/offline; Action URL báo sự kiện.

Cập nhật
Tổng thiết bị 2
Online (TR-069) 1
Offline 0
Chỉ có event 1
Có 1 request mang biến chưa được thay. Server nhận nguyên văn $mac, $ip… chứ không phải giá trị thật. User-Agent là Yealink nên request ĐÚNG là do điện thoại phát — nghĩa là firmware không hỗ trợ đúng những biến đó. Bỏ hết biến, dùng URL tĩnh (hook vẫn đọc được MAC từ User-Agent), rồi thêm lại từng biến một, bắt đầu bằng $ip.

Thiết bị (2 kết quả)

Trạng thái Line MAC IPv4 Model / Firmware SIP Cuộc gọi Tín hiệu gần nhất
ONLINE 988 80:5E:C0:11:CB:FC 192.168.1.22 SIP-T19P_E2 53.81.0.110 35 giây trước activity
CHỈ CÓ EVENT failed off_hook 5 phút trước off_hook
Ngưỡng offline 180 giây — bằng 3 lần Periodic Inform Interval. Một Inform trượt vì mạng chớp không làm máy nhảy sang offline.

Chẩn đoán hook (162 request thô · 162 trong 24 giờ · 140 từ Yealink)

Thời điểm Method Scheme IP gọi tới Loại Kết quả Ghi chú · User-Agent
02/09/26 17:02:58 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 17:02:57 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 17:01:57 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 17:01:57 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 17:00:57 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 17:00:57 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:59:57 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:59:57 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:58:56 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:58:56 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:58:13 GET https 74.7.227.48 action_url đã ghi event=off_hook · máy=unidentified · BIẾN CHƯA THAY: mac=$mac ip=$ip model=$model firmware=$firmware line=$active_user · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:13 GET https 74.7.227.48 action_url đã ghi event=register_failed · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:12 GET https 74.7.227.48 action_url đã ghi event=outgoing_call · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:12 GET https 74.7.227.48 action_url đã ghi event=incoming_call · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:11 GET https 74.7.227.48 action_url đã ghi event=setup_completed · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:11 GET https 74.7.227.48 action_url đã ghi event=missed_call · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:10 GET https 74.7.227.48 action_url đã ghi event=on_hook · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:10 GET https 74.7.227.48 action_url đã ghi event=offhook_test · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:09 GET https 74.7.227.48 selftest đã ghi tự kiểm tra từ trình duyệt Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:09 GET https 74.7.227.48 action_url đã ghi event=registered · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:08 GET https 74.7.227.48 action_url đã ghi event=ip_changed · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:08 GET https 74.7.227.48 action_url đã ghi event=off_hook · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:07 GET https 74.7.227.48 action_url đã ghi event=established · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:07 GET https 74.7.227.48 action_url đã ghi event=unregistered · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:06 GET https 74.7.227.48 action_url đã ghi event=terminated · máy=unidentified · UA KHÔNG phải Yealink Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:05 GET https 74.7.227.48 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:58:02 GET https 74.7.227.48 status chỉ xem không có action= nào Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
02/09/26 16:57:56 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:57:56 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:56:56 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:56:56 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:55:56 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:55:55 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:54:55 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:54:55 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:53:55 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:53:55 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:52:55 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:52:55 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:51:54 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:51:54 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:50:54 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:50:54 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:49:54 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:49:54 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:48:54 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:48:54 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:47:53 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:47:53 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:46:53 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:46:53 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:45:53 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:45:53 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:44:52 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:44:52 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:43:52 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:43:52 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:42:52 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:42:52 POST http 14.177.1.193 tr069 đã ghi Inform 2 PERIODIC · máy=mac:80:5E:C0:11:CB:FC · 13 parameter Yealink CPE Avsystem Libcwmp/3.6.22
02/09/26 16:41:52 POST http 14.177.1.193 tr069 kết thúc session POST rỗng — không có lệnh nào cho CPE Yealink CPE Avsystem Libcwmp/3.6.22
Ghi VÔ ĐIỀU KIỆN: mọi request tới hook đều thành một dòng ở đây, kể cả khi thiếu tham số, sai tên biến hay body rỗng. Bảng này rỗng = tín hiệu chưa ra khỏi tầng mạng. Chạy tự kiểm tra

Sự kiện gần nhất (101 bản ghi)

Thời điểm Nguồn Sự kiện Line MAC Đầu bên kia
02/09/26 17:02:57 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 17:01:57 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 17:00:57 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:59:57 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:58:56 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:58:13 action_url off_hook
02/09/26 16:58:13 action_url register_failed
02/09/26 16:58:12 action_url outgoing_call
02/09/26 16:58:12 action_url incoming_call
02/09/26 16:58:11 action_url setup_completed
02/09/26 16:58:11 action_url missed_call
02/09/26 16:58:10 action_url on_hook
02/09/26 16:58:10 action_url offhook_test
02/09/26 16:58:09 selftest selftest
02/09/26 16:58:09 action_url registered
02/09/26 16:58:08 action_url ip_changed
02/09/26 16:58:08 action_url off_hook
02/09/26 16:58:07 action_url established
02/09/26 16:58:07 action_url unregistered
02/09/26 16:58:06 action_url terminated
02/09/26 16:57:56 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:56:56 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:55:55 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:54:55 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:53:55 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:52:55 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:51:54 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:50:54 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:49:54 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:48:54 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:47:53 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:46:53 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:45:53 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:44:52 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:43:52 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:42:52 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:41:52 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:40:51 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:39:51 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC
02/09/26 16:38:51 tr069 2 PERIODIC 988 80:5E:C0:11:CB:FC

Cấu hình trên máy (bấm vào URL để chép)

Mục Giá trị Đặt ở đâu trên máy
TR-069 ACS URL Dùng http khi test. Enable TR069 = Enabled · Periodic Inform = Enabled · Interval = 60 Settings → Auto Provision → TR069
Phép thử tối thiểu URL TĨNH, không biến nào. Đặt riêng ở ô Off Hook, Confirm, sang menu khác rồi quay lại kiểm tra đã lưu, nhấc tay nghe, chờ vài giây, gác máy. MAC vẫn nhận diện được vì hook đọc từ User-Agent. Features → Action URL → Off Hook
Bản đầy đủ có biến CHỈ dùng sau khi URL tĩnh đã chạy. Thêm biến từng cái một, bắt đầu bằng $ip. Features → Action URL
Chế độ truy cập CÔNG KHAI Đổi bằng hằng YL_REQUIRE_LOGIN ở đầu file. Bật true chỉ được khi file nằm cạnh auth_guard.php, tức khi đã dọn về thư mục app. yealink.php mục 00
Thư mục cài đặt hook.petmart.app/ theme.css đang nạp từ https://v.petmart.app/theme.css. Ba file yealink.php, yealink-hook.php, yealink.json phải ở CÙNG một thư mục.
Nhúng vào menu app frame-ancestors 'self' https://v.petmart.app https://h.petmart.app Chrome báo "đã từ chối kết nối" khi nhúng iframe cross-origin bị chặn — đọc như lỗi mạng nhưng là chính sách nhúng. Nếu thư mục này có .htaccess đặt Header always set X-Frame-Options thì PHP không xoá được, phải thêm Header always unset X-Frame-Options cho file này. yealink.php mục 00 + .htaccess
Miễn ép HTTPS RewriteCond %{REQUEST_URI} !^/yealink-hook.php$ Thêm dòng này vào .htaccess NGAY TRÊN RewriteRule ép HTTPS. Không có nó thì mọi lời gọi http nhận 301 và Yealink bỏ luôn — nó không đi theo redirect. .htaccess mục 2
Chứng chỉ Only Accept Trusted Certificates = Disabled Chỉ cần khi buộc phải dùng https. CA store trong firmware T19 E2 là bản cũ, không có gốc của chứng chỉ đời mới, nên bắt tay TLS thất bại IM LẶNG. Security → Trusted Certificates

Các ô Action URL (mỗi ô một event riêng)

Ô trên máy URL Dùng để
Setup Completed Máy khởi động xong — dùng để biết máy vừa reboot
Registered Đăng ký SIP thành công
Unregistered Mất đăng ký SIP
Register Failed Đăng ký SIP thất bại
Off Hook Nhấc tay nghe — event dễ kích hoạt nhất khi test
On Hook Gác máy
Incoming Call Có cuộc gọi vào
Outgoing Call Gọi ra
Call Established Cuộc gọi được kết nối
Call Terminated Cuộc gọi kết thúc
Missed Call Cuộc gọi nhỡ
IP Changed Đổi IPv4
Dùng CHUNG một URL cho mọi ô thì server chỉ biết "máy vừa có hoạt động" mà không biết hoạt động gì. Mỗi ô một event= riêng chỉ mất công một lần, rồi Auto Provision đẩy hàng loạt.