I’ve had this problem for awhile and dug into it today. What I found was that all the asterisk devices for a particular user (me and one other who each have three devices) hadn’t been entered into the phone mappings of the Asterisk-IM tab. After entering the info the status switches appropriately, i.e. it’s fixed now.
Running Asterisk 1.4 (don’t have the exact version in front of me now) and Openfire 3.6a.
I find that the presence status to go away or get stuck at times as well. I can reproduce it if I do a reload or reboot on the asterisk server. The plugin will then never reconnect. What fixes it is to hit the Reload link in the plugins page. That reestablishes the connection and it starts working again. There are other little bugs such as editing an existing mappings that won’t save properly but it is easy enough to drop it and build a new mapping. I hope to see this little plugin get back on the devel track because for some reason my users just love the presence indication.
So for now my habit is to hit reload from the plugin page every few days just to be sure it is working.
At present we are only using this for a limited number of people in the company, but want to roll it out to all the employees. However, this bug is preventing us from doing so.
Now, for a quick description of our setup. We are spread across three cities, with an Asterisk server in each city, and the Openfire server on the same physical network as one of the Asterisk servers.
Only users who’s Asterisk server is not on the same network as the Openfire server experience the problem where they get stuck “On the phone”, which leads me to think that the Asterisk-IM plugin may not get all the hang up events.
I still like the suggestion to automatically clear the status if a call has been active for X number of minutes/hours. This should not clear the state all together, but only the state for that particular call, as another one my already be in progress.
This needs to be addressed again. From the thread, it appears there never was a solution.
I, too, have been dealing with this problem for quite some time. Several users will always have the status of ‘On the Phone’ even when they are not. All users in my environment use Polycom phones (mostly IP501) connected to Asterisk 1.2. The Openfire server is not on the same LAN as the Asterisk server. Like it says above, there is something wrong with the way the Channel is showing available or not.
The only remedy I have is to disabled the plugin in Openfire and re-enable to clear the status. Eventually, though, the problem always replicates itself. Any ideas here would be most helpful!