# react-native-akameet-sdk

> AkaMeet - Video conferencing, online meeting tool

Latest version **0.1.21** (published 2022-09-29) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install react-native-akameet-sdk
pnpm add react-native-akameet-sdk
yarn add react-native-akameet-sdk
bun add react-native-akameet-sdk
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.1.21 |
| Published | 2022-09-29 |
| First published | 2022-09-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 30 |
| Unpacked size | 5.6 MB |
| Known vulnerabilities | 0 (+23 in 1 direct dependencies) |
| Install scripts | no |
| Author | Ducnv3 |
| Maintainers | vietduc2809 |
| Keywords | react-native, Conference call mobile, Mobile call, React native meeting, Meeting, Streaming video mobile, ios, android |

## Links

- npm: https://www.npmjs.com/package/react-native-akameet-sdk
- Repository: https://github.com/ducnv3/akameet-sdk
- Homepage: https://github.com/ducnv3/akameet-sdk#readme
- Issues: https://github.com/ducnv3/akameet-sdk/issues
- npm.io page: https://npm.io/package/react-native-akameet-sdk

## Dependencies (30)

- [axios](https://npm.io/package/axios.md) ^0.21.1
- [redux](https://npm.io/package/redux.md) ^4.0.5
- [i18next](https://npm.io/package/i18next.md) ^21.9.1
- [initials](https://npm.io/package/initials.md) ^3.1.2
- [react-redux](https://npm.io/package/react-redux.md) ^7.2.2
- [html-entities](https://npm.io/package/html-entities.md) ^2.3.3
- [react-i18next](https://npm.io/package/react-i18next.md) ^11.18.5
- [redux-flipper](https://npm.io/package/redux-flipper.md) ^2.0.2
- [redux-persist](https://npm.io/package/redux-persist.md) ^6.0.0
- [@reduxjs/toolkit](https://npm.io/package/@reduxjs/toolkit.md) ^1.5.0
- [mediasoup-client](https://npm.io/package/mediasoup-client.md) ^3.6.45
- [socket.io-client](https://npm.io/package/socket.io-client.md) ^4.0.1
- [react-native-modal](https://npm.io/package/react-native-modal.md) ^13.0.1
- [react-native-webrtc](https://npm.io/package/react-native-webrtc.md) ^1.100.1
- [react-native-flipper](https://npm.io/package/react-native-flipper.md) ^0.162.0
- [react-native-elements](https://npm.io/package/react-native-elements.md) ^3.4.2
- [react-native-reanimated](https://npm.io/package/react-native-reanimated.md) ^2.10.0
- [react-native-collapsible](https://npm.io/package/react-native-collapsible.md) ^1.6.0
- [react-native-device-info](https://npm.io/package/react-native-device-info.md) ^10.0.2
- [react-native-vector-icons](https://npm.io/package/react-native-vector-icons.md) ^9.0.0
- [react-native-dropdownalert](https://npm.io/package/react-native-dropdownalert.md) ^4.5.1
- [react-native-incall-manager](https://npm.io/package/react-native-incall-manager.md) ^4.0.0
- [react-native-gesture-handler](https://npm.io/package/react-native-gesture-handler.md) ^2.6.0
- [react-native-iphone-x-helper](https://npm.io/package/react-native-iphone-x-helper.md) ^1.3.1
- [react-native-element-dropdown](https://npm.io/package/react-native-element-dropdown.md) ^2.3.0
- [react-native-safe-area-context](https://npm.io/package/react-native-safe-area-context.md) ^4.3.3
- [react-native-status-bar-height](https://npm.io/package/react-native-status-bar-height.md) ^2.6.0
- [@thecodingmachine/redux-toolkit-wrapper](https://npm.io/package/@thecodingmachine/redux-toolkit-wrapper.md) ^2.0.1
- [react-native-keyboard-aware-scroll-view](https://npm.io/package/react-native-keyboard-aware-scroll-view.md) ^0.9.5
- [@react-native-async-storage/async-storage](https://npm.io/package/@react-native-async-storage/async-storage.md) ^1.17.10

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 0.1.21 (latest) — 2022-09-29
- 0.1.17 — 2022-09-26
- 0.1.16 — 2022-09-22
- 0.1.14 — 2022-09-15
- 0.1.13 — 2022-09-15
- 0.1.12 — 2022-09-12
- 0.1.11 — 2022-09-09
- 0.1.10 — 2022-09-09
- 0.1.9 — 2022-09-08
- 0.1.0 — 2022-09-07

## README

# react-native-akameet-sdk
AkaMeet - Video conferencing, online meeting tool

Akameet for React Native. Supports Android & iOS platforms.

"Our akaMeet solutions provides video conferencing for all your business and customer needs, whether if you're in sales talking to clients, a relationship manager in a bank connecting with your customers, or a teacher connecting with your students. all your experiences and needs can be customized and optimized through akaMeet video conferencing capabilities!"
## Installation
```sh
1. npm install react-native-akameet-sdk
```


## iOS install

1. add pods to Podfile file: 
```sh
  pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
  pod 'RNReanimated', :path => '../node_modules/react-native-Reanimated'
  pod 'react-native-webrtc', :path => '../node_modules/react-native-webrtc'
  pod 'react-native-flipper', :path => '../node_modules/react-native-flipper'
  pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-async-storage/async-storage'
```
2. Add the following lines to your Info.plist
```sh
<key>NSCameraUsageDescription</key>
<string>akaMeet need to access Camera for display video streaming</string>
<key>NSMicrophoneUsageDescription</key>
<string>akaMeet need to access Microphone for voice streaming</string>
```
3. Add 'react-native-reanimated/plugin' to plugins of babel.config.js file: 
```sh
plugins: ['react-native-reanimated/plugin']
```
4. Clean cache to update babel:
``` sh
npx react-native start --reset-cache 
or
yarn cache clean

```
5. Clean your project and run: 
cd ios & pod install

## Android install

1. Add perrmission in AndroidManifest.xml file
```sh
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
```
2. Update <b> gradle.properties </b>
  add this line in the end:
  <i>android.enableDexingArtifactTransform.desugaring=false</i>

## Akameet SDK Implementation - Steps
1. SDK Sample - https://github.com/ducnv3/akameet-sdk
2. Document - https://github.com/ducnv3/akameet-sdk#readme

## Steps to Integrate:
1. Signup for Akameet (https://akameet.io) and signup for Developer or Higher plan. 
2. You will get email with roomId & passcode information format link: https://akameet.io/conference/j/xxxxxx?pwd=xxxxx 
3. You can access by browser of mobile app in Apple store and Google play store to testing meeting.
4. install react-native-akameet-SDK mobile app and contact us get our configuration to access from you react-native app 

## Usage

```js
import { Akameet, Config } from "react-native-akameet-sdk";

// ...
const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  }
});

  React.useEffect(() => {
   Config.API_URL = `...`
   Config.SIGNALING_URL = `...`;
   Config.ROOM_ID = `...`;
   Config.PASSWORD = `...`;
   Config.DISPLAY_NAME = `your display name`;
   Config.AUTH_SERVER = `...`
  }, []);
  return (
    <View style={styles.container}>
            <Akameet/>
    </View>
  );

```
You can hide button default and trigger JoinRoom method from your button, in the below 
```js
import { StyleSheet, View, Button } from 'react-native';
import { Akameet, Config, JoinRoom } from 'react-native-akameet-sdk';

export default function App() {

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  }
});


  React.useEffect(() => {
    Config.API_URL = `...`
    Config.SIGNALING_URL = `...`;
    Config.AUTH_SERVER = `...`
    Config.SHOW_BUTTON_JOIN_ROOM = false;

  }, []);
  return (
    <View style={styles.container}>
      <Akameet />
      <Button title='join room' onPress={() => JoinRoom({
        roomId: `...`,
        passWord: `...`,
        displayName: `your display name`
      })} />
    </View>
  );
}


```

## Screens for example
<img src="https://github.com/ducnv3/akameet-sdk/blob/main/screens/button-akameet.png" width="350" height="790">
<img src="https://github.com/ducnv3/akameet-sdk/blob/main/screens/meeting-akameet.png" width="350" height="790">
<img src="https://github.com/ducnv3/akameet-sdk/blob/main/screens/ScreenShotDemo.png">

## Apply demo to your application

```sh
1. npm install react-native-akameet-sdk

2. add Podfile: 
  pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
  pod 'RNReanimated', :path => '../node_modules/react-native-Reanimated'
  pod 'react-native-webrtc', :path => '../node_modules/react-native-webrtc'
  pod 'react-native-flipper', :path => '../node_modules/react-native-flipper'
  pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-async-storage/async-storage'

3. Add 'react-native-reanimated/plugin' to plugins of babel.config.js file: 

plugins: ['react-native-reanimated/plugin']

4. Clean cache to update babel:
npx react-native start --reset-cache 
or
yarn cache clean

5. cd ios & pod install

6. Configuration in useEffect of your app.js file :
    Config.API_URL = 'https://dev.akameet.io'
    Config.SIGNALING_URL = `wss://dev.akameet.io`;
    Config.ROOM_ID = `812265283983`;
    Config.PASSWORD = `4969156341`;
    Config.DISPLAY_NAME = `duc test aaa`;
    Config.AUTH_SERVER = `https://dev.akameet.io`

7. npx react-native run-ios (or run-android)

8. Check your app is joined success in the room: https://dev.akameet.io/conference/j/812265283983?pwd=4969156341

```
## Options

<table>
<thead>
<tr>
<th>key</th>
<th>Data type</th>
<th>Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div>
<div>API_URL</div>
</div>
</td>
<td>string</td>
<td>required</td>
<td>Valid API URL</td>
</tr>
<tr>
<td>
<div>
<div>SIGNALING_URL</div>
</div>
</td>
<td>string</td>
<td>required</td>
<td>Valid server URL</td>
</tr>
<tr>
<td>
<div>
<div>ROOM_ID</div>
</div>
</td>
<td>string</td>
<td>required</td>
<td>Room id for Akameet</td>
</tr>
<tr>
<td>
<div>
<div>PASSWORD</div>
</div>
</td>
<td>string</td>
<td>required</td>
<td>Password for Akameet</td>
</tr>
<tr>
<td>
<div>
<div>DISPLAY_NAME</div>
</div>
</td>
<td>string</td>
<td>option</td>
<td>Name display in meeting</td>
</tr>
<tr>
<td>
<div>
<div>AUTH_SERVER</div>
</div>
</td>
<td>string</td>
<td>required</td>
<td>Valid authencation server URL</td>
</tr>
<tr>
<td>
<div>
<div>
<div>
<div>SHOW_BUTTON_JOIN_ROOM</div>
</div>
</div>
</div>
</td>
<td>boolean</td>
<td>true</td>
<td>default: true</td>
</tr>
<tr>
<td>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>Akameet</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</td>
<td>component</td>
<td>required</td>
<td>Need to embed in new page</td>
</tr>
<tr>
<td>
<div>
<div>
<div>
<div>
<div>
<div>JoinRoom</div>
</div>
</div>
</div>
</div>
</div>
</td>
<td>method</td>
<td>option</td>
<td>params:
<div>
<div>{</div>
<div>roomId:`...`,</div>
<div>passWord:`...`,</div>
<div>displayName:`..`</div>
<div>}</div>
<div>trigger in your custom button</div>
</div>
</td>
</tr>
</tbody>
</table>

## Contributing

See the [contributing guide](https://github.com/ducnv3/akameet-sdk/tree/main) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

---
_Source: https://npm.io/package/react-native-akameet-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
