-
Notifications
You must be signed in to change notification settings - Fork 215
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
Support for Applications Rest API #4
Comments
This feature has to be coordinated with the Visual App Designer work. |
From IRC chat : where you able to check with the PlayMyBand WebRTC hackers |
Thanks @deruelle , i'll proceed with this adjustment on the current branch. |
…different that the one used on request, informing the proper error instead. Issue #4.
The info visibility control between different accounts is in my last commit, now while trying to create a client or app using the same name as an existing one, a HTTP 409 is sent with a explanation message, when the account used to request is different than existent client/app account. I'm not sure if 409 is the best choice, I can change if there is a better one. Also, after some words with @gvagenas and @otsakir some ideas came up about using Applications API on RVD and AdminUI, so i'm testing a few things now and i will share the news as i progress. |
DID and Application entities These are the conclusions of a constructive discussion on the issue with @gvagenas
So when a call arrives, the DID is processed, the respective Application SID is retrieved and rcmlURL is determined and used for getting the actual RCML.
Syncing Application entities with RVD projects These are the conclusiong of a constructive discussion on the issue with @ghjansen . We thought of three ways of implementing syncing Restcomm Application entities with RVD. Operations that are at stake are:
|
|
There is a new topic about Multi-tenancy on Google Groups to gather the information about our discussions: https://groups.google.com/forum/#!topic/restcomm/NygtnHpgeXE. Also, the document: https://docs.google.com/document/d/1zjZts9a86oL9xV2wlADJ5m2BA96flvPJ8gQ2qRWErJE. I'm moving forward on strategies to sync Applications entities. |
Excellent discussion. Very important to get this right. It has implications on app publishing, distribution, scaling, usage reporting, billing, A couple of comments @ghjansen wrote:
@deruelle wrote:
@ghjansen Lets not forget that an app can have multiple entry points. One for Voice/Video Call, another for message/SMS/MMS, and yet another for Web Trigger (click to call). |
@ivelin actually, "DID contains references to one one or more Applications using Application SIDs." was a mention from @otsakir. Maybe this is about Voice/SMS/USSD request and fallback options, where is possible to configure different apps between these options. @otsakir you mind to evolve on that? @ivelin considering your mention on the environmental aspects:
Im considering to create a diagram about this so we can have a visual of the environment. Waiting for your confirmations/corrections. |
Regarding RVD internals and state, application execution is stateless. All state is transferred on RCML action urls. Btw, does it make sense to still use the filesystem for persisting RVD projects in the new distributed cloud setup or is it a blocker? If it's a blocker we should consider porting the project persistence layer to DB. |
@ghjansen you are doing an outstanding work leading the design discussion on this issue. Let me digest it and get back to you with thoughts. |
@otsakir How about application level variables? They are supposed to be stored somewhere, right? Or are they passed from module to module throughout the workflow and never stored in the RVD runtime environment? "Btw, does it make sense to still use the filesystem for persisting RVD projects in the new distributed cloud setup or is it a blocker? If it's a blocker we should consider porting the project persistence layer to DB." Good point. Apps should go in the shared DB. All Restcomm/RVD runtime instances in the same deployment should see the exact same persistent data view. Including app configuration and user created apps. The runtime state of an executing RVD app thread doesn't have to persist and replicate in the cluster...for now. Eventually we would want redundancy for some apps. Such as emergency, financial, etc. |
@ghjansen Comments on your design and diagram. Its excellent material. "Publish/Build": |
@ivelin They too are transferred from module to module through the action urls. So, no state there either regarding the runtime. Btw, the only place that contains information that can change at runtime by the user are the configuration options of the application (if defined). @ghjansen Regarding the filesystem VS DB discussion the following need to be considered:
Overall, porting to DB seems a pretty heavy and time-consuming task with clear contracts to be defined, upgrade process etc. |
Considering all the discussions, designs and development on this issue, now we have RVD Projects sync through Applications API. So every time that a RVD Project is created, imported, renamed or removed using RVD UI, a request is made to Restcomm to create/rename/remove on database. No changes were made until now on FS. The current reference between FS Project and DB Application is the name choosed to create the RVD Project. After some chat with @otsakir we've agreed that a new RVD Project could be created on FS using the applicationSid (obtained after create a new Application) instead of the project name, thus forming a strongest reference between FS and DB. Change the name that RVD uses to store projects on FS may imply in some migration process, to deal with existent projects from production environments, but it can potentially simplify reverse sync (from DB to FS), then by creating/renaming/removing over Applications API we could have the correspondent events on RVD. Anyway, the synchronisation of events from Applications API to RVD Project was another discussion that i had with @otsakir and we agreed that maybe is not so crucial for now. Guys, let me know if i can go further in something for this issue and thank you for all support! |
Add Support for https://www.twilio.com/docs/api/rest/applications
The text was updated successfully, but these errors were encountered: