mDNS-SD Configuration API
This API is based on the Device Configuration API framework. For guidance on how to use these APIs, please refer to Device Configuration APIs.
Overview
The mDNS-SD configuration API makes it possible to enable and disable the mDNS-SD (Multicast DNS Service Discovery) functionality, set and get the friendly name of a device, and make Discovery calls to find other devices on the local network.
Use cases
Manage mDNS-SD
Enable or disable mDNS-SD
Set the mdnssd.v2.enabled property to enable or disable mDNS-SD.
Example:
- curl
- HTTP
curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/mdnssd/v2/enabled \
--data '{
"data": true
}'
PATCH /config/rest/mdnssd/v2/enabled HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": true
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success"
}
Manage friendly name
Use mdnssd.v2.friendlyName to check or change the friendly name.
Example:
- curl
- HTTP
curl --request GET \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/mdnssd/v2/friendlyName
GET /config/rest/mdnssd/v2/friendlyName HTTP/1.1
HOST: my-device
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": "AXIS M1075-L - B8A44FE56631"
}
- curl
- HTTP
curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/mdnssd/v2/friendlyName \
--data '{
"data": "string"
}'
PATCH /config/rest/mdnssd/v2/friendlyName HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": "string"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success"
}
Make discovery call
Make a discovery call to look for nearby devices with specific services.
This trigger will check for other mDNS-SD clients on the local network with services supplied in the services parameter. If multiple services are supplied, any client advertising any of the services will be discovered.
Example:
- curl
- HTTP
curl --request POST \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/mdnssd/v2/discovery \
--data '{
"data": {
"services": [
"_axis-video._tcp"
],
"timeout": 2
}
}'
POST /config/rest/mdnssd/v2/discovery HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": {
"services": [
"_axis-video._tcp"
],
"timeout": 2
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": [
{
"deviceServices": [
{
"serviceName": "_axis-video._tcp",
"servicePort": 80,
"serviceTxt": "macaddress=B8A44F1D58C3"
}
],
"friendlyName": "AXIS Q3536-LVE - B8A44F1D58C3",
"hostname": "spechn-3.local.",
"interface": "eth0",
"ipv4Address": [
"192.168.0.218"
],
"ipv6Address": [
"ccee:2da0:54ac:8a2f:baa4:4fff:fe1d:58c3",
"fe80::baa4:4fff:fe1d:58c3"
]
}
]
}
Custom errors
| Error code | Error message | Description |
|---|---|---|
| 100 | Invalid request | mDNS-SD is disabled during a discovery call. |
Example:
- curl
- HTTP
curl --request POST \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/mdnssd/v2/discovery \
--data '{
"data": {
"services": [
"_axis-video._tcp"
],
"timeout": 2
}
}'
POST /config/rest/mdnssd/v2/discovery HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": {
"services": [
"_axis-video._tcp"
],
"timeout": 2
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "error",
"error": {
"code": 100,
"message": "Backend defined error: \"mDNS-SD is not enabled, can not call discovery.\""
}
}
API definition
Structure
mdnssd.v2 (Root Entity)
├── enabled (Property)
├── friendlyName (Property)
├── discovery (Action)
Entities
mdnssd.v2
- Description: mDNS-SD configuration.
- Type: Singleton
- Operations
- Get
- Attributes
- Dynamic Support: No
Properties
enabled
- Description: The enabled state for mDNS-SD.
- Datatype: boolean
- Operations
- Get (Permissions: admin)
- Set (Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
friendlyName
- Description: The friendly name for mDNS-SD.
- Datatype: string
- Operations
- Get (Permissions: admin)
- Set (Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions
discovery
- Description: Discover devices in the network.
- Request Datatype: DiscoveryData
- Response Datatype: DiscoveryResponseData
- Trigger Permissions: admin
- Attributes
- Dynamic Support: No
Data Types
Device
- Description: Device found by discovery.
- Type: complex
- Fields
- deviceServices
- Description: The services this device offers.
- Type: DeviceServiceList
- Nullable: No / Gettable: Yes
- friendlyName
- Description: The friendlyname of the device.
- Type: string
- Nullable: No / Gettable: Yes
- hostname
- Description: The hostname of the device.
- Type: string
- Nullable: No / Gettable: Yes
- interface
- Description: On which local interface the device was discovered.
- Type: string
- Nullable: No / Gettable: Yes
- ipv4Address
- Description: A list of IPv4 addresses found on the device.
- Type: StringArray
- Nullable: No / Gettable: Yes
- ipv6Address
- Description: A list of IPv6 addresses found on the device.
- Type: StringArray
- Nullable: No / Gettable: Yes
- deviceServices
DeviceService
- Description: A service which a discovered device offers.
- Type: complex
- Fields
- serviceName
- Description: The name of the service.
- Type: string
- Nullable: No / Gettable: Yes
- servicePort
- Description: The port on which the service may be found.
- Type: integer
- Nullable: No / Gettable: Yes
- serviceTxt
- Description: The text record of the service.
- Type: string
- Nullable: No / Gettable: Yes
- serviceName
DeviceServiceList
- Description: A list of DeviceServices.
- Type: array
- Element type: DeviceService
- Null Value: No
DiscoveryData
- Description: Data type used for discovery.
- Type: complex
- Fields
- services
- Description: The services to look for during the discovery.
- Type: ServiceList
- Nullable: No / Gettable: Yes
- timeout
- Description: The timeout for how many seconds a discovery should last.
- Type: Timeout
- Nullable: No / Gettable: Yes
- services
DiscoveryResponseData
- Description: Devices found through discovery.
- Type: array
- Element type: Device
- Null Value: No
Service
- Description: A service for the discovery to discover.
- Type: string
- Pattern:
^_[A-Za-z0-9]A-Za-z0-9-_]{0,13}[A-Za-z0-9]\._(udp|tcp)$|^_[A-Za-z0-9]\.\_(udp|tcp)$
ServiceList
- Description: A list of services.
- Type: array
- Element type: Service
- Null Value: No
StringArray
- Description: An array of strings.
- Type: array
- Element type: string
- Null Value: No
Timeout
- Description: Valid timeout value in seconds.
- Type: integer
- Minimum Value: 1
- Maximum Value: 15