Git Product home page Git Product logo

Comments (7)

PaperBoardOfficial avatar PaperBoardOfficial commented on June 2, 2024 1

@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 avatar Cliftonz commented on June 2, 2024 1

@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.

PaperBoardOfficial avatar PaperBoardOfficial commented on June 2, 2024

@Cliftonz This seems a great step for a11y, could you assign me this one 😇

from novu.

jainpawan21 avatar jainpawan21 commented on June 2, 2024

@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.

PaperBoardOfficial avatar PaperBoardOfficial commented on June 2, 2024

@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.

mahendraHegde avatar mahendraHegde commented on June 2, 2024

@Cliftonz i will add a new voice channel, can you assign this to me please?

from novu.

mahendraHegde avatar mahendraHegde commented on June 2, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.