Cisco Webex Room Kit 시리즈 PeopleCount의 HTTP POST

Cisco 화상 회의 제품인 Cisco Webex Room Kit 및 Quad Camera에는 People Count라는 회의실 내 인원수를 계산하는 기능이 있습니다.
이것은 API 에 의해 HTTP POST 를 사용해 추출 혹은 송신이 가능합니다만, 그래프화 하는 샘플로서 IOT 디바이스의 정보로부터 그래프를 생성 가능한 ThingSpeak 를 사용해 해설해 갑니다. Room Kit 측의 소프트웨어는 CE9.6.1 이상 또는 Room OS(Webex 등록)가 필요합니다.
thingspeak.com에서 무료로 계정을 만들 수 있으므로 사전에 만들어 둡니다.

thingspeak 채널 만들기



thingspeak.com에 로그인하여 채널을 만듭니다.

Name: Webex Room Kit People Count
Field 1: PeopleCount
그 외: 기본값으로



빈 그래프가 표시됩니다.



API Key 얻기



API Key에서 Write 권한이 있는 API Key를 가져옵니다.



POST 형식



HTTP POST 형식을 조사합니다.
htps // jp. 마 t 후 rks. 이 m/헤일p/테펑 gs페아 k/w 하고 있었다. HTML

Body 에 api_key 와 fieldx 의 Value 를 json 로 기입해 가면 좋을 것 같습니다.
POST https://api.thingspeak.com/update.json
api_key=XXXXXXXXXXXXXXXX
field1=123

Webex Room Kit 매크로 편집기



Webex Room Kit 웹 UI에서 Integration > Macro Editor에서 매크로 편집기를 시작합니다.
PeopleCount 를 비통화 시에도 카운트할 수 있도록 합니다.
xapi.config.set('RoomAnalytics PeopleCountOutOfCall', 'On');

또한 HTTP POST를 카운트 변동마다 던지기 위해 HTTPClient 모드를 켭니다.
xapi.config.set('HttpClient Mode', 'On');

이들은 각각 CLI 명령에 해당합니다.
xconfiguration RoomAnalytics PeopleCountOutOfCall: On
** end

OK
xconfiguration HttpClient Mode: on
** end

OK

웹 설정이나 SSH로 넣어도 됩니다만 신규로 도입하는 것 등을 생각해, 매크로에 넣어 둡니다.

HTTP POST 매크로



thingsspeak에 변수 count를 field1에 게시하는 postPeopleCount 함수를 만듭니다. API_KEY는 환경에 맞는 API KEY로 변경해야 합니다.
const url = 'https://api.thingspeak.com/update.json';
const token = "API_KEY";

function postPeopleCount(count) {
  var payload = { 
    "api_key": token,
    "field1":count
  };
  xapi.command('HttpClient Post', 
  {
    Header: 
    ['Content-Type: application/json'],
    Url: url
  },
  JSON.stringify(payload))
  .then((result) => {
    console.log('HTTP Post was success:' + result.StatusCode);
  }).catch((err) => {
    console.log('HTTP Post was failed:' + err.message);
  });
}

xcommand의 Http Post는 다음 형식입니다.
xcommand //httpclient ?
xCommand HttpClient Allow Hostname Add
    Expression(r): <S: 2, 200>
xCommand HttpClient Allow Hostname Clear
xCommand HttpClient Allow Hostname List
xCommand HttpClient Allow Hostname Remove
    Id(r): <0..9>
xCommand HttpClient Post
    AllowInsecureHTTPS: <False, True> (default False)
    Header[N]: <S: 0, 1024>
    Url(r): <S: 8, 2048>
xCommand HttpClient Put
    AllowInsecureHTTPS: <False, True> (default False)
    Header[N]: <S: 0, 1024>
    Url(r): <S: 8, 2048>

CA 신뢰 목록



Webex Room Kit 시리즈를 비롯한 CE 및 Room OS는 HTTP POST에서 사용할 수있는 CA 신뢰 목록이 기본값이 아니므로 서버를 신뢰할 수 없습니다. AllowInsecureHTTPS를 사용하는 방법도 있지만 공용 URL이므로 신뢰 목록을 설치합니다.

htps : // 아피.ぃんgsぺあk. 이 m/우 p도. j 그런 에 브라우저로 액세스합니다. 키 표시를 클릭하고 인증서에서 최상위 CA를 선택한 상태에서 파일 내보내기를 클릭합니다. 실제 작업은 브라우저에 따라 약간 다릅니다. Base64 형식으로 출력해야 합니다.



Webex Room Kit 웹 UI에서 Security > Certificate Authorities를 선택하여 방금 전 파일을 업로드합니다.


PeopleCount 매크로



PeopleCount 의 변동시에 방금전의 POST 함수 postPeopleCount() 를 달리게 하는 매크로를 작성해, 매크로 기동시에 호출하는 기술을 합니다.
function listenToPeopleCount() {
  xapi.status.on('RoomAnalytics PeopleCount Current', state => {
    postPeopleCount(state);
  });
}

listenToPeopleCount();

완성



이것으로 완성입니다. Webex Room Kit가 대기 모드로 들어간 경우 등 카운트를 얻을 수 없을 때는 -1을 반환합니다.


const xapi = require('xapi');

const url = 'https://api.thingspeak.com/update.json';
const token = "##API_KEY##";

xapi.config.set('HttpClient Mode', 'On');
xapi.config.set('RoomAnalytics PeopleCountOutOfCall', 'On');

function postPeopleCount(count) {
  var payload = { 
    "api_key": token,
    "field1":count
  };
  xapi.command('HttpClient Post', 
  {
    Header: 
    ['Content-Type: application/json'],
    Url: url
  },
  JSON.stringify(payload))
  .then((result) => {
    console.log('HTTP Post was success:' + result.StatusCode);
  }).catch((err) => {
    console.log('HTTP Post was failed:' + err.message);
  });
}

function listenToPeopleCount() {
  xapi.status.on('RoomAnalytics PeopleCount Current', state => {
    postPeopleCount(state);
  });
}

listenToPeopleCount();

참고



Cisco Webex Room 시리즈 명령 참조
htps //w w. 시코. 코 m / c / 자 _ jp / 삿포 rt / 코보라 치온 - 엔 d 포인 ts / s 파크ぇ 렌 세 st. html # ~ 타 b 엔 g

CE9.6.x - In-Room Control 및 Macros - USB 입력 장치, HTTP POST/PUT 및 기본 UI 버튼 숨기기

CE9.2 Macro 프레임워크 토론

좋은 웹페이지 즐겨찾기