-
Notifications
You must be signed in to change notification settings - Fork 406
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Phone Number Management #1518
Comments
This project is very exciting! To repeat back the above to verify my understanding -- there will be an org-level group of phone numbers. When this feature is enabled, a message service will be created for each campaign, and then on starting (or reserving) a campaign, the numbers will be moved into that campaign. When the campaign is closed, it will move the numbers out of the message service back into the pool of available numbers? Some comments (unorganized):
|
Added #1525, a proposed implementation of the inventory backend for twilio with a bunch of comments. It's waiting for #1495 to integrate with campaigns. In the Warren fork, unstarted campaigns reserve numbers before starting to avoid races with other unstarted campaigns. This worked nicely but it did rely on a cron job to periodically release reserved numbers. As an alternative, we could omit the RESERVED state on phone numbers and just fail if startCampaign can't find the required numbers on start. I don't really have a preference. |
I feel like the phone_number.campaign_id solves both of those -- it reserves them (yes, do it before it starts). And then after some period of time, you can find reserved campaigns that are too old and clear the numbers then (because you can see if the campaign ever started). But I suppose we could have another column that marks something like 'used' -- which actually 'locks' it to a campaign after the first message out with it? |
Right i think i see what you mean, the status column could be eliminated and instead derived by joining to campaign and maybe reserved_at for the reservation functionality, but I think having a status would help if we we tried to use this to manage org and global messaging services . Answer to other questions/comments in order:
|
Updated the description to match some of the changes discussed here |
This should also close #1259 |
Hey folks! Am I wrong in thinking this is ready to be closed? I'm seeing the related PRs were merged. Really cool work! |
Hi Fryda thanks yeah sure but for next time FYI I prefer to close issues if I open them :-) |
Proposal
To phone number management to the Spoke admin interface similar to phone number provisioning in the Warren fork. We would initially provide support for
twilio
andfakeservice
, but leave the design open to integration with more SMS providers. Unlike the Warren version, the phone numbers will belong to individual organizations, though we may want to eventually add an option to allow transfer between organizations for single-tenant deployments.Phone number management will be decoupled from how numbers are used, but we will start by integrating it with per-campaign messaging services introduced in #1495 . In the future, we may want to integrate it with per-organization messaging services and other SMS providers.
Twilio numbers provisioned through Spoke will have a configurable twilio voice url, resolving issue #1464
Motivation
Managing numbers in Twilio is a tedious manual process and a barrier to adoption for newcomers and non-technical folks who may be discouraged by a CLI like switchboard-twilio. This gets even more complicated for large organizations that need to scale beyond a single Messaging Service, which Spoke doesn't currently allow. #1495 allows organizations to scale but would require a lot of manual work without the additions described here. Some organizations may also want the added control over what area codes they use for individual campaigns rather than relying on Twilio's geomatch.
Detailed Design
The Warren fork README has a fairly detailed explanation of phone number management combined with per-campaign messaging services: https://github.com/Elizabeth-Warren/Spoke#phone-number-provisioning.
We will depart from the Warren design in a few key ways:
The work will be divided into three tasks:
Alternatives
See the discussion here. The two other options described are:
Project Plan Information
Sponsor Organization (will test alphas/betas)
MoveOn
Developer allocated
@matteosb
Planned timeline
2 weeks - month depending on when #1478 and #1495 are merged.
Files/File-sections touched
Once #1495 is merged:
Schema changes and migrations
owned_phone_number
job_request
table to allow organization-scoped jobsThe text was updated successfully, but these errors were encountered: