Oct 18, 2007 7:09 AM
Phone status not reliable
-
Like (0)
We are running Openfire 3.3.2 and Asterisk-IM 1.3.1 and have been unable to get reliable phone status for all users. Some users are just fine, but others show as "on the phone" all the time. Are any more updates coming soon to correct this problem?
Confirm that on Openfire 3.3.3
Sometime i have the correct status, sometime i'm always 'On Phone'
p.s. Btw, sometimes plugin detects i'm calling by using another SIP-client (with the same account settings) and displays the correct status. Cool
Can you reproduce this problem?
A proper test scenario that triggers the bug would be extremely helpful. If I can reproduce it in my environment it's probably not that hard to provide an update that fixes the issue.
It is a constant problem for us. We have several users who always show up as "on the phone". Rebooting Asterisk or Openfire does no good.
What makes them different from the users that work?
The only difference that I can see is that the ones that tend to regularly have this problem also tend be be on longer than average phone calls
Same in my environment,
open fire 3.3.3 and IM 1.3.1 asterisk 1.4.13.
was not able to underestand what makes it diffrenet for some users.
First i thought it has something to do with hint , but didnt look like it.
i can give you more info if you are interested.
i guess my next step would be tracing manager events.
yes, everything that helps us spot the problem is higly welcome!
i should have some free time on sunday, i'll setup a test server with very simple dialplan to see how it acts.
Okay,
Here is some result from test machine with minimal configuration.
I was not able to replicate the issue, the environment i had was a simple asterisk and open fire in one machine, a soft phone, a Cisco phone and linksys phone.
I added a Polycom 501 to system and noticed some inconsistancy.
Although it does not make any sense, but the user with Polycom phone never changed status on its own spark client.
The Polycom user was able to see others are on the phone or not.
Also others were able to see when this phone was in use.
I'll dig more into it and let you guys know.
Just make the dialplan alittle bit more complex ( added Macros) and now i see it.
one of the users ( in this case Linksys) when it get called and answered its fine, but when they hangup still it shows its on the phone
Found second issue,
It looks like its sensitive to "ChanIsAvail" function.
that caused the phone status to be on the phone for ever.
Can you attach the dialplan fragments so I can reproduce this here?
And just to add on, we do have all Polycom phones and ChanIsAvail is used on all inbound calls.
Here is sip.conf :
context=unknown
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
tos_sip=cs3
tos_audio=ef
tos_video=af41
maxexpiry=3600
defaultexpiry=3200
disallow=all
allow=ulaw
allow=gsm
allow=ilbc
musicclass=default
limitonpeer=yes
language=en
dtmfmode = rfc2833
;Cisco
type=friend
context=inside
secret=201
callerid=ext 201 <201>
host=dynamic
qualify=no
canreinvite=no
disallow=all
allow=ulaw
mailbox=201@inside
call-limit=3
;Soft phone
type=friend
context=inside
secret=202
callerid=ext 202 <202>
host=dynamic
qualify=no
canreinvite=no
disallow=all
allow=ulaw
mailbox=202@inside
call-limit=3
;Linksys
type=friend
context=inside
secret=203
callerid=ext 203 <203>
host=dynamic
qualify=no
canreinvite=no
disallow=all
allow=ulaw
mailbox=203@inside
call-limit=3
;Polycom
type=friend
context=inside
secret=204
callerid=ext 204 <204>
host=dynamic
qualify=no
canreinvite=no
disallow=all
allow=ulaw
mailbox=204@inside
call-limit=3
Here is extensions.conf :
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no
;===============================Starts Macor's===========================
;Dials ARG1 for ARG2 Seconds then goes to voicemail for ARG3 context if it exist
exten => s,1,NoOp(Now In DialSip Macro )
exten => s,n,GoTo(stats,1)
exten => s,n(retstats),Answer()
exten => s,n,Set(cwstats=${DB(${ARG1}/CW)})
exten => s,n,Set(fwstats=${DB(${ARG1}/FW)})
exten => s,n,GoToIf($["$" = "0"]?fwoff) exten => s,n,GoToIf($["$" = ""]?fwoff)
exten => s,n,GoToIf($["${DB(${ARG1}/FWHERE)}" = "extrn"]?extrn)
exten => s,n,Macro(dialsip|${DB(${ARG1}/FWNUM)}|10|inside)
exten => s,n(extrn),Dial(ZAP/1/${DB(${ARG1}/FWNUM)})
exten => s,n,HangUp()
exten => s,n(fwoff),NoOp(Call Waiting Status is $ and Call Forward is $) exten => s,n,GoToIf($["$" = "1"]?cwon)
exten => s,n,GoToIf($["$" = ""]?cwon)
exten => s,n,GoToIf($["$" = "1"]?s-NOANSWER,1)
exten => s,n(cwon),Dial(SIP/$|$|tr) exten => s,n,GoTo(s-$,1) exten => s-BUSY,1,Voicemail($@$|u) exten => s-BUSY,n,Hangup() exten => s-NOANSWER,1,Voicemail($@$,u)
exten => s-NOANSWER,n,Hangup()
exten => _s.,1,Hangup()
exten => stats,1,ChanIsAvail(SIP/$,s)
exten => stats,n,Set(dialstats=${IF($["foo${AVAILCHAN}"="foo"]?1:0)})
exten => stats,n,GoTo(s|retstats)
;==============================End Macro's==============================
exten => 201,1,Macro(dialsip|201|10|inside)
exten => 202,1,Macro(dialsip|202|10|inside)
exten => 203,1,Macro(dialsip|203|10|inside)
exten => 204,1,Macro(dialsip|204|10|inside)
exten => 201,hint,SIP/201
exten => 202,hint,SIP/202
exten => 203,hint,SIP/203
exten => 204,hint,SIP/204
I noticed people status unreliable with last example, although very random, was not able to find the root cause but at least i was able to see it sometimes with one user.
The production server shows unreliable status much more often and noticeable, ofcourse it has more complex dialplan.
Let me know what else i can test for you.
Would you like to run same test for 1.2? although i dont think there is a big diffrence between manager events between these two.
I'll try to reproduce it here with Asterisk 1.4 and if that fails I'll come back to you.
Thanks
Does anyone know how to manually remove the 'on phone' status? Just started using this plugin a few days ago, and have had 2 users stuck on this status for over a day now -- new calls, changing status from IM client, disconnecting/reconnecting all do not change the status.
Also, while the problem is being investigated further, could we just have a hard timeout limit where if the status is on phone for X minutes with no new manager events for new calls, then remove the on phone presence. This problem really kills the usefulness of this plugin.
Thanks
You can reload the plugin, this reinitialized the state.
Instead of the timeout I would rather like to fix the underlying
problem. Can you provide details on the circumstances this happended? Is
it reproducible?
=Stefan
Hello all,
I've just came across this post today, and I am having the exact same problem (and have been for about a year now).
Randomly, some users just 'stick' to being on the phone. It's a 50/50 chance that even a full openfire restart will clear it out.
I noticed there was no conclusive followup to the original post here. Is there any hope of ever getting this fixed?
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.
I also have this problem from time to time.
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.
Has there been any progress made on this, or is this plugin no longer being maintained?
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!