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} |
|
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
}
}
}