Jump to content

Rec. Service App (iOS 8.x & 9.x)


MarkusK

Recommended Posts

  • 3 weeks later...

I think very soon.

 

I can´t release the update yet, because it needs the new iOS web interface. And the new web interface depends on the new RS version. So you couldn't use them without a lot of issues at the moment. Watching TV would be impossible :original:

Link to comment
  • 2 weeks later...

Hi Markus

 

I updated to RS 1.32 and the new APP today. Excellent work you have done so far!

 

I have however noticed two problems:

 

1: I have my RS running on port 80 internally and via a reverse proxy on port 443 externally. Works perfectly - including live streaming - from a normal browser. Due to my splitDNS setup, I have the same DNS name available internally and externally.

If I use the same DNS name both int. and ext., your client always tries the internal port and thus times out when i'm externally located (i'm guessing your app determines if I'm externally located by the succes of DNS resolution of the internal DNS name).

I can work around that by using my IP address internally, so it's no biggie, but other users should be aware if they have split DNS as well :-)

 

2: This second issue is probably not your APP's fault, but the RS webservice.

I cannot live stream when located externally and using the /IOS interface of the web service through a reverse proxy. When trying from safari on my iPhone I get a second login screen right after accepting the streaming settings. If I complete the login I just get to the screen where the sream should be, but there's no content. If I use your app, I don't see the second login and just go directly to the streamscreen with no content.

 

The streaming works externally through the reverse proxy because i can do it in the regular web interface (non /IOS), both on a browser and in safari on my iPhone. So it's something the /IOS interface does in combination with being reverse proxied on 443 to 80 on the internal server.

If I move the external reverse proxy service to port 80 (the same as the server internally) live streaming works in the APP and /IOS web interface.

I'll post this second issue as a seperate thread as well, since it's not necessarily related to the APP.

 

Thanks for the great work you are all doing :-)

Edited by Keyser
Link to comment

Hi

 

I updated to RS 1.32 and the new APP today. Excellent work you have done so far!

 

I have however noticed an issue with the /IOS webservice.

I have a reverse proxy in my firewall which allows me to access RS over HTTPS from the outside (even though the service is running on port 80 on the inside). It's great for security :-)

 

The streaming works great externally through the reverse proxy If I do it in the regular web interface (non /IOS), both on a computer browser and in safari on my iPhone.

 

But I cannot live stream when located externally and using the /IOS interface of the web service through a reverse proxy. When trying from safari on my iPhone I get a second login screen right after accepting the streaming settings. If I complete the login I just get to the screen where the sream should be, but there's no content. It doesn't work in the Rec. Service APP either.

 

If I move the external reverse proxy service to port 80 (the same as the server internally) live streaming starts working from the /IOS web interface. So it's something the /IOS interface does in combination with being reverse proxied on 443 to 80 on the internal server.

 

Any Ideas?

Thanks for the great work you are all doing :-)

Link to comment

The RS is not aware that you use a reverse proxy. There for all streaming URL are generate for the RS web interface port and URL.

 

And it is the responsibility of the reverse proxy to change all URLs which are included in web pages.

 

Are you sure that all streamin URL, after the reverse proxy are correct?

Link to comment

Well i haven't investigated much yet since the streaming works thru the reverse proxy if i use the regular web interface.

It's only when using the /IOS interface it happens, and i'm guessing - like you suggest - this is related to the URL generation in RS under /IOS as my reverse proxy automatically redirects requests for the port 80 service to 443 (and that's probably the reason for the second login request).

 

So I'm guessing that the /IOS webservice returns a "hardcoded" URL referring to a portnumber (the port the service is running on) instead of a relative path since the reverse proxy does not catch and translate it correctly as it does with the normal webservice.

Link to comment

Any chance I can correct that faulty generated URL myself in a file under /IOS?

It must be in the code for the page that calls the embedded stream itself. It should just call a URL relative to the session it's already running instead of a new URL including the service portnumber.

 

The normal web interface must have the correct code for the call since it works there.

Edited by Keyser
Link to comment

German post moved to the German Topic.

I don't know if and when were the /iOS interfaces uses a absolute instead of relative path. I would have to investigate this in the same way you can do this.

Most likely it is not possible to change this in the teplets in SVCweb\iOS.

 

But do you add a authentication with reverse proxy? If yes you shroud check if HLS support this type of authentication.

 

Are you testing the streaming in the regular web interface with the same streaming method (HLS or do you use WebM or Flash)?

Link to comment

I can't detect in inspector, that the generated URL for streaming is different from all other XHR requests made by the web interface. Hmm...

Edited by MarkusK
Link to comment

I'm not requesting Auth. In the proxy. That's done by RS. The proxy is just a reverse proxy for secure 443 (TLS) traffic to internal servers.

Since I get an auth. Prompt for the streaming session itself when using /IOS vs. No prompt when using the regular interface, I assume RS sees the stream request as a new session. I'm not sure it comes from a hardcoded call for port 80 which is then redirected by my reverse proxy to 443, serviced and then proxied into port 80 on RS. That's just a guess as it would explain what I see.

 

I just think it's strange that it works in the regular interface, so it must be something related to a difference in the way the /IOS service requests the stream.

 

Any ideas? I'll do some further research later tonight.

Link to comment

German post moved to the German Topic.

 

I don't know if and when were the /iOS interfaces uses a absolute instead of relative path. I would have to investigate this in the same way you can do this.

 

Most likely it is not possible to change this in the teplets in SVCweb\iOS.

 

But do you add a authentication with reverse proxy? If yes you shroud check if HLS support this type of authentication.

 

Are you testing the streaming in the regular web interface with the same streaming method (HLS or do you use WebM or Flash)?

I believe i checked both WebM and HLS in the regular webinterface, but will try again later this evening.

 

EDIT: yes, i just checked HLS and WEbM in the regular webinterface from the outside. They both work flawlessly. But using /IOS i get the second prompt for login and no stream

Edited by Keyser
Link to comment

Does streaming work with external access in Safari with the iOS web interface?

 

yourIP:yourPort/ios/iphone-en.html

yourIP:yourPort/ios/ipad-en.html

Edited by MarkusK
Link to comment

I meant on your iOS device

Ahh, no it doesn't. That's where i see the second authentication prompt. From within your app I don't see the prompt, the stream page just loads with no stream window within. (I assume because it doesn't show the prompt)

Link to comment

Btw: your app and /IOS from safari works perfectly internally on my network, so it is definately an issue related to the translation in the reverse proxy. And like I said, it's a funny issue, because it works externally in the regular (not /IOS) webservice.

Link to comment

Yes, that's the reason. Then, it has nothing to do with the app itself. Did streaming work in the past with your configuration?

Link to comment

Markus: It certainly has nothing to do with your APP. It's related to the way the /IOS webservice requests the stream.

 

I just did some testing and packetcapture. The problem originates from what I suspected:

 

The /IOS webservice somehow hardcodes or creates the request for the stream differently than the standard webservice. On my firewall I can see a request from my client coming in on port 80 even though the session is on 443. That means the request is formatted so that my reverse proxy chooses not to translate it (as it does with the requests from the regular webservice).

 

The request is denied and (as configured on my proxy) redirected to 443. This is then handled as a new session and RS asks for authentication again.

This request for port 80 service does not happen when requesting the stream from the regular webinterface - or if it is, it's formatted so the reverse proxy chooses to translate it correctly.

 

EDIT: The request on port 80 contains a: GET /upnp/stream.m3u8?streamid=%7BB14071A0-B6D7-469A-8B42-51AD15838B46%7D HTTP/1.1

So it is definately the stream request itself that is tried at port 80. And that means the reverse proxy does not translate the URL of the link that the Webserver gives the client. Which means it must be different from the URL the regular webservice gives the client.

 

Any ideas ?

Edited by Keyser
Link to comment
  • 1 month later...

I'm the best betatester jajaja

 

CSS style doesn't work now Markusk :-) a litlte bug.

 

Capture:

 

a9wrh4.png

 

I too am having this problem, on my iPad (ios 8.4), I cant seem to find the update in the Members Area, I am looking in https://www.DVBViewer.tv/members/ is this the right place? All I can see here to do with IOS is iOS Webinterface (iOS 6.x only!) & iOS Webinterface (iOS 7.x only!)

Link to comment

The current iOS web-interface is part of the RS 1.32 setup.

 

Stop the iOS app (not only pushing it in the background).

Restating the iPhon is not a alternative, this will not stop the app.

 

If this doesn't help. Try uninstalling an reinstalling the iOS app.

Link to comment

It seems, that *.css and/or *.js files are missing in your "ios" folder. Do you have Recording Service 1.32 installed? If no, please install it. If yes check your ios folder in ...\DVBViewer\svcweb, which should contain "css" and "js" subfolders with the js and css files. If they do not exist, please reinstall Recording Service.

Edited by MarkusK
Link to comment

It seems, that *.css and/or *.js files are missing in your "ios" folder. Do you have Recording Service 1.32 installed? If no, please install it. If yes check your ios folder in ...\DVBViewer\svcweb, which should contain "css" and "js" subfolders with the js and css files. If they do not exist, please reinstall Recording Service.

 

I shutdown recording service, then uninstalled it, then checked that the SVCWeb folder had been deleted, which it had been deleted by the uninstall. I then reinstalled it but still no difference, still cant get it too display properly on my iPad tried in the recording service and in Safari both the same.

 

My ios folder has a css folder with 3 files (ipad37.css, main37.css and panel37.css) it also has a js folder with 8 files (index.js, input-mask.js, ipad-de37.js, ipad-en37.js, iphone-de37.js, iphone-en37.js, main37.js & timeline.js).

 

Any ideas what's going on?, the web interface is fine in IE and so is the Android App, just IOS is having trouble (currently running IOS 8.4.1)

Link to comment

I just wanted to say that i have exactly the same problem. Also when I open the website you told I have the same issue with the first page displayed normal but Live TV etc. not.

Link to comment
first page is fine

 

No, it isn't. The page title is in the top right corner, it have to be centered. That means, that your "iphone-en37.js" or "ipad-en37.js" file were not loaded and seems to be from browser cache. Please go to Settings -> Safari on your device and delete all history and website data. Then close Safari with the App switcher and open the page (as I said above) again.

 

In the Rec. Service App, try a PullToRefresh to reload the webinterface. The page title in the top right corner on initial page is your indicator, that something went wrong.

Link to comment

No, it isn't. The page title is in the top right corner, it have to be centered. That means, that your "iphone-en37.js" or "ipad-en37.js" file were not loaded and seems to be from browser cache. Please go to Settings -> Safari on your device and delete all history and website data. Then close Safari with the App switcher and open the page (as I said above) again.

 

In the Rec. Service App, try a PullToRefresh to reload the webinterface. The page title in the top right corner on initial page is your indicator, that something went wrong.

 

Tried what you suggested clearing Safari history and website data and then close safari with app switch, but the problem still persists, I have also tried it in Chrome for ios and have the same problem.

Link to comment

I tried it in Chrome (Desktop) and everything works fine. Than again i tried it in Safari on the Computer (also in private mode) and it doesn't work.

Next I tried Chrome on the iPhone and it also doesn't work.

JS is enabled on the phone.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...