Cling: Getting started with device search - upnp

I'm new to UPnP development and recently started to use Cling to develop a UPnP client in Java.
To me the Cling documentation is insufficient. Especially it's lacking of basic examples, such as discovering UPnP devices via IP address.
The search for all available devices is shown in an example:
UpnpService upnpService = new UpnpServiceImpl();
upnpService.getControlPoint().search(new STAllHeader());
However, this search is very slow compared to other UPnP applications, such as my remote TV control app on Android.
This leads me to three questions:
Can you point at good tutorials, that show how to use Cling to remote control TVs?
Is there a way to speed this search up? Or is there an alternative type of search that achieves the same results in less time?
How can I search for a device via its IP address directly?

Related

Send real-time video via wifiSend

I would like to make a personal application to be installed on two iPhones. The first to be used as a webcam that transmits to the second via wifi.
Having no experience with xCode, I am looking for a code example to connect 2 devices via wifi and transmit a real-time video stream.
Unfortunately, the documentation and examples I found are deprecated or partial and inconsistent.
Where can I find some code examples to help me solve my problem, preferably in ObjectiveC (but also in Swift)?
Thank you

Can WebRTC help me create a virtual classroom?

I'm trying to create a virtual classroom. Since I'm not familiar with the web conferencing (or conferencing) terminology, I'm not sure if I'm understanding WebRTC's capabilities as I should.
I've looked in the examples for WebRTC, and all that I've found seem to be peer-to-peer connections. As I understand it, peer-to-peer connections are between two entities. However, virtual classrooms are different as far as I know; they require all parties to be connected to each other, so that when one user speaks/types, all users hear her.
Is such a thing possible with WebRTC? If so, what is it called and how can I read more about it?
Check out the open source Big Blue Button project (http://bigbluebutton.org/). They're currently Flash based but are actively moving towards webRTC. Rumor has it they'll be using Kurento as their MCU. They also have open source mobile (Android/iOS) application code.
According to http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/, such a thing is possible:
Beyond one-to-one: multi-party WebRTC
You may also want to take a look at Justin Uberti's proposed IETF standard for
a REST API for access to TURN Services.
It's easy to imagine use cases for media streaming that go beyond a simple
one-to-one call: for example, video conferencing between a group of colleagues,
or a public event with one speaker and hundreds (or millions) of viewers.
A WebRTC app can use multiple RTCPeerConnections so to that every endpoint
connects to every other endpoint in a mesh configuration. This is the approach
taken by apps such as talky.io, and works remarkably well for a small handful
of peers. Beyond that, processing and bandwidth consumption becomes excessive,
especially for mobile clients.
Maybe you can try searching in the webrtc google group
hope this helps

Do any IP cameras implement the UPnP Digital Security Camera profile?

I'm trying to find an IP camera that allows me to operate it via UPnP. The UPnP forum provides a Digital Security Camera profile:
http://upnp.org/specs/ha/digitalsecuritycamera/
However, I have not been able to find an IP camera that implements this profile, which would allow a uniform method of controlling different IP cameras. Most IP cameras appear to implement UPnP for discovery purposes only, with the user having to retrieve the presentation URL for the device and then control the camera via the manufacturer's web UI.
The UPnP forum list of certified products does not contain any such devices, and the websites of most IP camera manufacturers are vague about what UPnP services they provide (if not explicitly stating that they only support device discovery).
Has anyone come across any IP cameras which support the Digital Security Camera profile and it's associated services?
I know this is an old question, but I came across it in a search and thought I'd share what I know.
I own two D-Link DCS-5010L cameras. The documentation for the camera doesn't specify specifically which UPnP services the camera supports. Here's a link to the User's Manual:
http://www.dlink.com/-/media/Consumer_Products/DCS/DCS%205010L/Manual/DCS_5010L_A1_Manual_v1_00_WW.pdf
On page 47 it says it supports "UPnP Port Forwarding". UPnP only appears six times in the User's Guide.
I can tell you that it supports email of images of video, pan / tilt, and video sharing. Sorry, I know that's pretty general information, and it seemed like you were looking for some specific answers. I googled it and searched around, I couldn't find anything listing the specific UPnP services supported. My guess is, you might need to contact the different camera vendors. It might give you a good start, if you're still looking for the info four years after you posted the question. :-)

Online map locator api like GPS

Google maps, ip location etc. working good.
But none of the services are locating a computer exactly where it is on a map.
Anyone know any api which can locate a computer on a map without user inputs.
I am tired of ip location, it is not at all exact and my client is not happy. :(
Thanks
Gobi
What you're trying to do is not possible without specialized hardware. Google maps on cell phones without GPS uses cell tower station information. Most other phones use actual GPS receivers. With neither of those, the only way for your network-attached computer to tell where it is is by looking at who owns its IP address, which is what the IP location stuff does. Unfortunately, that database has pretty low geographical resolution. If you really want accurate and precise location information, you have to have a GPS receiver.
This cant be done unless you have some GPS device connected to the computer. But I guess it is forbidden in the licence to use real time tracking in Google Maps, but I might be wrong.
There's one more way, but I don't know how practical it is: visible wifi networks. If your PC has wifi hardware then you can often correlate the list of networks that you can see to an approximate location based on databases of networks and position. This is how e.g. iPod touches can locate themselves, and iPhones when there's poor GPS reception in built-up areas.
But even if your end-user has wifi hardware and you can somehow read the network list from it then I'm not sure if there are public datasets for this though.
The W3C Geolocation API allows websites to request the user's best available location from the browser. In some cases this will use IP geolocation which you've already seen to be inaccurate, but it can sometimes do better.
The API is agnostic to the device and the method used to obtain location; on an iPhone, the Geolocation API may use cell tower triangulation, available WiFi network lookup or GPS satellite geolocation, or some combination. On Firefox or Chrome on the laptop, Google uses WiFi networks and IP address to give a location which is often much, much better than IP geolocation alone.
If you had a GPS attached to your computer, it's possible that your browser could take advantage of that too -- it's expected that future versions of Internet Explorer will support the W3C Geolocation API using the Windows 7 Location Platform, which can accept location from an attached GPS or manual entry or some other plugin.

What is the best server side solution for a real-time GPS tracking system

Well, I tried to ask this question as a comment on this question, but I thought that maybe no one will notice it, so I decided to ask it as a separate one.
The question is about how to do real-time GPS tracking system things; if we have the following scenario:
Rather than connecting a GPS receiver to a PC, the user will have a mobile device with an integrated GPS receiver.
Location data will be sent over mobile network using GPRS data connection to a server side.
The data will be processed and a KML path file will be created and updated on time intervals and used to track the user using Google Earth.
The question is: what is the best method to accomplish this scenario for the server side; is it a web service, a web application, a windows service, a windows application or what exactly? Taking into account that the system will serve a number of users simultaneously, and that more users may use the system in the future(scalability issues).
Thank you in advance and I highly appreciate any help :)
What kind of device are you using exactly, something like this or something more sophisticated / configurable? If we assume that the device sends its data over TCP, I would consider the following approach with separate input/output processes:
Input: a process listening specific TCP port and storing incoming coordinates to database with a device id. Preferably, your listening loop must be able to handle simultaneous connections without them blocking each other.
Output: web application reading coordinates from database for a given device id and displaying them through the Google Earth API.
Use whatever programming language(s) you are familiar with.
For me there is a technical limitation/risk here -> the mobile device, and its connectivity.
1) What are your requirements? Do you need to support various mobile devices or will you focus on only one platform ?
2) More importantly, you have to understand that GPRS data connections differ from a PC connected to the Internet. There are various connection restrictions imposed by different mobile operators.
If I was to design such a system in order to minimise those risks I would go with a web server running on port 80 which the mobile devices would upload their Long/Lat through POST (or even GET to simplify things).
EDIT: Regarding scalability, it would be very easy to scale things up in the future using tried&tested load-balancing techniques.
EDIT2: Whichever technology you decide to use, i would HIGHLY recommend that the first thing you do is to mock up a prototype. Those connection restrictions could be show-stoppers. Ideally you need to explore them before you have made any serious investment.