Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Các thiết bị webex

    CÁC THIẾT BỊ WEBEX


    Các thiết bị Webex cho phép người dùng giao tiếp và làm việc với người khác theo thời gian thực. Các thiết bị cộng tác có thể đặt trong phòng học hoặc trên bàn làm việc. Không chỉ hỗ trợ chất lượng thoại và video chất lượng cao, các thiết bị này cũng hỗ trợ lập trình. Thông qua các API nhúng này (thường được gọi là xAPI), bạn có thể mở rộng và nâng cấp các phòng Webex và các thiết bị theo vài cách:
    • Tạo ra các giao tiếp người dùng để tùy chỉnh các trải nghiệm cuộc họp và điều khiển các thiết bị IoT chẳng hạn như đèn, rèm che cửa, các máy chiếu ra khỏi các giao tiếp thiết bị.
    • Cấu hình các thiết bị ở qui mô lớn thông qua các đoạn script tự động.
    • Khởi tạo hay trả lời các cuộc gọi tự động.
    • Triển khai các đoạn mã trên các thiết bị mà không cần triển khai các hệ thống điều khiển bên ngoài.

    Các thiết bị webex bao gồm các thiết bị sau.
    • Webex Board: Cisco Webex Room Kit, Room Kit Plus, and Room Kit Pro.
    • Room Devices: Room 55, Room 70, Room 70 Dual, Board 55/55S,Board 70/70S, Board 85S, Cisco TelePresence MX200 G2, MX300 G2, MX700, MX800, MX800 Dual, SX10, SX20, and SX80.
    • Webex Desk Device: Cisco Webex DX80 and DX70 Collaboration Endpoint Software version 9.
    Click image for larger version

Name:	dataurl173534.png
Views:	18
Size:	28.8 KB
ID:	438234

    1. xAPI


    xAPI là API cho các phần mềm đầu cuối collaboration (Cisco CE và RoomOS) cho các thiết bị cả thiết bị on-prem đăng ký và thiết bị video conferencing devices (CUCM và VCS) và các thiết bị đăng ký vào dịch vụ cloud của Cisco (Webex devices). xAPI bao gồm bốn nhóm lớn: Lệnh (Commands), Cấu hình (Configurations), Trạng thái (Status) và các Sự kiện (Events).
    Bảng bên dưới mô tả các API mức cao mà xAPI hỗ trợ.
    Phương thức API Mô tả
    GET http://<ipaddress>/status.xml Thu thập trạng thái đầy đủ của thiết bị.
    GET http://<ipaddress>/configuration.xml Lấy cấu hình đầy đủ của thiết bị.
    GET http://<ipaddress>/command.xml Lấy một tập lệnh đầy đủ được hỗ trợ bởi thiết bị.
    GET http://<ipaddress>/valuespace.xml Lấy thông tin tổng quan về các spaces được dùng trong hệ thống, các thông tin trạng thái và các lệnh.
    POST http://<ipaddress>/putxml Cấu hình bất cứ cài đặt nào trên thiết bị.
    2. Xác thực xAPI


    Truy cập đến xAPI yêu cầu người dùng xác thực dùng HTTP basic access như một người dùng với vai trò ADMIN. Những yêu cầu request mà không xác thực sẽ trả về mã 401, chứa một thách thức challenge cho vấn đề xác thực. Nếu một ứng dụng gửi ra nhiều lệnh dùng xAPI, bạn được khuyến cáo dùng xác thực theo phiên bởi vì các xác thực cơ bản thực hiện động tác xác thực lại theo từng yêu cầu, có thể làm ảnh hưởng đến hiệu năng của ứng dụng của bạn.

    Xác thực theo phiên của xAPI

    Xác thực với tên người dùng và mật khẩu kết hợp cho từng API request có thể tạo ra quá nhiều độ trễ trong một vài trường hợp sử dụng. Để ngăn ngừa điều này, API hỗ trợ cho một cơ chế xác thực theo phiên.

    Để mở một phiên, hãy thực hiện hàm POST đến địa chỉ http://<ipaddress>/
    xmlapi/session/begin bắt đầu với xác thực cơ bản. Kết quả trả về là một SessionId-cookie có thể
    được dùng với các yêu cầu requests theo sau. Chú ý là khi sử dụng các phiên xác thực API, việc đóng các phiên làm việc một cách tường minh khi bạn đã hoàn thành là kinh nghiệm thực tế quan trọng. Nếu không làm vậy có thể làm cho thiết bị bị sử dụng hết session vì một số các session hiện tại là có sẵn và nó không bị timeout một cách tự động.

    Bạn tạo ra một phiên bằng cách gửi ra một yêu cầu xAPI cho các thiết bị đầu cuối. Ví dụ bên dưới mô tả một hàm Python POST request, trong đó máy chủ trả lời bằng session cookie.


    """ Webex Devices - Get Session Cookie """
    import requests
    URL =
    "http://10.10.20.159/xmlapi/session/begin"
    HEADERS = {
    'Authorization': "BasicZGV2YXNjOkMxc2NvITIz"
    }
    RESPONSE = requests.request("POST", URL,
    headers=HEADERS)
    print(RESPONSE.headers["Set-Cookie"])


    Kết quả header trả về chứa các session cookie, như mô tả trong hình bên dưới.


    $ python3 sess.py
    SessionId=031033bebe67130d4d94747b6b9d4e4f6bd29651 62ed542f22d32d75a9f238f9;
    Path=/;
    HttpOnly

    3. Thu thập thông tin của các thiết bị hiện hành


    Sau khi một phiên đã được thiết lập, cookie cho phiên đó được dùng cho từng tương tác. Ví dụ bên dưới mô tả làm thế nào để dùng cookie để thu thập thông tin trạng thái hiện thời của thiết bị bằng cách dùng một hàm GET đơn giản để lấy thông tin trạng thái.


    """ Webex Device - Endpoint Status """
    import requests
    URL = "http://10.10.20.159/status.xml"
    HEADERS = {
    'Cookie':
    "SessionId=c6ca2fc23d3f211e0517d4c603fbe4205c7 7d13 dd6913c7bc12eef4085b7637b"
    }
    RESPONSE = requests.request("GET", URL, headers=HEADERS)
    print(RESPONSE.text)

    4. Thiết lập các thuộc tính thiết bị


    Ví dụ bên dưới mô tả làm thế nào để dùng cookie để gán vị trí camera với các giá trị nào đó.


    """ Webex Device - Set Camera Position """
    import requests
    URL = "http://10.10.20.159/put.xml"
    PAYLOAD = (
    '<Command>' +
    ' <Camera>' +
    ' <PositionSet command="True">' +
    ' <CameraId>1</CameraId>' +
    ' <Pan>150</Pan>' +
    ' <Tilt>150</Tilt>' +
    ' </PositionSet>' +
    ' </Camera>' +
    '</Command>'
    )
    HEADERS = {
    'Content-Type': "application/xml",
    'Cookie':"SessionId=c6ca2fc23d3f211e0517d4c603fbe4 205c77d13dd6913c7bc12eef4085b7637b"
    }
    RESPONSE = requests.request("POST", URL,
    data=PAYLOAD, headers=HEADERS)
    print(RESPONSE.text)

    5. Đăng ký đến một sự kiện dùng webhook


    Bạn có thể lấy một thiết bị hay một đầu cuối để cập nhật các sự kiện liên quan (thông qua webhook) hay để thay đổi trạng thái API (ví dụ các trạng thái, sự kiện, các cập nhật cấu hình).
    Các sự kiện này được gửi đến một địa chỉ URL cụ thể. Bạn có thể chọn giữa các sự kiện được cập nhật ở định dạng XML hoặc JSON. Bạn có thể đăng ký đến các thay đổi trên nhiều phần của API bằng cách đăng ký lên đến 15 biểu mẫu phản hồi khác nhau.

    Câu lệnh để đăng ký là xCommand HttpFeedback. Cú pháp như sau:


    FeedbackSlot: <1..4> ServerUrl(r): <S: 1, 2048> Format:<XML/JSON>
    Expression: <S: 1, 255> Expression: <S: 1, 255> Expression: <S:1, 255>
    Expression: <S: 1, 255> Expression: <S: 1, 255> Expression: <S:1, 255>
    Expression: <S: 1, 255> Expression: <S: 1, 255> Expression: <S:1, 255>
    Expression: <S: 1, 255> Expression: <S: 1, 255> Expression: <S:1, 255>
    Expression: <S: 1, 255> Expression: <S: 1, 255> Expression: <S: 1, 255>

    Ví dụ bên dưới mô tả một hàm Python POST để đăng ký đến một webhook.


    """ Webex Devices - Set Webhook """
    import requests
    URL = "http://10.10.20.159/put.xml"
    PAYLOAD = (
    '<Command>' +
    ' <HttpFeedback>' +
    ' <Register command="True">' +
    ' <FeedbackSlot>1</FeedbackSlot>' +
    ' <ServerUrl>http://127.0.0.1/devascwebhook</
    ServerUrl>' +
    ' <Format>JSON</Format>' +
    ' <Expression
    item="1">/Configuration</Expression>' +
    ' <Expression
    item="2">/Event/CallDisconnect</Expression>' +
    ' <Expression
    item="3">/Status/Call</Expression>' +
    ' </Register>' +
    ' </HttpFeedback>' +
    '</Command>'
    )
    HEADERS = {
    'Content-Type': "application/xml",
    'Cookie':
    "SessionId=c6ca2fc23d3f211e0517d4c603fbe4205c7 7
    d13dd6913c7bc12eef4085b7637b,SessionId=c6ca2fc23d3 f211e0517d4c603f
    be4205c77d13dd6913c7bc12eef4085b7637b;
    SessionId=c6ca2fc23d3f211e0517d4c603fbe4205c77d
    13dd6913c7bc12eef4085b7637b"
    }
    RESPONSE = requests.request("POST", URL,
    data=PAYLOAD, headers=HEADERS)
    print(RESPONSE.text)

    6. Room Analytics People Presence Detector


    Chức năng People Presence liệt kê các phòng họp hàng ngày và các phân tích số lần sử dụng và giúp bạn tìm ra các phòng họp ảo nào có sẵn dựa trên nhận dạng khuôn mặt và công nghệ siêu âm. xAPI cho phép bạn bật hay tắc các detector thông qua API. Ví dụ bên dưới mô tả một đoạn Python script trong đó bật chức năng People Presence detector trên một thiết bị lên mức ON.


    """ Webex Devices - Set People Presence
    detector ON """
    import requests
    URL = "http://10.10.20.159/put.xml"
    PAYLOAD = (
    '<Configuration>' +
    ' <RoomAnalytics>'
    '
    <PeoplePresenceDetector>On</PeoplePresenceDetec
    tor>' +
    ' </RoomAnalytics>' +
    '</Configuration>'
    )
    HEADERS = {
    'Content-Type': "application/xml",
    'Cookie':
    "SessionId=c6ca2fc23d3f211e0517d4c603fbe4205c7 7d13 dd6913c7bc12eef4085b7637b"
    }
    RESPONSE = requests.request("POST", URL,
    data=PAYLOAD, headers=HEADERS)
    print(RESPONSE.text)



Working...
X