ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OpenVidu REST API 공식문서 분석
    프로젝트/WebRTC 화상통화 프로젝트 2022. 7. 11. 10:53
    728x90

    OpenVidu Server를 배포 후에는 OpenVidu REST API 공식문서를 활용하여 호출할 수 있습니다.

     

    공식문서 링크

     

    공통적인 사항

     

    공통적으로 /openvidu/api 경로를 사용합니다.

     

    동일한 Authorization 헤더를 사용합니다.

     

    Authorization 헤더는 사용자 이름과 암호에 Base64 인코딩을 적용해서 제공됩니다.

     

    헤더가 잘못된 경우 모든 API 호출에는 401 상태 코드가 반환됩니다.

     

    다음은 헤더 예시 입니다.

    Authorization: Basic T1BFTlZJRFVBUFA6TVlfU0VDUkVU

     

     

    Session Object

    세션은 사용자가 서로 미디어 스트림을 송수신할 수 있는 회의실입니다.

     

    {
        "id": "ses_YnDaGYNcd7",
        "object": "session",
        "createdAt": 1538481996019,
        "mediaMode": "ROUTED",
        "recordingMode": "MANUAL",
        "defaultRecordingProperties": {
            "name": "MyRecording",
            "hasAudio": true,
            "hasVideo": true,
            "outputMode": "COMPOSED",
            "recordingLayout": "BEST_FIT",
            "resolution": "1280x720",
            "frameRate": 25,
            "shmSize": 536870912,
            "mediaNode": "media_i-po39jr3e10rkjsdfj"
        },
        "customSessionId": "TestSession",
        "connections": {
            "numberOfElements": 0,
            "content": []
        },
        "recording": false,
        "forcedVideoCodec": "VP8",
        "allowTranscoding": false,
        "mediaNodeId": "media_i-po39jr3e10rkjsdfj"
    }

     

    id

    세션의 식별자입니다.

     

    object

    객체의 유형을 나타내는 문자열로 동일한 유형은 객체는 동일한 값을 공유합니다.

    즉, 모든 세션은 object 값으로 session을 갖습니다.

     

    createdAt

    세션이 생성된 시간을 UTC 밀리 세컨드로 표시합니다.

     

     

    customSession

    POST /openvidu/api/sessions 메서드의 customSessionID 필드를 전달하여 세션을 초기화한 경우에 표기됩니다.

     

    connections

    세션에 현재 연결된 상태

     

    recording

    녹화의 여부

     

    관련되어 수행할 수 있는 작업

    특정 세션을 생성, 조회, 삭제 

    모든 세션에 대한 정보 조회

     

     

    Connection Object

    세션에 연결된 각 사용자를 나타냅니다.

     

    {
        "id": "con_Xnxg19tonh",
        "object": "connection",
        "type": "WEBRTC",
        "status": "active",
        "sessionId": "ses_YnDaGYNcd7",
        "createdAt": 1538481999022,
        "activeAt": 1538481999843,
        "location": "Madrid, Spain",
        "ip": "37.122.145.190",
        "platform": "Chrome 85.0.4183.102 on Linux 64-bit",
        "token": "wss://localhost:4443?sessionId=TestSession&token=tok_AVe8o7iltWqtijyl&role=PUBLISHER&version=2.16.0&coturnIp=localhost&turnUsername=M2ALIY&turnCredential=7kfjy2",
        "serverData": "My Server Data",
        "clientData": "My Client Data",
        "record": true,
        "role": "PUBLISHER",
        "kurentoOptions": {
            "videoMaxRecvBandwidth": 1000,
            "videoMinRecvBandwidth": 300,
            "videoMaxSendBandwidth": 1000,
            "videoMinSendBandwidth": 300,
            "allowedFilters": [
                "GStreamerFilter",
                "ZBarFilter"
            ]
        },
        "rtspUri": null,
        "adaptativeBitrate": null,
        "onlyPlayWithSubscribers": null,
        "networkCache": null,
        "publishers": [
            {
                "createdAt": 1538481999710,
                "streamId": "str_CAM_NhxL_con_Xnxg19tonh",
                "mediaOptions": {
                    "hasAudio": true,
                    "audioActive": true,
                    "hasVideo": true,
                    "videoActive": true,
                    "typeOfVideo": "CAMERA",
                    "frameRate": 30,
                    "videoDimensions": "{\"width\":640,\"height\":480}",
                    "filter": {}
                }
            }
        ],
        "subscribers": [
            {
                "streamId": "str_MIC_JSXs_con_OV0CsFsykJ",
                "createdAt": 1538482000856
            }
        ],
        "customIceServers": [
            {
                "url": "turn:turn-domain.com:443",
                "username": "usertest",
                "credential": "userpass"
            }
        ]
    }

    관련되어 수행할 수 있는 작업

    세션에 새로운 Connection 생성

    특정 세션의 특정 Connection 정보 가져오기

    세션의 모든 Connection 가져오기

    세션에서 사용자의 연결 강제로 해제하기 (이때 사용자가 스트림을 게시하고 있었다면 이를 수신하는 사용자들도 모두 해제됨)

     

    Recording Object

    {
        "id": "ses_YnDaGYNcd7",
        "object": "recording",
        "name": "MyRecording",
        "outputMode": "COMPOSED",
        "hasAudio": true,
        "hasVideo": true,
        "resolution": "1280x720",
        "frameRate": 25,
        "recordingLayout": "CUSTOM",
        "customLayout": "",
        "sessionId": "ses_YnDaGYNcd7",
        "createdAt": 1600564785109,
        "size": 303072692,
        "duration": 108000.234,
        "url": "https://my.openvidu.ip/openvidu/recordings/ses_YnDaGYNcd7/MyRecording.mp4",
        "status": "ready"
    }

     

    관련되어 수행할 수 있는 작업

    녹음 시작, 녹음 종료, 특정 녹음 조회, 모든 녹음 조회, 특정 녹음 삭제

     

     

     

     

     

     

     

     

     

     

     

     

    출처

    https://docs.openvidu.io/en/stable/reference-docs/REST-API/

     

    REST API - OpenVidu Docs

    From here you can search these documents. Enter your search terms below.

    docs.openvidu.io

     

    '프로젝트 > WebRTC 화상통화 프로젝트' 카테고리의 다른 글

    OAuth2.0 이란?  (0) 2022.07.15
    프로젝트 개요  (0) 2022.07.12
    OpenVidu 배포하기  (0) 2022.07.10
    OpenVidu 공식문서로 시작해보기  (0) 2022.07.09
    WebRTC 쿠렌토(Kurento)란?  (0) 2022.07.04

    댓글

Designed by Tistory.