[ 
https://issues.apache.org/jira/browse/FELIX-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12619704#action_12619704
 ] 

Francesco Furfari commented on FELIX-642:
-----------------------------------------

Actually the timeout you refer is 120.000 that  means about 33 hours. This 
value is used in the header of the UPnP subscription message, that is 120000 
seconds. It's true that this value is hard coded, further more this value is 
used for all the subscription managed by the Base Driver, but it cannot be 
considered a bug. 
Looking at the Cyberlink (CL) code (upnp.Renewsubscriber) you can see that each 
subscription renew is checked every 120 seconds, and this is a constraint that 
is important to know. However if the subscription renew fails after about 120 
seconds, CL tries automatically to do a new subscription. What is strange is 
that CL not seems to check the timeout received with the response of the 
previous subscription, and in any case the renew of the subscription is 
proposed with an infinite timeout.



> upnp event delivery to OSGi event listeners fails on random devices after a 
> certain period of time
> --------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-642
>                 URL: https://issues.apache.org/jira/browse/FELIX-642
>             Project: Felix
>          Issue Type: Bug
>          Components: UPnP Subproject
>    Affects Versions: upnp-basedriver-0.8.0
>            Reporter: Daniel Felsing
>            Priority: Blocker
>             Fix For: upnp-basedriver-0.8.0
>
>
> Ok...overall problem is as follows:
> upnp event delivery to OSGi event listeners fails on random devices after a 
> certain period of time
> Overall Environment Setup
> -------------------------
> - i have two hosts A and B => A is a Bridge exporting about 20 devices at the 
> moment (will get more - it's a X10 like system), B acts as a central server 
> for the devices (Smart Home implementation)
> - A is a SensorBridge...and B a central controlpoint importing all those 
> devices
> - both ends use upnpbasedriver 0.8 and extra bundle from felix project
> - the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
> - all the devices on the server (so the central smart home controller) that 
> get imported get refined. They subscribe to the upnp device it refines to get 
> notified on event change.
> - on the central server (Host B) i subscribe to UPnP Devices exported by Host 
> A using UPnPSubscriber Helper class of the extra bundle
> Issues
> ------
> - "SOMETIMES" on INITIAL subscription not all devices get notified about the 
> initial status (devices get found properly though)
>   ( see also http://www.mail-archive.com/[EMAIL PROTECTED]/msg01781.html for 
> that)
> - after some time of operation random devices begin to fail - that 
> means..they do not get notified about event changes anymore, but devices are 
> still present (so they are still there as UPnPDevice instances in the central 
> server)... 
> => i had debug enabled....and as i see i still receive the event-change 
> notifies on my Host B (=central server)....if i "resubscribe" to the event 
> listener of the failed device everything works again (i dont need to restart 
> the whole basedriver or osgi framework to let it work again - just my 
> refining driver must be restarted which does the subscription to the devices 
> using UPnPSubscriber class) ...
> SO this STILL GETS DELIVERED, but listeners do not get notified about the 
> change:
> ================REQUEST=====================
> NOTIFY /evetSub HTTP/1.0
> Content-Type: text/xml; charset="utf-8"
> HOST: 192.168.0.5
> NT: upnp:event
> NTS: upnp:propchange
> SID: uuid:956d-a11b-fe88-e08e
> SEQ: 0
> Content-Length: 165
> Connection: close
> <?xml version="1.0" encoding="utf-8"?>
> <propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
>    <property>
>       <Status>off</Status>
>    </property>
> </propertyset>
> -------------------------------------------- 
> Tests:
> -----------------
> - yes - every device exported by the upnpsensorbridge (=Host A) gets found by 
> the central server (=Host B) 
> - upnp tester of felix project experiences same issues
> - the REFINED devices on the SERVER themselves are using the felix helper 
> class to subscribe to the events:
>               // create upnp listener - if evented is true
>               subscriber = new UPnPSubscriber(bundleContext, this);
>               subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());
> - i also tried:               EventListener test = new EventListener();
>                               servReg = 
> context.registerService(UPnPEventListener.class.getName(), test, null);
> (so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not be 
> the root of the problem
> - the upnp device implementation on the host exporting the upnp devices ( 
> =Host A, sensorbridge) are using the following line to expose event notifier
>               // setup event notifier
>               notify_switch = new UPnPEventNotifier(context, this, 
> switchdevswitchservice, switchDev);
> ================================================================================
> Is it possible that my issue is connected to this one mentioned in the 
> cyberlink forum?
> Stefano answered to it in the cyberlink forum!!
> http://sourceforge.net/forum/forum.php?thread_id=1952657&forum_id=258158
> ----------------------------------------------------------------------------------------------------------------------------
> if you need something else please contact me! :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to