switchon@lavalamp.biz
+27(0) 83 419 4851 / +27(0) 21 036 1165
Application & software development
Get A Quote

    • Home
    • Services
      • Application & software development
      • Outsourced software development
      • Project based resourcing
      • Digital marketing & consulting
      • Graphic design & consulting
      • UI / UX design & consulting
      • Recruitment services
      • Lease an expert
    • About
      • How we work
      • NBConsult Group
      • Partners
      • Lightbox Digital
    • Blog
    • Join us
    • Contact

    • Home
    • Services
      • Application & software development
      • Outsourced software development
      • Project based resourcing
      • Digital marketing & consulting
      • Graphic design & consulting
      • UI / UX design & consulting
      • Recruitment services
      • Lease an expert
    • About
      • How we work
      • NBConsult Group
      • Partners
      • Lightbox Digital
    • Blog
    • Join us
    • Contact

    • Home
    • Services
      • Application & software development
      • Outsourced software development
      • Project based resourcing
      • Digital marketing & consulting
      • Graphic design & consulting
      • UI / UX design & consulting
      • Recruitment services
      • Lease an expert
    • About
      • How we work
      • NBConsult Group
      • Partners
      • Lightbox Digital
    • Blog
    • Join us
    • Contact

    • Home
    • Services
      • Application & software development
      • Outsourced software development
      • Project based resourcing
      • Digital marketing & consulting
      • Graphic design & consulting
      • UI / UX design & consulting
      • Recruitment services
      • Lease an expert
    • About
      • How we work
      • NBConsult Group
      • Partners
      • Lightbox Digital
    • Blog
    • Join us
    • Contact
    how to send a tweet from within your angular app via node js
    How To Send A Tweet From Within Your Angular App Via Node Js
    Jul 22, 2020
    benefits of hiding columns when using datatables
    Benefits Of Hiding Columns When Using Datatables.net
    Aug 24, 2020

    Shipping A Full-Featured Video Calling App With Half The Effort (OpenVidu)

    Categories
    • Mobile Application Development
    • Software Development
    Tags
    • angular
    • app
    • apps
    • AWS
    • cloud
    • cloud platform
    • ionic
    • openvidu
    • Video Calling
    • video calling app
    open vidu
    open vidu

    Introduction


    This is less a code tutorial and more of a report of our experience and a moderately detailed guide. It covers how to wisely choose a technology stack for building, testing, and deploying a full-featured video calling app in a fraction of the time it would take to replicate the feature set of existing popular video conferencing applications.

    Having used technologies like Zoom, Teams, Skype, and Whatsapp Video calling, etc, users expect some of the following usability requirements with no exceptions.

    - Firstly, as you would expect, can I actually make a call?
    - Is the call quality good, even over low latency networks?
    - Does it support multiple users in one call?
    - Can I mute or pause the video incall?
    - Do I have device orientation support (Portrait and landscape viewing)

    There are these additional features not required but put users in a familiar environment.

    - Can I click to focus on a specific video stream?
    - Can I send chat messages during a video call?

    Now already having read up to this point, it sounds like you would need a small team. Enough guys implementing a backend to handle some of the hard work in the background. A couple or more front-end developers to implement the user-facing features, right?

    What if I told 1 developer could implement all the previously mentioned features and deploy to both IOS and Android platforms is a space of 2 weeks or less and no without breaking the world's no sleep record!

    Enter https://openvidu.io/, a full featured open source project that can be used to custom build video calling solutions.


    1. Decision Making


    The outcome here is to try and avoid reinventing the wheel as much as possible. Our use case was extending as an existing application's capabilities to support video calling functionality.

    What this means was being able to use the same technology stack previously used to build the original application. Fortunately, Openvidu is cross-platform. It can be built on top of the most popular stacks.

    Most notably integration with Ionic Framework. This essentially cuts away most of the dev time since you do not need two separate native applications for IOS and Android.


    2. Front-end | Client Implementation


    What we did here was using the OpenVidu Ionic project as our base project. You may not be happy with the architecture it comes with out of the box. Take this time to rectify and move around things if you need to. After this, you can build ontop.

    What is great about the 'base project' approach is that you essentially port all the necessary video calling application features in one step and can quickly implement changes that OpenVidu has made to their Ionic project should you need to do so.

    The original project can be kept in a separate repo and the new project where your app has been built on top, in another. When changes happen on OpenVidu's project you can inspect which changes need to be ported into your working project without breaking your working application.


    3. Backend | Server Implementation


    We opted to go with the AWS cloud formation deployment explained in more detail here. https://docs.openvidu.io/en/2.15.0/deployment/deploying-aws/.

    Again since the objective is to save time, choosing a cloud platform like AWS where you have to do less of the server administration is a great option. You have to be knowledgeable about what you are doing, but you do not need to spend time that could be used elsewhere and doing server setup that can be automated.


    4. Issues & Debugging


    The OpenVidu platform is stable and ready for production, however, depending on the integration you choose and the time of implementation, you may run into issues. Not to worry though since Openvidu has extensive docs covering usage and good community guides. https://github.com/OpenVidu/openvidu/issues.

    We only ran into two major issues impacting usability on the Ionic framework.

    - Voice output chooses earpiece by default on IOS platform.
    - Screen orientation not consistent from client to client.


    5. Deployment


    Deployment of the server is extensively detailed on Openvidu's website https://docs.openvidu.io/en/2.15.0/deployment/.

    There are multiple options available including:
    - A docker image deployment.
    - A semi-automated AWS deployment using AWS's cloud formation.
    - If you like being in control, a from-scratch deployment guide is provided.

    Since you have access to all the sources, you have the option to dive deep into the configuration and optimize the server depending on the resources you at your exposal.

    Contact us


      Related posts:

      how to deploy your app/website on herokuHow To Deploy Your App/Website On Heroku how to deploy a backend api to azureHow To Deploy A Backend API To Azure laravel envoyer and forgeProvisioning A New Digital Ocean Server With Laravel Forge, And Deploying Code With Laravel Envoyer implementing laravel echoImplementing Laravel Echo And Socket.io With A Laravel API And Ionic Vue App
      Share
      85
      Ronald Hove
      Ronald Hove

      Leave a Reply Cancel reply

      Your email address will not be published. Required fields are marked *

      Lava Lamp Lab


      Like technology, a lava lamp constantly changes form, producing new conditions with every passing moment



      lava lamp lab facebook   lava lamp lab twitter   lava lamp lab linkedin   lava lamp lab instgram

      Services


      Application & software development

      Outsourced software development

      Project based resourcing

      Digital marketing & consulting

      Graphic design & consulting

      UI / UX design & consulting

      Contact Us


      +27(0) 83 419 4851

      +27(0) 21 036 1165


      switchon@lavalamp.biz


      Unit 4 Monaco Square,
      14 Church Street,
      Durbanville,
      Cape Town, 7550

      NBConsult Group


      nbconsult
      nbconnect msp
      nbclearning
      river broadband
      designer needed
      © 2023 Lava Lamp Lab (Pty) Ltd | All Rights Reserved | Privacy Policy
      Contact us now

        Application & software development

          Outsourced software development

            Project based resourcing

              Digital marketing & consulting

                Graphic design & consulting

                  UI/UX design & consulting

                    Lease an expert

                      Recruitment services

                        We are using cookies to give you the best experience on our website.

                        You can find out more about which cookies we are using or switch them off in settings.

                        Lava Lamp Lab
                        Powered by  GDPR Cookie Compliance
                        Privacy Overview

                        This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

                        Strictly Necessary Cookies

                        Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

                        If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.

                        3rd Party Cookies

                        This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

                        Keeping this cookie enabled helps us to improve our website.

                        Please enable Strictly Necessary Cookies first so that we can save your preferences!

                        Cookie Policy

                        More information about our Cookie Policy