Skip to content
This repository has been archived by the owner on Mar 4, 2021. It is now read-only.

Online State Bug Fix and User Simulring #147

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

mongus
Copy link
Contributor

@mongus mongus commented Aug 13, 2011

This fixes a bug in OpenVBX that creates a client device for users who have never logged in because their initial online status is set to 9.

It also dials all devices for a user simultaneously instead of in the listed order.

Before these fixes I was experiencing 30 second delays before a phone would ring because OpenVBX was trying to connect to a non-existent Twilio Client before dialing any phone numbers.

mongus added 3 commits August 13, 2011 09:12
…incorrectly creating a client device for users who hadn't been initialized yet

client device code moved inside of the user loop
@Gipetto
Copy link
Contributor

Gipetto commented Aug 15, 2011

Sweet. So I've taken @bb2f2f3 already. That's a good fix, thanks!

We didn't do simulring on individual users because there's an issue with voicemail detection when in this mode. What will happen is that on a simulring ANY device that picks up answers the call. Depending on the phone/carrier this can be immediate and be voicemail, thus ending your chance to pick up the call. Its a nasty limitation.

We think this should be a selectable mode in the dial applet, selectable ONLY when an individual user is the dial target, but haven't had a chance to implement that yet. Would you like to add that functionality as well to get this working as you need it to? We'll also have to put a note somewhere about the caveat to selecting the simulring option.

@mongus
Copy link
Contributor Author

mongus commented Aug 15, 2011

Simulring works correctly as long as you've got the "press 1 to answer"
prompt in there and it is in the current OpenVBX. Voicemail won't press
1 so it doesn't get connected.

I also committed my Flow Preview contest entry that you may be
interested in adding. It's in the flow-preview branch:
https://github.com/mongus/OpenVBX/tree/flow-preview

I've also got extra options for the dial applet including simulring
across all users in a group, prompt, and timeout in the dial-options branch:
https://github.com/mongus/OpenVBX/tree/dial-options

All 3 of my branches are merged in the master branch so you can try them
all out if you want.

Aaron

On 08/15/2011 01:40 PM, Gipetto wrote:

Sweet. So I've taken @bb2f2f3 already. That's a good fix, thanks!

We didn't do simulring on individual users because there's an issue with voicemail detection when in this mode. What will happen is that on a simulring ANY device that picks up answers the call. Depending on the phone/carrier this can be immediate and be voicemail, thus ending your chance to pick up the call. Its a nasty limitation.

We think this should be a selectable mode in the dial applet but haven't had a chance to implement that yet. Would you like to add that functionality as well to get this working as you need it to? We'll also have to put a note somewhere about the caveat to selecting the simulring option.

@Gipetto
Copy link
Contributor

Gipetto commented Aug 16, 2011

While it does work that way for traditional phones, there is a limitation with the way that the core of Twilio Client works that'll cancel the Browser Phone dial (all browser phone dials in the case of a group dial) if anything picks up the call, so unfortunately that has introduced a limitation to the dial applet.

I'm going to document this decision in the Dial Applet so that its more clear (and so that I don't have to test to remember the decision).

We all agree that this should be a selectable option but with the limitation that the browser phone introduces it gets a bit tricky. I like the work that you've done there and am going to come back and reference it when we have time to revisit this issue internally. If you have ideas on how to treat this I'm always open.


On a side note, if you want to stay up to date with ongoing development you should check out our develop branch. Master will always mirror our latest tag, but ongoing development is happening in the Develop branch. It sounds a bit weird at first, but in the long run the strategy is much better. (For more info check out the Repository Layout section of this Wiki page: https://github.com/twilio/OpenVBX/wiki )

@Gipetto Gipetto closed this Dec 1, 2011
@colinmollenhour
Copy link

Just my .$02: Despite the unfortunate side-effect of the client dial being cancelled I think this simulring should still be implemented as an option (perhaps not the default) in OpenVBX. Hopefully the client dial can be fixed and then this wouldn't be an issue. For people using only phones or only the client this is a non-issue. If the voicemail delay is longer than the timeout this should be a non-issue as well (right?), so for people using a mix of phones and clients the temporary fix is to make sure the voicemail is configured with a long delay before pickup (preferably same length or longer than the timeout).

@Gipetto Gipetto reopened this Dec 1, 2011
@Gipetto
Copy link
Contributor

Gipetto commented Dec 1, 2011

Agreed, a selectable option at minimum is what should be implemented.
I've got this on the list of things to do for the next release.

@colinmollenhour
Copy link

Sorry to be a bother, can you tell me when you expect to release the next version? Simulring is a blocker for a new production deployment I'm working on and I just discovered the OpenVBX-SimultaneousDial plugin is outdated and no longer works (or at least doesn't dial clients at all). Thanks!

@Gipetto
Copy link
Contributor

Gipetto commented Dec 1, 2011

No bother at all.
Probably around the end of December 2011, but could be early January 2012.

I'm thinking that the preference will probably end up as a global setting for outgoing calls using the dial button, but then there will also be an option in the Dial Applet that will allow the option to be configured on a flow by flow basis.

@cromulus
Copy link

👍 for simultaneous ring. It's a common enough usecase to be part of the core.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants