Giter Site home page Giter Site logo

aryaminus / rn-voice-video-call Goto Github PK

View Code? Open in Web Editor NEW
121.0 7.0 75.0 1.41 MB

Usage of WebRTC for voice & video call with peer-to-peer or conference with Login and Register screen using response & Async storage with Call Dis/Connect, Failed and Idle views in react native. Youtube:

Home Page: https://goo.gl/7aJn86

License: MIT License

JavaScript 84.80% Python 3.40% Java 3.16% Objective-C 8.65%
react-native voice-chat video-call asyncstorage call peer-to-peer conference-talk voximplant login android

rn-voice-video-call's Introduction

RNVideoVoiceCall

RNVideoVoiceCall is the 4th session build for showing the implementation of Signin and Signup screen to login or create user for voice call along with video call for both peer to peer or conference using Voximplant for react native.

In this main branch, we will be focusing on UserSide branch from which certain properties to be upgraded which can be referred here:

https://github.com/aryaminus/RN-voice-video-call/tree/UserView

RNVideoVoiceCall demo

The main GUI is working as expected where the user after logging in is given a text field to enter the caller user id with toogle option to Peer-to-peer and Video toogle which when true shows the Remote View and Self View. On pressing Call icon the receiver get option to accept or reject the call and then on accept the user and receiver is shown option to toogle speaker, video, mute, keypad & hang-up. On Call fail and reject, alert is shown to the user.

The Backend part can be refered here:

https://github.com/aryaminus/RN-voice-video-call/tree/HttpApiSetup

RNVideoVoiceCall demo

Todos

  • Fullscreen RemoteView for VideoCall
  • Integrating Messaging and other Delegate Protocol
  • Hiding the main account credentials in Register.js
  • Navigation to Boiler only after the SDK Login is complete from server

PRs are always welcome

Note:

  1. The response's JSON maybe required to be stringified, so make sure you use it when formatting
  2. As the react-native-voximplant package sends responses as the state of the account is changed, we use DeviceEventEmitter for listening and changing certain variables
  3. The icons are setup as createIconSet, you can change it by change the FontFamily in android/app/src/main/assets/fonts and custom.ttf
  4. Further layout can be changed within Stylesheet if your device is not rendering the view properly

Next, we store the login values or the new user create values locally using Async Storage and then use it next time the user opens the app so that s/he does not have to login each time the app is opened.

We will be using HTTPAPI of Voximplant.

Note:

  1. Arch Linux with VS-Code, thus support focused on Android App
  2. Extensions: React Native Tools , React-Native Snippets , Prettier
  3. Device run instead of SDK-build using Vysor
  4. Remove/Add Comment of the required system in Register.js : Create new Application and fetch application_id and assign user to it or assign user to all applications. Default is assign all where you may once create and fetch app_id and then put the app_id in place of all. Refer to Video Session

Installation

Clone the source locally:

$ git clone https://github.com/aryaminus/RN-voice-video-call/
$ cd RN-voice-video-call

Start the application in development mode

npm install
react-native link
react-native run-android

or for VS-Code:

npm install
react-native link

then press F1 or Fn+F1 and React Native:Run Android on Device

Else Follow Code.txt and Youtube

Packages:

  1. react-navigation
  2. react-native-voximplant
  3. react-native-loading-spinner-overlay
  4. react-native-vector-icons
  5. react-native-button
  6. react-addons-update

Additional Links:

  1. VoxImplantDelegate
  2. HTTP API
  3. Control Panel
  4. Voximplant official demo app

Installation

Follow Code.txt, Manual.md and UserViewWorking.png and ServerWorking.png(inside /app/images)

Working demo

Contributing

  1. Fork it (https://github.com/aryaminus/RN-voice-video-call/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

rn-voice-video-call's People

Contributors

aryaminus avatar builderx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rn-voice-video-call's Issues

Error when call

when i click on call button it says can't create dialog please help

Error with PropTypes when trying to run on Android

Hi, I get the following error trying to install the project:

imagen

Searching a little I think it's because of this

https://stackoverflow.com/a/44573437

That since version 15.5 PropTypes has it's own package

In the package.json I see this "react": "^16.0.0-alpha.12",
And in this is the line that causes the error

import React from 'react';

const {
  Component,
  PropTypes
} = React;

on index.android.js

I know nothing about react BTW!

Logo Design

Hello!

I'm a graphic designer and I like to support open source projects. I would like to design a logo for your project if you interested, I will be happy to work with you! :)

Best Regards

Baran Pirinçal

Graphic Designer

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.