it-swarm-vi.com

Gửi tin nhắn thông báo OSD tới tất cả các hệ thống trên mạng

Những gì tôi đang cố gắng làm là gửi thông tin ID người gọi (CID) từ một hệ thống đang chạy Asterisk + FreePBX tới tất cả (3) hệ thống giao diện của MythTV trên mạng của tôi. Tôi muốn thông tin CID bật lên trên bất cứ điều gì đang diễn ra (ví dụ: cho dù đó là trên menu hay phát lại bản ghi). Cuối cùng cũng có thể có thông tin khác, nhưng bây giờ CID sẽ là một khởi đầu tuyệt vời.

Các thông báo kiểu libnotify là tốt (mặc dù tôi có thể cần tăng kích thước văn bản để hiển thị nó). Tôi đã suy nghĩ một cái gì đó như Growl , mặc dù điều này dường như không tồn tại đối với Linux.

Lý tưởng nhất là tôi có thể thực hiện một số loại phát sóng tới toàn mạng, ví dụ: từ hệ thống FreePBX tôi có thể chạy một lệnh như:

notify --broadcast  --title "Incoming Call"  "Smith J\n613-555-1234"

Và sau đó trên bất kỳ frontend huyền thoại, nó sẽ xuất hiện ở đâu đó trên màn hình.


Lưu ý: có một plugin MythNotify , mà tôi đã sử dụng trong lần lặp lại trước khi cài đặt, nhưng nó có một hạn chế nghiêm trọng (tôi tin rằng dựa trên cách thức hoạt động của công cụ OSD của MythTV) mà nó chỉ có thể hiển thị thông báo trong khi phát lại video: không phải trong khi trong menu. Tôi cũng nhớ rằng việc hiển thị đúng cách là một điều khó khăn: nó sử dụng XML để nhắn tin sau đó XSLT để thay đổi sang định dạng XML của huyền thoại. Nếu bạn muốn hiển thị một cái gì đó hơi khác một chút, bạn phải tạo một số ít các tệp XML mới và thậm chí sau đó nhận thông báo "callerid-from-phonebook.xml" để thực sự kết xuất với callerid-from-phonebook- (từ xa) Tệp osd.xml "để hiển thị là một loại nghệ thuật đen.

4
gregmac

Bạn có thể làm điều đó bằng cách sử dụng các công cụ thông báo dòng lệnh.

  1. Cài đặt gói 'libnotify-bin' trên tất cả các hệ thống trên mạng của bạn, cung cấp một công cụ gọi là 'notify-send'.
  2. Cài đặt máy chủ ssh trên tất cả các hệ thống trên mạng của bạn và đảm bảo rằng chúng được cấu hình để cho phép đăng nhập ssh không mật khẩu (xem http: //www.debian-adftime.org/articles/152 để biết thêm thông tin về điều này).
  3. Thiết lập tập lệnh thông báo của bạn trên máy chủ của bạn để thực hiện gửi thông báo, như thế này:

    tên người dùng ssh @ system1 'notify-send "Cuộc gọi đến từ Smith J\n613-555-1234"'

    tên người dùng ssh @ system2 'notify-send "Cuộc gọi đến từ Smith J\n613-555-1234"'

Điều này sẽ gây ra một thông báo bật lên trên các hệ thống có tên 'system1' và 'system2'.

2
fader