HHC API docs

Introduce

Introduce

HHC(Hybrid Home Cloud) 서비스에서 HHCS(Hybrid Home Cloud Server)가 제공하는 API을 설명합니다.

Model

Rest API에서 이용되는 모델들에 대해 설명합니다.

Rest API

HHCS가 제공하는 Rest API에 대해 설명합니다.

Upnp Device Descriptor

개요

Upnp 서비스가 제공하는 XML형식의 Descriptor와 매칭이 되는 자바스크립트 객체입니다. 하나의 디바이스 디스크립터는 embeddedDevices 배열 안에서 여러개의 서브 디바이스 디스크립터를 가질 수 있습니다. 하나의 디바이스 디스크립터는 services 배열 안에서 여러개의 서비스 디스크립터를 가질 수 있습니다.

Example:

{
  "details": {
    "baseURL": null,
    "dlnaCaps": null,
    "dlnaDocs": [

    ],
    "friendlyName": "EFM Networks ipTIME N8004R",
    "manufacturerDetails": {
      "manufacturer": "EFM Networks",
      "manufacturerURI": "http:\/\/www.iptime.co.kr"
    },
    "modelDetails": {
      "modelDescription": "EFM Networks ipTIME N8004R",
      "modelName": "ipTIME N8004R",
      "modelNumber": "1",
      "modelURI": "http:\/\/www.iptime.co.kr"
    },
    "presentationURI": "http:\/\/192.168.0.1\/",
    "secProductCaps": null,
    "serialNumber": "12345678",
    "upc": null
  },
  "embeddedDevices": [
    {
      ...
    }
  ],
  "icons": [

  ],
  "identity": {
    "descriptorURL": "http:\/\/192.168.0.1:56450\/etc\/linuxigd\/gatedesc.xml",
    "discoveredOnLocalAddress": "192.168.0.100",
    "interfaceMacAddress": null,
    "maxAgeSeconds": 120,
    "udn": {
      "identifierString": "fc4ec57e-b051-11db-88f8-0060085db3f6"
    }
  },
  "services": [
    {
      "controlURI": "\/dummy",
      "descriptorURI": "\/etc\/linuxigd\/dummy.xml",
      "eventSubscriptionURI": "\/dummy",
      "actions": {

      },
      "serviceId": {
        "id": "dummy1",
        "namespace": "dummy-com"
      },
      "serviceType": {
        "namespace": "schemas-dummy-com",
        "type": "Dummy",
        "version": 1
      },
      "stateVariables": {

      }
    }
  ],
  "type": {
    "namespace": "schemas-upnp-org",
    "type": "InternetGatewayDevice",
    "version": 1
  },
  "version": {
    "major": 1,
    "minor": 0
  }
}

Upnp Service Descriptor

서비스 디스크립터는 하나의 디바이스 디스크립터 안에 여러개 존재할 수 있습니다. actions 배열에 있는 데이터를 참고해서 디바이스를 제어 할 수 있습니다.

Example:

{
  "controlURI": "/etc/linuxigd/gateconnSCPD.ctl",
  "descriptorURI": "/etc/linuxigd/gateconnSCPD.xml",
  "eventSubscriptionURI": "/etc/linuxigd/gateconnSCPD.evt",
  "actions": {
      "GetStatusInfo": {
          "arguments": [{
              "aliases": [],
              "direction": "OUT",
              "name": "NewConnectionStatus",
              "relatedStateVariableName": "ConnectionStatus",
              "returnValue": false
          }, {
              "aliases": [],
              "direction": "OUT",
              "name": "NewLastConnectionError",
              "relatedStateVariableName": "LastConnectionError",
              "returnValue": false
          }, {
              "aliases": [],
              "direction": "OUT",
              "name": "NewUptime",
              "relatedStateVariableName": "Uptime",
              "returnValue": false
          }],
          "inputArguments": [],
          "name": "GetStatusInfo",
          "outputArguments": [{
              "aliases": [],
              "direction": "OUT",
              "name": "NewConnectionStatus",
              "relatedStateVariableName": "ConnectionStatus",
              "returnValue": false
          }, {
              "aliases": [],
              "direction": "OUT",
              "name": "NewLastConnectionError",
              "relatedStateVariableName": "LastConnectionError",
              "returnValue": false
          }, {
              "aliases": [],
              "direction": "OUT",
              "name": "NewUptime",
              "relatedStateVariableName": "Uptime",
              "returnValue": false
          }]
      },
      "GetExternalIPAddress": {
          "arguments": [{
              "aliases": [],
              "direction": "OUT",
              "name": "NewExternalIPAddress",
              "relatedStateVariableName": "ExternalIPAddress",
              "returnValue": false
          }],
          "inputArguments": [],
          "name": "GetExternalIPAddress",
          "outputArguments": [{
              "aliases": [],
              "direction": "OUT",
              "name": "NewExternalIPAddress",
              "relatedStateVariableName": "ExternalIPAddress",
              "returnValue": false
          }]
      },
  },
  "serviceId": {
      "id": "WANIPConn1",
      "namespace": "upnp-org"
  },
  "serviceType": {
      "namespace": "schemas-upnp-org",
      "type": "WANIPConnection",
      "version": 1
  },
  "stateVariables": {
      "PortMappingProtocol": {
          "eventDetails": {
              "eventMaximumRateMilliseconds": 0,
              "eventMinimumDelta": 0,
              "sendEvents": false
          },
          "name": "PortMappingProtocol",
          "type": {
              "allowedValueRange": null,
              "allowedValues": ["TCP", "UDP"],
              "datatype": {
                  "builtin": "STRING"
              },
              "defaultValue": null
          }
      },
      "Uptime": {
          "eventDetails": {
              "eventMaximumRateMilliseconds": 0,
              "eventMinimumDelta": 0,
              "sendEvents": false
          },
          "name": "Uptime",
          "type": {
              "allowedValueRange": null,
              "allowedValues": null,
              "datatype": {
                  "builtin": "UI4"
              },
              "defaultValue": null
          }
      },
      "RSIPAvailable": {
          "eventDetails": {
              "eventMaximumRateMilliseconds": 0,
              "eventMinimumDelta": 0,
              "sendEvents": false
          },
          "name": "RSIPAvailable",
          "type": {
              "allowedValueRange": null,
              "allowedValues": null,
              "datatype": {
                  "builtin": "BOOLEAN"
              },
              "defaultValue": null
          }
      },
  }
}

Upnp Action Response

Upnp 디바이스에 제어 메시지를 보냈을 때(Action)에 대한 응답 객체입니다.

Example:

{
  "NewRemoteHost": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewRemoteHost",
          "relatedStateVariableName": "RemoteHost",
          "returnValue": false
      },
      "datatype": {
          "builtin": "STRING"
      },
      "value": null
  },
  "NewExternalPort": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewExternalPort",
          "relatedStateVariableName": "ExternalPort",
          "returnValue": false
      },
      "datatype": {
          "builtin": "UI2"
      },
      "value": {
          "value": 8123
      }
  },
  "NewProtocol": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewProtocol",
          "relatedStateVariableName": "PortMappingProtocol",
          "returnValue": false
      },
      "datatype": {
          "builtin": "STRING"
      },
      "value": "TCP"
  },
  "NewInternalPort": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewInternalPort",
          "relatedStateVariableName": "InternalPort",
          "returnValue": false
      },
      "datatype": {
          "builtin": "UI2"
      },
      "value": {
          "value": 8123
      }
  },
  "NewInternalClient": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewInternalClient",
          "relatedStateVariableName": "InternalClient",
          "returnValue": false
      },
      "datatype": {
          "builtin": "STRING"
      },
      "value": "127.0.0.1"
  },
  "NewEnabled": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewEnabled",
          "relatedStateVariableName": "PortMappingEnabled",
          "returnValue": false
      },
      "datatype": {
          "builtin": "BOOLEAN"
      },
      "value": true
  },
  "NewPortMappingDescription": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewPortMappingDescription",
          "relatedStateVariableName": "PortMappingDescription",
          "returnValue": false
      },
      "datatype": {
          "builtin": "STRING"
      },
      "value": "HHC Port Mapping"
  },
  "NewLeaseDuration": {
      "argument": {
          "aliases": [],
          "direction": "OUT",
          "name": "NewLeaseDuration",
          "relatedStateVariableName": "PortMappingLeaseDuration",
          "returnValue": false
      },
      "datatype": {
          "builtin": "UI4"
      },
      "value": {
          "value": 0
      }
  }
}

Upnp Event

Upnp 디바이스에서 상태가 변경된 정보를 담고있습니다.

Example:

{
"event": [
  {
    "udn": "311767bc-c98e-3a45-ffff-ffff81697049",
    "currentValues": {
      "FamilyList": {
        "datatype": {
          "builtin": "STRING",
          "displayString": "string"
        },
        "value": null,
        "stateVariable": {
          "name": "FamilyList",
          "eventDetails": {
            "sendEvents": true,
            "eventMaximumRateMilliseconds": 0,
            "eventMinimumDelta": 0
          },
          "service": null,
          "typeDetails": {
            "datatype": {
              "builtin": "STRING",
              "displayString": "string"
            },
            "defaultValue": null,
            "allowedValues": null,
            "allowedValueRange": null
          },
          "moderatedNumericType": false
        }
      },
      "Event": {
        "datatype": {
          "builtin": "STRING",
          "displayString": "string"
        },
        "value": "{\n  \"who\": \"Father\",\n  \"where\": \"Room1\",\n  \"type\": \"Checkout\",\n  \"time\": 1390462617039\n}",
        "stateVariable": {
          "name": "Event",
          "eventDetails": {
            "sendEvents": true,
            "eventMaximumRateMilliseconds": 0,
            "eventMinimumDelta": 0
          },
          "service": null,
          "typeDetails": {
            "datatype": {
              "builtin": "STRING",
              "displayString": "string"
            },
            "defaultValue": null,
            "allowedValues": null,
            "allowedValueRange": null
          },
          "moderatedNumericType": false
        }
      },
      "Move": {
        "datatype": {
          "builtin": "STRING",
          "displayString": "string"
        },
        "value": null,
        "stateVariable": {
          "name": "Move",
          "eventDetails": {
            "sendEvents": true,
            "eventMaximumRateMilliseconds": 0,
            "eventMinimumDelta": 0
          },
          "service": null,
          "typeDetails": {
            "datatype": {
              "builtin": "STRING",
              "displayString": "string"
            },
            "defaultValue": null,
            "allowedValues": null,
            "allowedValueRange": null
          },
          "moderatedNumericType": false
        }
      },
      "SpaceList": {
        "datatype": {
          "builtin": "STRING",
          "displayString": "string"
        },
        "value": null,
        "stateVariable": {
          "name": "SpaceList",
          "eventDetails": {
            "sendEvents": true,
            "eventMaximumRateMilliseconds": 0,
            "eventMinimumDelta": 0
          },
          "service": null,
          "typeDetails": {
            "datatype": {
              "builtin": "STRING",
              "displayString": "string"
            },
            "defaultValue": null,
            "allowedValues": null,
            "allowedValueRange": null
          },
          "moderatedNumericType": false
        }
      }
    },
    "serviceType": {
      "namespace": "schemas-upnp-org",
      "type": "ConditionInfoService",
      "version": 1
    },
    "serviceId": {
      "namespace": "upnp-org",
      "id": "ConditionInfoService"
    },
    "date": 1390462627123
  }
],
"time": 1390462617423
}

Rest API

getAllDeviceDescriptor

개요

Type Value Description
Url /api/{gatewayID}/getAllDeviceDescriptor {gatewayID} : 해당 REST 호출에 대한 게이트웨이 ID
Method GET  
Parameter NONE  
Response Upnp Device Descriptor의 배열 (Model - JSON Object 참조)  

게이트웨이에서 연결된 모든 디바이스 디스크립터를 가져옵니다.

예시

Requset:

GET /SHS/api/8/getAllDeviceDescriptor HTTP/1.1

Response:

[{
   "details": {
       "baseURL": null,
       "dlnaCaps": null,
       "dlnaDocs": [],
       "friendlyName": "EFM Networks ipTIME N104M",
       "manufacturerDetails": {
           "manufacturer": "EFM Networks",
           "manufacturerURI": "http://www.iptime.co.kr"
       },
       "modelDetails": {
           "modelDescription": "EFM Networks ipTIME N104M",
           "modelName": "ipTIME N104M",
           "modelNumber": "1",
           "modelURI": "http://www.iptime.co.kr"
       },
       "presentationURI": "http://192.168.0.1/",
       "secProductCaps": null,
       "serialNumber": "12345678",
       "upc": null
   },
   "embeddedDevices": [{
       "details": {
           "baseURL": null,
           "dlnaCaps": null,
           "dlnaDocs": [],
           "friendlyName": "WANDevice",
           "manufacturerDetails": {
               "manufacturer": "UPnP",
               "manufacturerURI": "http://www.iptime.co.kr"
           },
           "modelDetails": {
               "modelDescription": "WAN Device",
               "modelName": "WAN Device",
               "modelNumber": "20090617",
               "modelURI": "http://www.iptime.co.kr"
           },
           "presentationURI": null,
           "secProductCaps": null,
           "serialNumber": "12345678",
           "upc": "UPNPD"
       },
       "embeddedDevices": [{
           "details": {
               "baseURL": null,
               "dlnaCaps": null,
               "dlnaDocs": [],
               "friendlyName": "WANConnectionDevice",
               "manufacturerDetails": {
                   "manufacturer": "UPnP",
                   "manufacturerURI": "http://www.iptime.co.kr"
               },
               "modelDetails": {
                   "modelDescription": "UPnP daemon",
                   "modelName": "UPnPd",
                   "modelNumber": "20090617",
                   "modelURI": "http://www.iptime.co.kr"
               },
               "presentationURI": null,
               "secProductCaps": null,
               "serialNumber": "12345678",
               "upc": "UPNPD"
           },
           "embeddedDevices": null,
           "icons": [],
           "identity": {
               "descriptorURL": "http://192.168.0.1:3243/etc/linuxigd/gatedesc.xml",
               "discoveredOnLocalAddress": "192.168.0.9",
               "interfaceMacAddress": null,
               "maxAgeSeconds": 120,
               "udn": {
                   "identifierString": "fc4ec57e-b051-11db-88f8-0060085db3f6"
               }
           },
           "services": [{
               "controlURI": "/etc/linuxigd/gateconnSCPD.ctl",
               "descriptorURI": "/etc/linuxigd/gateconnSCPD.xml",
               "eventSubscriptionURI": "/etc/linuxigd/gateconnSCPD.evt",
               "actions": {
                   "GetStatusInfo": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewConnectionStatus",
                           "relatedStateVariableName": "ConnectionStatus",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewLastConnectionError",
                           "relatedStateVariableName": "LastConnectionError",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewUptime",
                           "relatedStateVariableName": "Uptime",
                           "returnValue": false
                       }],
                       "inputArguments": [],
                       "name": "GetStatusInfo",
                       "outputArguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewConnectionStatus",
                           "relatedStateVariableName": "ConnectionStatus",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewLastConnectionError",
                           "relatedStateVariableName": "LastConnectionError",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewUptime",
                           "relatedStateVariableName": "Uptime",
                           "returnValue": false
                       }]
                   },
                   "GetExternalIPAddress": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewExternalIPAddress",
                           "relatedStateVariableName": "ExternalIPAddress",
                           "returnValue": false
                       }],
                       "inputArguments": [],
                       "name": "GetExternalIPAddress",
                       "outputArguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewExternalIPAddress",
                           "relatedStateVariableName": "ExternalIPAddress",
                           "returnValue": false
                       }]
                   },
                   "RequestConnection": {
                       "arguments": [],
                       "inputArguments": [],
                       "name": "RequestConnection",
                       "outputArguments": []
                   },
                   "AddPortMapping": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewInternalPort",
                           "relatedStateVariableName": "InternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewInternalClient",
                           "relatedStateVariableName": "InternalClient",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewEnabled",
                           "relatedStateVariableName": "PortMappingEnabled",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewPortMappingDescription",
                           "relatedStateVariableName": "PortMappingDescription",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewLeaseDuration",
                           "relatedStateVariableName": "PortMappingLeaseDuration",
                           "returnValue": false
                       }],
                       "inputArguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewInternalPort",
                           "relatedStateVariableName": "InternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewInternalClient",
                           "relatedStateVariableName": "InternalClient",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewEnabled",
                           "relatedStateVariableName": "PortMappingEnabled",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewPortMappingDescription",
                           "relatedStateVariableName": "PortMappingDescription",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewLeaseDuration",
                           "relatedStateVariableName": "PortMappingLeaseDuration",
                           "returnValue": false
                       }],
                       "name": "AddPortMapping",
                       "outputArguments": []
                   },
                   "SetConnectionType": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewConnectionType",
                           "relatedStateVariableName": "ConnectionType",
                           "returnValue": false
                       }],
                       "inputArguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewConnectionType",
                           "relatedStateVariableName": "ConnectionType",
                           "returnValue": false
                       }],
                       "name": "SetConnectionType",
                       "outputArguments": []
                   },
                   "GetSpecificPortMappingEntry": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalPort",
                           "relatedStateVariableName": "InternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalClient",
                           "relatedStateVariableName": "InternalClient",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewEnabled",
                           "relatedStateVariableName": "PortMappingEnabled",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewPortMappingDescription",
                           "relatedStateVariableName": "PortMappingDescription",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewLeaseDuration",
                           "relatedStateVariableName": "PortMappingLeaseDuration",
                           "returnValue": false
                       }],
                       "inputArguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }],
                       "name": "GetSpecificPortMappingEntry",
                       "outputArguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalPort",
                           "relatedStateVariableName": "InternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalClient",
                           "relatedStateVariableName": "InternalClient",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewEnabled",
                           "relatedStateVariableName": "PortMappingEnabled",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewPortMappingDescription",
                           "relatedStateVariableName": "PortMappingDescription",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewLeaseDuration",
                           "relatedStateVariableName": "PortMappingLeaseDuration",
                           "returnValue": false
                       }]
                   },
                   "DeletePortMapping": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }],
                       "inputArguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }],
                       "name": "DeletePortMapping",
                       "outputArguments": []
                   },
                   "GetGenericPortMappingEntry": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewPortMappingIndex",
                           "relatedStateVariableName": "PortMappingNumberOfEntries",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalPort",
                           "relatedStateVariableName": "InternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalClient",
                           "relatedStateVariableName": "InternalClient",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewEnabled",
                           "relatedStateVariableName": "PortMappingEnabled",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewPortMappingDescription",
                           "relatedStateVariableName": "PortMappingDescription",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewLeaseDuration",
                           "relatedStateVariableName": "PortMappingLeaseDuration",
                           "returnValue": false
                       }],
                       "inputArguments": [{
                           "aliases": [],
                           "direction": "IN",
                           "name": "NewPortMappingIndex",
                           "relatedStateVariableName": "PortMappingNumberOfEntries",
                           "returnValue": false
                       }],
                       "name": "GetGenericPortMappingEntry",
                       "outputArguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewRemoteHost",
                           "relatedStateVariableName": "RemoteHost",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewExternalPort",
                           "relatedStateVariableName": "ExternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewProtocol",
                           "relatedStateVariableName": "PortMappingProtocol",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalPort",
                           "relatedStateVariableName": "InternalPort",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewInternalClient",
                           "relatedStateVariableName": "InternalClient",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewEnabled",
                           "relatedStateVariableName": "PortMappingEnabled",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewPortMappingDescription",
                           "relatedStateVariableName": "PortMappingDescription",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewLeaseDuration",
                           "relatedStateVariableName": "PortMappingLeaseDuration",
                           "returnValue": false
                       }]
                   },
                   "GetNATRSIPStatus": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewRSIPAvailable",
                           "relatedStateVariableName": "RSIPAvailable",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewNATEnabled",
                           "relatedStateVariableName": "NATEnabled",
                           "returnValue": false
                       }],
                       "inputArguments": [],
                       "name": "GetNATRSIPStatus",
                       "outputArguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewRSIPAvailable",
                           "relatedStateVariableName": "RSIPAvailable",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewNATEnabled",
                           "relatedStateVariableName": "NATEnabled",
                           "returnValue": false
                       }]
                   },
                   "ForceTermination": {
                       "arguments": [],
                       "inputArguments": [],
                       "name": "ForceTermination",
                       "outputArguments": []
                   },
                   "GetConnectionTypeInfo": {
                       "arguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewConnectionType",
                           "relatedStateVariableName": "ConnectionType",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewPossibleConnectionTypes",
                           "relatedStateVariableName": "PossibleConnectionTypes",
                           "returnValue": false
                       }],
                       "inputArguments": [],
                       "name": "GetConnectionTypeInfo",
                       "outputArguments": [{
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewConnectionType",
                           "relatedStateVariableName": "ConnectionType",
                           "returnValue": false
                       }, {
                           "aliases": [],
                           "direction": "OUT",
                           "name": "NewPossibleConnectionTypes",
                           "relatedStateVariableName": "PossibleConnectionTypes",
                           "returnValue": false
                       }]
                   }
               },
               "serviceId": {
                   "id": "WANIPConn1",
                   "namespace": "upnp-org"
               },
               "serviceType": {
                   "namespace": "schemas-upnp-org",
                   "type": "WANIPConnection",
                   "version": 1
               },
               "stateVariables": {
                   "PortMappingProtocol": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "PortMappingProtocol",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": ["TCP", "UDP"],
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "Uptime": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "Uptime",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "UI4"
                           },
                           "defaultValue": null
                       }
                   },
                   "RSIPAvailable": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "RSIPAvailable",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "BOOLEAN"
                           },
                           "defaultValue": null
                       }
                   },
                   "PortMappingEnabled": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "PortMappingEnabled",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "BOOLEAN"
                           },
                           "defaultValue": null
                       }
                   },
                   "ConnectionType": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "ConnectionType",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "InternalClient": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "InternalClient",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "PortMappingLeaseDuration": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "PortMappingLeaseDuration",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "UI4"
                           },
                           "defaultValue": null
                       }
                   },
                   "PortMappingNumberOfEntries": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "PortMappingNumberOfEntries",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "UI2"
                           },
                           "defaultValue": null
                       }
                   },
                   "LastConnectionError": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "LastConnectionError",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": ["ERROR_NONE"],
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "PortMappingDescription": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "PortMappingDescription",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "ExternalPort": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "ExternalPort",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "UI2"
                           },
                           "defaultValue": null
                       }
                   },
                   "InternalPort": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "InternalPort",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "UI2"
                           },
                           "defaultValue": null
                       }
                   },
                   "PossibleConnectionTypes": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "PossibleConnectionTypes",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": ["Unconfigured", "IP_Routed", "IP_Bridged"],
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "RemoteHost": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "RemoteHost",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "ConnectionStatus": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "ConnectionStatus",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": ["Unconfigured", "Connecting", "Connected", "PendingDisconnect", "Disconnecting", "Disconnected"],
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "ExternalIPAddress": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "ExternalIPAddress",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "STRING"
                           },
                           "defaultValue": null
                       }
                   },
                   "NATEnabled": {
                       "eventDetails": {
                           "eventMaximumRateMilliseconds": 0,
                           "eventMinimumDelta": 0,
                           "sendEvents": false
                       },
                       "name": "NATEnabled",
                       "type": {
                           "allowedValueRange": null,
                           "allowedValues": null,
                           "datatype": {
                               "builtin": "BOOLEAN"
                           },
                           "defaultValue": null
                       }
                   }
               }
           }],
           "type": {
               "namespace": "schemas-upnp-org",
               "type": "WANConnectionDevice",
               "version": 1
           },
           "version": {
               "major": 1,
               "minor": 0
           }
       }],
       "icons": [],
       "identity": {
           "descriptorURL": "http://192.168.0.1:3243/etc/linuxigd/gatedesc.xml",
           "discoveredOnLocalAddress": "192.168.0.9",
           "interfaceMacAddress": null,
           "maxAgeSeconds": 120,
           "udn": {
               "identifierString": "fc4ec57e-b051-11db-88f8-0060085db3f6"
           }
       },
       "services": [{
           "controlURI": "/etc/linuxigd/gateicfgSCPD.ctl",
           "descriptorURI": "/etc/linuxigd/gateicfgSCPD.xml",
           "eventSubscriptionURI": "/etc/linuxigd/gateicfgSCPD.evt",
           "actions": {
               "GetCommonLinkProperties": {
                   "arguments": [{
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewWANAccessType",
                       "relatedStateVariableName": "WANAccessType",
                       "returnValue": false
                   }, {
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewLayer1UpstreamMaxBitRate",
                       "relatedStateVariableName": "Layer1UpstreamMaxBitRate",
                       "returnValue": false
                   }, {
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewLayer1DownstreamMaxBitRate",
                       "relatedStateVariableName": "Layer1DownstreamMaxBitRate",
                       "returnValue": false
                   }, {
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewPhysicalLinkStatus",
                       "relatedStateVariableName": "PhysicalLinkStatus",
                       "returnValue": false
                   }],
                   "inputArguments": [],
                   "name": "GetCommonLinkProperties",
                   "outputArguments": [{
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewWANAccessType",
                       "relatedStateVariableName": "WANAccessType",
                       "returnValue": false
                   }, {
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewLayer1UpstreamMaxBitRate",
                       "relatedStateVariableName": "Layer1UpstreamMaxBitRate",
                       "returnValue": false
                   }, {
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewLayer1DownstreamMaxBitRate",
                       "relatedStateVariableName": "Layer1DownstreamMaxBitRate",
                       "returnValue": false
                   }, {
                       "aliases": [],
                       "direction": "OUT",
                       "name": "NewPhysicalLinkStatus",
                       "relatedStateVariableName": "PhysicalLinkStatus",
                       "returnValue": false
                   }]
               }
           },
           "serviceId": {
               "id": "WANCommonIFC1",
               "namespace": "upnp-org"
           },
           "serviceType": {
               "namespace": "schemas-upnp-org",
               "type": "WANCommonInterfaceConfig",
               "version": 1
           },
           "stateVariables": {
               "Layer1UpstreamMaxBitRate": {
                   "eventDetails": {
                       "eventMaximumRateMilliseconds": 0,
                       "eventMinimumDelta": 0,
                       "sendEvents": false
                   },
                   "name": "Layer1UpstreamMaxBitRate",
                   "type": {
                       "allowedValueRange": null,
                       "allowedValues": null,
                       "datatype": {
                           "builtin": "UI4"
                       },
                       "defaultValue": null
                   }
               },
               "Layer1DownstreamMaxBitRate": {
                   "eventDetails": {
                       "eventMaximumRateMilliseconds": 0,
                       "eventMinimumDelta": 0,
                       "sendEvents": false
                   },
                   "name": "Layer1DownstreamMaxBitRate",
                   "type": {
                       "allowedValueRange": null,
                       "allowedValues": null,
                       "datatype": {
                           "builtin": "UI4"
                       },
                       "defaultValue": null
                   }
               },
               "WANAccessType": {
                   "eventDetails": {
                       "eventMaximumRateMilliseconds": 0,
                       "eventMinimumDelta": 0,
                       "sendEvents": false
                   },
                   "name": "WANAccessType",
                   "type": {
                       "allowedValueRange": null,
                       "allowedValues": ["DSL", "POTS", "Cable", "Ethernet"],
                       "datatype": {
                           "builtin": "STRING"
                       },
                       "defaultValue": null
                   }
               },
               "PhysicalLinkStatus": {
                   "eventDetails": {
                       "eventMaximumRateMilliseconds": 0,
                       "eventMinimumDelta": 0,
                       "sendEvents": false
                   },
                   "name": "PhysicalLinkStatus",
                   "type": {
                       "allowedValueRange": null,
                       "allowedValues": ["Up", "Down", "Initializing", "Unavailable"],
                       "datatype": {
                           "builtin": "STRING"
                       },
                       "defaultValue": null
                   }
               }
           }
       }],
       "type": {
           "namespace": "schemas-upnp-org",
           "type": "WANDevice",
           "version": 1
       },
       "version": {
           "major": 1,
           "minor": 0
       }
   }],
   "icons": [],
   "identity": {
       "descriptorURL": "http://192.168.0.1:3243/etc/linuxigd/gatedesc.xml",
       "discoveredOnLocalAddress": "192.168.0.9",
       "interfaceMacAddress": null,
       "maxAgeSeconds": 120,
       "udn": {
           "identifierString": "fc4ec57e-b051-11db-88f8-0060085db3f6"
       }
   },
   "services": [{
       "controlURI": "/dummy",
       "descriptorURI": "/etc/linuxigd/dummy.xml",
       "eventSubscriptionURI": "/dummy",
       "actions": {},
       "serviceId": {
           "id": "dummy1",
           "namespace": "dummy-com"
       },
       "serviceType": {
           "namespace": "schemas-dummy-com",
           "type": "Dummy",
           "version": 1
       },
       "stateVariables": {}
   }],
   "type": {
       "namespace": "schemas-upnp-org",
       "type": "InternetGatewayDevice",
       "version": 1
   },
   "version": {
       "major": 1,
       "minor": 0
   }
}]

Control

개요

Type Value Description
Url /api/{gatewayID}/upnp/{uuid}/{deviceType}*/{serviceType}/{actionName}
  • {gatewayID} : 해당 REST 호출에 대한 게이트웨이 ID
  • {uuid} : Upnp 디바이스의 UUID
  • {deviceType} : 내장된 디바이스에 대한 타입, 0개 이상이 될 수 있음 {serviceType} : 제어 요청할 서비스에 대한 서비스 타입 {actionName} : 제어 이름
Method POST  
Parameter Input 타입 인자를 JSON 객체  
Response Output 타입 인자에 결과 값  

게이트웨이에서 연결된 디바이스중 UUID에 해당하는 디바이스 디스크립터를 가져옵니다.

예시

Requset:

POST /SHS/api/20/upnp/fc4ec57e-b051-11db-88f8-0060085db3f6/schemas-upnp-org:WANDevice:1/schemas-upnp-org:WANConnectionDevice:1/schemas-upnp-org:WANIPConnection:1/GetGenericPortMappingEntry HTTP/1.1

Payload

{
 "NewPortMappingIndex": "0"
}

Response:

{
 "NewRemoteHost": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewRemoteHost",
     "relatedStateVariableName": "RemoteHost",
     "returnValue": false
   },
   "datatype": {
     "builtin": "STRING"
   },
   "value": null
 },
 "NewExternalPort": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewExternalPort",
     "relatedStateVariableName": "ExternalPort",
     "returnValue": false
   },
   "datatype": {
     "builtin": "UI2"
   },
   "value": {
     "value": 443
   }
 },
 "NewProtocol": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewProtocol",
     "relatedStateVariableName": "PortMappingProtocol",
     "returnValue": false
   },
   "datatype": {
     "builtin": "STRING"
   },
   "value": "TCP"
 },
 "NewInternalPort": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewInternalPort",
     "relatedStateVariableName": "InternalPort",
     "returnValue": false
   },
   "datatype": {
     "builtin": "UI2"
   },
   "value": {
     "value": 443
   }
 },
 "NewInternalClient": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewInternalClient",
     "relatedStateVariableName": "InternalClient",
     "returnValue": false
   },
   "datatype": {
     "builtin": "STRING"
   },
   "value": "192.168.0.6"
 },
 "NewEnabled": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewEnabled",
     "relatedStateVariableName": "PortMappingEnabled",
     "returnValue": false
   },
   "datatype": {
     "builtin": "BOOLEAN"
   },
   "value": true
 },
 "NewPortMappingDescription": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewPortMappingDescription",
     "relatedStateVariableName": "PortMappingDescription",
     "returnValue": false
   },
   "datatype": {
     "builtin": "STRING"
   },
   "value": "03BEB4HTTPS"
 },
 "NewLeaseDuration": {
   "argument": {
     "aliases": [

     ],
     "direction": "OUT",
     "name": "NewLeaseDuration",
     "relatedStateVariableName": "PortMappingLeaseDuration",
     "returnValue": false
   },
   "datatype": {
     "builtin": "UI4"
   },
   "value": {
     "value": 0
   }
 }
}

Test2

test2-1

11111111111111

test2-2

2222222222222222222 test222.

test2-2-1

ddddddddddddddddd dddddddd