Jump to content

isy and "portforwarding" via apache proxypass


captndelta

Recommended Posts

My internet gateway (a FreeBSD box) has a bit of a quirk (designed) in regards to port forwarding via natd, which makes it somewhat impossible to use it with the isy from 'inside' the network as well as from the 'outside' using the same URL (i.e. in mobilinc, ekeypad, etc).

Therefore I tried to use apache proxypass to forward the external traffic to my internal isy (which works pretty well for the two security cams I have), however the ISY is giving me trouble.

 

The isy is a 994i, firmware 3.2.6, UI 3.2.6.

 

Here is the apache virtualhost section I'm trying to use on the gateway:

 


   ServerName isy.domain.tld
   ServerAdmin webmaster@domain.tld
   DocumentRoot /usr/local/www/data

   ErrorLog /var/log/httpd/isy-errors.log
   CustomLog /var/log/httpd/isy-access.log common

   ProxyRequests on
   ProxyPass / http://isy.homenetwork.domain.tld:80/
   ProxyPassReverse / http://isy.homenetwork.domain.tld:80/

 

The network names all resolve etc, I can access the isy from the "inside" no problem using the 'isy.homenetwork.domain.tld' url given in the ProxyPass statement.

 

Using the 'isy.domain.tld' url from the inside or outside, the web (html) gui works pretty well. Trouble starts when trying to use the 'admin console' applet. It looks as if it starts ok (the blue applet starts, the menus work), but then there is a error box that states

XML Parse Error http://isy.domain.tld:80/desc

. Clicking that away, the logon button in the file menu is disabled. Clicking on link management results in the following (partial) trace in the console:

 

Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
at com.universaldevices.ui.driver.rcs.RCSProductDriver.isModuleSupported(Unknown Source)
at com.universaldevices.ui.driver.UDProductDrivers.addDeviceMenuItems(Unknown Source)
at com.universaldevices.ui.UDMenuSystem.makeDeviceSubMenu(Unknown Source)
at com.universaldevices.ui.UDMenuSystem.menuSelected(Unknown Source)
at javax.swing.JMenu.fireMenuSelected(JMenu.java:1028)
at javax.swing.JMenu$MenuChangeListener.stateChanged(JMenu.java:1107)
at javax.swing.DefaultButtonModel.fireStateChanged(DefaultButtonModel.java:333)
at javax.swing.DefaultButtonModel.setSelected(DefaultButtonModel.java:215)
at javax.swing.JMenu.setSelected(JMenu.java:294)
at javax.swing.JMenu.menuSelectionChanged(JMenu.java:1175)
at javax.swing.MenuSelectionManager.setSelectedPath(MenuSelectionManager.java:100)
at com.apple.laf.AquaMenuUI$AquaMouseInputHandler.mouseEntered(AquaMenuUI.java:134)
at java.awt.Component.processMouseEvent(Component.java:6384)

 

Any way to make this work via ProxyPass? The ProxyPass statement should be able to proxy any http request on port 80 of 'isy.domain.tld' to the isy on the inside. Is there another channel open which I'm missing with this proxy? (The error message says port 80, tho)

 

Thanks for any help or clues,

-Th

Link to comment
Hello captndelta,

 

The first question I have is: what do you get when you type http://isy.domain.tld:80/desc in your browser. Does it work? If so, can you copy/paste what you see on your browser here?

 

With kind regards,

Michel

 

Hello Michel,

 

yes, this does work via ProxyPass, the result is:

 


1
0

http://192.168.1.99

urn:udi-com:device:X_Insteon_Lighting_Device:1
ISY
Universal Devices Inc.
http://www.universal-devices.com
X_Insteon_Lighting_Device:1
ISY 994i 256
1120
uuid:00:21:b9:00:f4:6a
uuid:00:21:b9:00:f4:6a


urn:udi-com:service:X_Insteon_Lighting_Service:1
urn:udi-com:serviceId:uuid:00:21:b9:00:f4:6a
/services.wsdl
/services
/eventing


UDIELKWebServices
uuid:00:21:b9:00:f4:6a-UDIELKWebServices
/elkServices.wsdl
/security/elk


UDISEPWebServices
uuid:00:21:b9:00:f4:6a-UDISEPWebServices
/sepServices.wsdl
/sepServices


/

 

Am I right to suspect that

http://192.168.1.99

has something to do with this (thats the internal IP of the ISY), which would need to be proxied/rewritten in the response? (Just guessing)

 

Thanks for your help,

-Th

Link to comment

Thank you.

 

ISY checks the URL base against the requested URL and then decides whether or not you are local. At the moment, ISY thinks that you are remote. This said, you should not have this problem UNLESS http://isy.domain.tld resolves to the same IP address as ISY (192.168.1.99) in which case nothing would work.

 

Is this the case? i.e. if you do nslookup for isy.doman.tld, do you get 192.168.1.99?

 

With kind regards,

Michel

Link to comment
Thank you.

 

ISY checks the URL base against the requested URL and then decides whether or not you are local. At the moment, ISY thinks that you are remote. This said, you should not have this problem UNLESS http://isy.domain.tld resolves to the same IP address as ISY (192.168.1.99) in which case nothing would work.

 

Is this the case? i.e. if you do nslookup for isy.doman.tld, do you get 192.168.1.99?

 

With kind regards,

Michel

 

Hello Michel,

 

no, a 'nslookup isy.doman.tld' gives me my outside ip (as it should).

 

Thanks,

-Th

Link to comment

Thank you.

 

I notice that the exception is related to RCSDriver which basically rules out anything network related. I think the problem is that the applet is not being downloaded properly.

 

What I recommend is this:

1. Clear your Java cache (very important)

2. Go to http://www.universal-devices.com/99i/admin.jnlp ... this should install an icon on your desktop

3. In the INSTEON Finder, click on the Add button

4. Enter the URL for both the local and the remote

5. Double click on the remote

 

Let me know what you get on in the Java console.

 

With kind regards,

Michel

Link to comment
Thank you.

 

I notice that the exception is related to RCSDriver which basically rules out anything network related. I think the problem is that the applet is not being downloaded properly.

 

What I recommend is this:

1. Clear your Java cache (very important)

2. Go to http://www.universal-devices.com/99i/admin.jnlp ... this should install an icon on your desktop

3. In the INSTEON Finder, click on the Add button

4. Enter the URL for both the local and the remote

5. Double click on the remote

 

Let me know what you get on in the Java console.

 

With kind regards,

Michel

 

Ok, did this, including clearing cache. added both URL's to the Finder, the local one was ok, the remote URL ('isy.domain.tld') took some time, then the following was displayed,

 

isy_error.png

 

and the remote URL was not added.

 

Thanks for your help,

-Th

 

Edit: there was nothing on the console (no trace etc)

Link to comment
Hello captndelta,

 

Apologies for tardy reply.

 

Ok, at this point, the only thing we can do to diagnose is to login to your ISY remotely (hopefully through the same proxy). If you are OK with this, please send your remote IP address (for the ISY) to tech@universal-devices.com .

 

With kind regards,

Michel

 

Hi Michel,

 

no apology needed, we all want our weekends. I have send you the requested info to the given address, please let me know if you need anything else.

 

-Th

Link to comment

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...