Overview

Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the network and establish functional network services for data sharing, communications and entertainment. UPnP uses -

Universal Plug and Play (UPnP) is an implementation of the generic GUPnP framework for device discovery and using services from control points. GUPnP is a library for implementing both UPnP clients and services using GObject and LibSoup. It allows for fully asynchronous use without using threads and so cleanly integrates naturally into daemons, and supports all of the UPnP features.

The GUPnP framework consists of the following libraries:

Procedure involving in implementation of the GUPnP Client:

UPnP Applications:

xdiscovery

Gateway set up : Internally UPnP uses a script /lib/rdk/gwSetup.sh to set up the gateway in client devices. Here we sets up the routing table, DNS setting etc. 

{
 "sno":"PAD200067027",
 "isgateway":"yes",
 "gatewayip":"169.254.106.182",
 "gatewayipv6":"null",
 "hostMacAddress":"84:e0:58:57:73:55",
 "gatewayStbIP":"69.247.111.43",
 "ipv6Prefix":"null",
 "deviceName":"null",
 "bcastMacAddress":"84:e0:58:57:73:59",
 "recvDevType":"X1",
 "buildVersion":"66.77.33p44d5_EXP",
 "timezone":"US/Eastern",
 "rawoffset":"-18000000",
 "dstoffset":"60",
 "dstsavings":"3600000",
 "usesdaylighttime":"yes",
 "baseStreamingUrl":"http://127.0.0.1:8080/videoStreamInit?recorderId=P0118154760",
 "requiresTRM":"true",
 "baseTrmUrl":"ws://127.0.0.1:9988",
 "playbackUrl":"http://127.0.0.1:8080/hnStreamStart?deviceId=P0118154760&DTCP1HOST=127.0.0.1&DTCP1PORT=5000",
 "dnsconfig":"search hsd.tvx.comcast.net;nameserver 75.75.75.75;nameserver 75.75.76.76;nameserver 69.252.80.80;",
 "hosts":"69.247.111.43 pacexg1v3;",
 "systemids":"channelMapId:1901;controllerId:3415;plantId:0;vodServerId:70001",
 "receiverid":"P0118154760"
}

XCal-Device module

XcCal-Device module is responssible for getting the following device discovery information.

API Specification

Refer the link UPnP API Documentation for more implementation details of XCal-Device and XCal-Discovery used in RDK.