Skip to content

iOS App Bugs/Feature Requests

2

Comments

  • Maybe to keep this from getting too long, a new thread should be started for version 1.0.1
    I'll include a link to this one for reference.
  • Pinch-to-zoom has been restored in the 1.0.2 update, available from the App Store.
  • Great app. Love that you are actively taking feedback and rapidly releasing updates.

    As stated above, consider the case where one is connecting via VPN and not directly across Internet, for server detection/configuration. (As a side-note: you really should work on deprecating any usage of SecuritySpy by exposing to Internet via port forwarding. Is so insecure that should not even been considered. Ultimately, you may need to create/run a cloud-based proxy service to provide remote access if people are not able to create their own VPN. Most of the consumer security cams provide this as part of their retail/consumer offerings.)

    In the "Multiplex" view, would like to be able to tap on a thumbnail and be switched to the single camera view of that camera.

    Would like to have audio support with on-screen speaker icon for "audio on/audio off" toggle. Spyglass app almost gets this right - they have on-screen icon but impossible to tell if audio is set "on" or "off". (The icon does not change visual appearance in a way that can be seen.)

  • Hi @Spiv glad you like the app, to address your points:

    You can use the app over a VPN, but auto-detection of the server won't work (because Bonjour doesn't work over a VPN). Most users don't use a VPN anyway so this hasn't really been a problem. As for security, allowing incoming connections into SecuritySpy from the Internet is only insecure if you use weak passwords. Security can be further enhanced by limiting access from the internet to SecuritySpy's encrypted HTTPS service only. With these two things in place, SecuritySpy is virtually un-hackable.

    A proxy service such as you propose would be expensive for us to provide, as it requires lots of bandwidth and multiple servers in a centralised location that we would have to set up and manage. This is why companies who provide such services charge a monthly/yearly subscription fee. Furthermore, any such system would itself become a target for hackers.

    I think our users appreciate that they have direct access to their own servers over their own internet connection, without having to pay us a fee.

    Good idea about going to individual cameras from the multiplex view, I'll add that to the "to do" list.

    As for audio, the switch on the side of the iPhone/iPad turns the audio on or off.
  • Thanks for the feedback.

    I don't know the full technical details, but I believe some of the proxy "reflector" services are only used as a "meet me" service. Both nodes (the client request and the server connection) are matched/meet up in a cloud based server. Once matched, a direct peer-to-peer connection is established.

    So the traffic through the cloud/proxy server is minimal - only the initial setup, not the ongoing data streams. It just solves the problem of problematic port forwarding firewall traversal, and configuration.

    I believe this is how remote access products like TeamViewer, and others work. The actual data flow is peer-to-peer, but the cloud service/proxy provides a global authentication and "meet me" coordinator. That's how/why most of these are provided free of charge.

    The monthly fees/paid services are typically for the cloud services that actual host video streams or other data - yes, that would be expensive in cost, bandwidth, and server capacity. Not suggesting that.

    Again, for me, I have set up a personal VPN server, so not a problem, but some of my clients may not want to invest in a VPN server so a proxy service might be of interest for them.
  • Hi @Spiv thanks for the follow-up, I understand better what you mean now.

    The problem is how to establish that peer-to-peer connection, and there is no foolproof method for this. There are a few ways to do it - for example Skype and TeamViewer appear to use a method called "UDP pinholing" or "UDP hole punching". This works most of the time, but I believe they also have a fallback of routing the traffic through their own servers if the P2P connection fails.

    Also, this only works for UDP, and while UDP is fine for the live video streams, it's not suitable for all the other files that SecuritySpy serves (HTML files, image files, movie files) - for this you need to use TCP (because TCP packets are guaranteed to be delivered whereas UDP packets aren't - one packet missing from a live video stream doesn't matter whereas one packet missing from a file download will render that file unreadable).

    Other P2P services that deal with file downloads (e.g. BitTorrent) use port forwarding, automatically configured in the router by the software (using the UPnP protocol or similar). This is exactly what SecuritySpy does.

    Note also that all the above-mentioned services require the use of their own client apps - they don't work in a standard web browser without plugins.

    All in all, as far as I'm aware, to achieve proper access to SecuritySpy's web server, using a standard web browser with no plugins, the only two methods are port forwarding and VPN. If you can point me to any information that indicates otherwise I'd be very interested to investigate!
  • edited December 2016
    Hi @Ben,
    i think there is a little bug with the iOS app.

    I can't connect to my ss server from WAN.

    The error says: "The server that responded is not SecuritySpy".

    I think that the app require an HTTP Header like this:
    Server: BBVS/4.0

    but my SS Server is behind an nginx reverse proxy that respond whit this header:
    Server: nginx

    Full headers:
    My server:

    HTTP/1.1 401 Unauthorized
    Server: nginx
    Date: Thu, 15 Dec 2016 11:17:15 GMT
    Content-Type: text/plain
    Content-Length: 16
    Connection: keep-alive
    Keep-Alive: timeout=20
    WWW-Authenticate: Basic realm="WEBCAM"
    Cache-Control: max-age=0, must-revalidate
    Pragma: no-cache
    Strict-Transport-Security: max-age=15768000; includeSubdomains; preload

    Your demo server:
    HTTP/1.1 401 Unauthorized
    Server: BBVS/4.0
    WWW-Authenticate: Basic realm="SecuritySpy Live Demo"
    Cache-Control: max-age=0, must-revalidate
    Pragma: no-cache
    Keep-Alive: timeout=20, max=100
    Connection: Keep-Alive
    Content-Length: 16
    Content-Type: text/plain

    I have changed the NGINX header configuration to "BBVS/4.0"
    but nothing changes.. same error...

    Any suggestion?

    Thanks
  • Enhancement request:

    For the tvOS version, add the ability to require a PIN code (user assigned) to get past a splash screen and see anything useful.

    With the Apple TV a shared use device (family room or media room, etc.) I don't want guests, visitors (especially kids), surfing the apps grid and playing around with the app at all.

    Might be useful on the iOS version (if easier to do it once and have it on both), but strongly needed for the Apple TV.
  • Hi @Spiv thanks for the suggestion I think this would be a good idea.
  • The pin number on the Apple TV is an excellent suggestion. I"m sure that over time many nice features will be added. However, I have to say that this is one of the best 1.x versions of an IOS app for cameras that I have ever seen. I have tried all the ones out there that could talk to SS and also direct to cameras. The ease of setup and the minimalist overall design is just wonderful. Those with nginx are having some issues but overall this is a wonderful app out of the gate. As a developer I had considered several times writing my own IOS app to access SS and now I'm glad I didn't.... What Ben has given us is exactly what I wanted and the performance is exceptional given what its doing and all the network issues that he has had to address. Bravo to Bensoftware for a wonderful app. Even my wife has said that it is definitely worth the price of admission!
  • Thanks @doodah! We are very happy with it too, and the feedback from users has been very encouraging.
  • his there a eay to avoid image cropping on my apple tv? My cam are 2048x1536
  • The SecuritySpy iOS/tvOS app will display all cameras at 16:9 - this means a bit of cropping on 3:2 cameras. With multiple cameras at different aspect ratios, viewing them at their native ratios would result in a rather messy-looking interface. We chose 16:9 because this seems to be what most cameras use.
  • Is there a plan to support native cam display? I mean like a pref fhat you choose between 16:9 and 3:2 ampnd other size?
  • Would be cool to have SS iOS version to respond to urlapp call......

    securityspy://
  • When I add a new server on the iOS app, it replaces the current server instead of saving both. So if I leave my LAN and have to connect through DDNS or IP I have to set up a new server. When I come home and am back on WiFi, I have to set up the server with local network info.
    - Ability to store multiple servers would make a good addition.
  • @Pr0digity - the app does allow you to add multiple servers. The problem sound like you are adding the same server two times - the app will recognise that they are the same, and will overwrite the old instance with the new one.

    Instead, what you should do is initially add the server when you are on your LAN (where the server will be auto-discovered) - the app will pull all details required for connection both over LAN and Internet, so when you are subsequently away from your LAN you simply tap on the same server instance and it should just work (this assumes you are using SecuritySpy's viewcam.me service rather than some other DDNS service).
  • edited January 2017
    Hi Ben - I have a problem with the iOS app in that it works fine on the LAN, picks up the cameras really quickly, however if I am away and trying to access via internet, it doesn't connect through and presents a connection error. If I hit the '+' and configure the server myself (as I am using port 8005) it connects OK for that session but then doesn't save the setting and the next time I enter the app to connect remotely I get the connection error again.
    I am set up to use SS's viewcam.me service and all is green re that service.
    Any thoughts would be much appreciated. Thanks
  • @rprobinson as above, it must be recognising that the servers are the same, and overwriting the old instance with the one you're manually adding.

    Try this: remove all added servers (swipe left and click the Delete button). Then manually add the server using the details you would use to access it from the Internet. Does this then work from both within your LAN, and from the Internet? This would depend on your router, but it works in most cases.
  • Hi Ben - yes deleting the original and re-adding did the trick.
    It's great to have a companion app for SS managed by you.
    Maybe a bit presumptuous, but any plans for Apple Watch integration in the future ?
    Many thanks.
  • @Ben thanks for the reply. I was not using DDNS just my IP. When I try to set up the DDNS I get the following (no matter what I fill out in the name field):

    Unable to set the DDNS name. Error 7113 No data available
  • @rprobinson - we'll consider Apple Watch integration in the future, but this hasn't been requested by customers very much so far. If you want this feature then you could take a look at Spyglass, which has Apple Watch integration.

    @Pr0digity - are you running any connection-blocking software (e.g. Little Snitch) that could be preventing SecuritySpy from making an outgoing connection to the Internet? This would cause this error. Though we were having some server difficulties earlier today (fixed now) so it could also have been a temporary problem, so please try again.
  • Is it possible to have the app remotely stream in h264 rather than JPEG? As soon as I open the ios/tvos app the cpu load of my iMac triples. At the moment I am receiving and recording 7 cameras with no compression after the camera. So only VTdecoderXPCService is running to decode for motion capture.

    With a client connected, load increases on VTdecoderXPCService and then VTencoderXPCService becomes active with a similar load, which i assume means its decoding the stream and reencoding as JPEG to send to the app?

    I could be way off as there are some assumptions in my theory.
  • The app (currently) always streams in JPEG. We may add H.264 streaming in the future, which will lower the bandwidth of the stream, but will actually increase the CPU usage on the server in many cases. This is because encoding video as H.264 is often more processor-intensive than encoding as JPEG, and also due to the lower bandwidth of the stream, the maximum achievable frame rate is higher, and higher frame rates also mean more work for the server.
  • I would love Watch OS support for the app as well. Everything else is perfect and I'd gladly pay more for this functionality. It would be awesome.
  • hi ben,

    thanks for the answer,

    would the server have to encode for h264 streaming if it was already receiving h264 streams and recording them on motion detection to a local disk? With that configuration, my server currently decodes the streams but doesnt need to encode anything (possibly because my quality is set to 100) until a remote client requests a jpeg stream.

    Are you saying the server can't pass on the h264 stream without decoding and re-encoding it?
  • Hi @dmg15 the server can't simply pass on the H.264 stream from the camera to a client connected to the web interface. This is because if the connection to the web client isn't fast enough to support the bandwidth of the H.264 stream, frames would need to be dropped, and this would result in corrupt video. This is due to the fact that H.264 is a temporally-compressed format, where most frames depend on the previous one.

    This would be quite a common occurrence, because the typical connection to an IP camera is over a fast local network, whereas the connection to web clients is often over the Internet.

    As for your encoding quality, I wouldn't recommend a setting of 100 - this will result in a very high-bandwidth stream being emitted from the encoder and therefore poor performance when viewing over the Internet. If you want high quality I'd recommend a setting of 60-70; any higher and you get much more data for only marginally more quality.
  • (Ben, this was already communicated by email, but thought it would be helpful to open up to other users.)

    Bug: When an individual stream is selected (for full screen view) in the iOS app, the image freezes (either instantly or after a few seconds). In all cams view, the feeds do not freeze, so it seems specific to how the individual view is presented.

    Feature Request: Add the ability to access PTZ preset positions in the iOS app. Initially in the already existing PTZ view/function of the iOS app would be great, but even better would be closer to the main (all cams) view, so that the user doesn't have to drill down (main view>single cam view>PTZ functions) in order to change a PTZ position.
  • xmxxmx
    edited March 2017
    I had posted this in another thread, but thought it would be helpful to move it here to keep all iOS app bugs in one place.

    Bug: iOS app running over VPN connection gives error after entering server credentials.

    1) I have an internal SecSpy web server running on HTTPS.

    2) If I am on my internal WIFI network, and launch iOS app, I am able to log in and see feeds - no problem.

    3) If I am tunneled into my internal network via VPN, and launch the iOS app, it gives me an error saying I'm not connected to the internet (after entering in the server credentials).

    4) But if I open Safari on the same mobile device (still on VPN), and connect to web server, I can log in fine, and access the feeds, etc - no problem. I'm able to see outside websites as well though Safari, no issues.

    5) So it would seem there's a problem with the iOS app, not my connection. ?
Sign In or Register to comment.