Comments (7)
@jainpawan21 @Cliftonz this will take a lot of refactoring if we introduce new IVoiceProvider. for eg, if we just find "IEmailProvider | ISmsProvider | IChatProvider | IPushProvider" in code, then it is present in lots of places. Is there any other way to go round this. Is there a better way to onboard a new channel?
from novu.
@Cliftonz i'm thinking to add only twillio voice as part of this PR, would like to do telesign as separate PR/issue, because I was checking telesign api, and its not a straightforward flow(verify(with voice) api is, but not the voice api), it requires us to setup a webhook to handle the call accepted action to play messages, so i feel its better to separate out that implementation. lmk what do you think?
I agree, I think twillio voice would be enough for the initial version.
Just to quickly list, here is the general steps to do.
- Add a new type in the channel enum
- Add a integration section for that type in the fronted
- Add a workflow node for that channel type.
- Create a editor page for that channel type.
- Create a send message usecase in the backend for that channel type.
In addition, I also want to add that each voice system has its own data format (xml, json, etc) and when building the data representation for the phone call. However, this is something we can look at in the future.
As for the moment, this would be the minimum that needs to be passed to the provider.
interface outgoingCall {
callerId: string, // this possibly may need to be called from the provider itself
destinationNumber: string, // this would be defined in the subscriber
language: string, // this would be pulled from the new translation feature we are building but string will work good at the moment.
recordCall: boolean,
voice: string, // select the deferent type of voice for each provider.
message: 'Hello, this is a test call.' // This is the part that will have to expand with how the different providers due "multiple messages"
}
Let us know if you need any assistance.
from novu.
@Cliftonz This seems a great step for a11y, could you assign me this one 😇
from novu.
@Cliftonz I see this issue is for adding a new channel requiring some brainstorming.
@learner-mohit would you like to share your ideas on how you want to tackle this issue
from novu.
@jainpawan21 Right now, I am adding a new channel type called VOICE which will have Twilio and Telesign as two options.
Currently, I am working on Twilio's Voice API, it is very similar to Twilio's SMS API. It takes three fields:
twiML url: this is the url where TwiML(twilio markup language) is hosted. it will have an xml file telling what to do like here, the xml file reads a line "Thanks for trying our documentation. Enjoy!" and then plays the classic.mp3 file after calling the recipient. Developers can create new TwiML files using Twilio's TwiML bin feature provided on their console.
to: it will be receiver's mobile number
from: it will be twilio's rented mobile number
I haven't checked Telesign yet. If you have any suggestion, we can discuss and get to a better solution.
from novu.
@Cliftonz i will add a new voice channel, can you assign this to me please?
from novu.
@Cliftonz i'm thinking to add only twillio voice as part of this PR, would like to do telesign as separate PR/issue, because I was checking telesign api, and its not a straightforward flow(verify(with voice) api is, but not the voice api), it requires us to setup a webhook to handle the call accepted action to play messages, so i feel its better to separate out that implementation. lmk what do you think?
from novu.
Related Issues (20)
- 🐛 Bug Report: Unable to increase widget height HOT 3
- 🐛 Bug Report: translations are missing in the notification centre HOT 7
- test HOT 1
- 🚀 Feature: Telegram provider HOT 2
- 🐛 Bug Report: When using react-query yourself you cant use NovuProvider because it overrrides the queryclient HOT 1
- 🐛 Bug Report: UI/UX issue for updating changes in web UI, changes are not persisted if update button is not pressed HOT 2
- 🚀 Feature: Add the ability to specify SNS origination number when publishing HOT 5
- 🐛 Bug Report: why can I add the same exact subscriber? HOT 4
- 🐛 Bug Report: Cancelling Scheduled Event Edge Case HOT 1
- 🐛 Bug Report: Missing server api endpoints compared to client HOT 3
- 🐛 Bug Report: Docker containers always try to build enterprise version HOT 3
- 🐛 Bug Report: Headless Client Page Based Pagination Error HOT 8
- 🚀 Feature(self-hosting): AWS SES without access key when running in environment that assumes an IAM role HOT 9
- 🐛 Bug Report: Subscribers bulkCreate call do not create missing subscriber HOT 1
- no issue HOT 1
- 📡 Replace Provider Identifier with Integration Identifier HOT 6
- Notification Issue HOT 2
- [NV-3186] subscriber creation inline with integer subscriberId is failing HOT 1
- 🚀 Feature: Brevo Email Templates HOT 1
- 🐛 Bug Report: A new provider isend-sms throws an error but when trying to view the error details, Novu provides an empty object! HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from novu.