Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eddyverbruggen/nativescript-call
NativeScript plugin to interact with the native Call UI
https://github.com/eddyverbruggen/nativescript-call
call nativescript nativescript-plugin phonecall webrtc
Last synced: 3 months ago
JSON representation
NativeScript plugin to interact with the native Call UI
- Host: GitHub
- URL: https://github.com/eddyverbruggen/nativescript-call
- Owner: EddyVerbruggen
- License: apache-2.0
- Created: 2019-01-19T17:31:31.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-16T09:49:42.000Z (over 5 years ago)
- Last Synced: 2024-10-02T07:59:20.395Z (4 months ago)
- Topics: call, nativescript, nativescript-plugin, phonecall, webrtc
- Language: TypeScript
- Homepage:
- Size: 1.97 MB
- Stars: 8
- Watchers: 4
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NativeScript Call plugin
[![Build Status][build-status]][build-url]
[![NPM version][npm-image]][npm-url]
[![Downloads][downloads-image]][npm-url]
[![Twitter Follow][twitter-image]][twitter-url][build-status]:https://travis-ci.org/EddyVerbruggen/nativescript-call.svg?branch=master
[build-url]:https://travis-ci.org/EddyVerbruggen/nativescript-call
[npm-image]:http://img.shields.io/npm/v/nativescript-call.svg
[npm-url]:https://npmjs.org/package/nativescript-call
[downloads-image]:http://img.shields.io/npm/dm/nativescript-call.svg
[twitter-image]:https://img.shields.io/twitter/follow/eddyverbruggen.svg?style=social&label=Follow%20me
[twitter-url]:https://twitter.com/eddyverbruggen## Dude, I already have a Phone app on my phone..
Sure 😅But what if your app supports VOIP / WebRTC calls? You'll want to have the operating system pop up the
native call dialog, right? That's where this plugin comes in.Currently iOS only, where we leverage `CallKit`, which is part of the iOS SDK since iOS 10.
## Installation
```bash
tns plugin add nativescript-call
```## Demo
Check the source in the [demo](/demo) folder, or run it on your own device:```bash
git clone https://github.com/EddyVerbruggen/nativescript-call
cd nativescript-call/src
npm i
npm run demo.ios
```> Usage in NativeScript-Angular and NativeScript-Vue is nothing different from what you'd do in NativeScript-Core.
## API
### `receiveCall`
The properties you can pass to this method are:| Property | Type | Description |
| --- | --- | --- |
| appName | `string` | The app's name, as shown on the caller screen. Default the name of your app. |
| icon | `string` | The name of an icon to show for your app. Loaded from the App_Resources folder (see the demo). |
| handleType | [`TNSCallHandleType`](https://github.com/EddyVerbruggen/nativescript-call/blob/7fec47292ba3e1452bb001993d5ba88f0ad9dd1d/src/call.common.ts#L3) | Either `"PHONE"` (default) or `"EMAIL"`. |
| handleId | `string` | Either a phone number when `handleType` is `"PHONE"`, or an email address when `handleType` is `"EMAIL"`. |
| callerName | `string` | The name to be displayed on the call UI. |
| hasVideo | `boolean` | Whether or not this call supports video. Default `false`. |
| supportsDTMF | `boolean` | Whether the call can send DTMF (dual tone multifrequency) tones via hard pause digits or in-call keypad entries. Default `false`. |The event handlers you can pass to this method are:
| Name | Description |
| --- | --- | --- |
| onSpeakerOn | Triggered when the speaker is turned on. |
| onSpeakerOff | Triggered when the speaker is turned off. |```typescript
import { TNSCall } from "nativescript-call";
const tnsCall = new TNSCall();tnsCall.receiveCall(
{
appName: "My App",
icon: "download-from-cloud", // see demo/app/App_Resources/iOS
handleType: "PHONE",
handleId: "+31612345678",
callerName: "Donald J. Drumpf",
hasVideo: true,
supportsDTMF: true,
onSpeakerOn: () => console.log("Speaker ON"),
onSpeakerOff: () => console.log("Speaker OFF")
})
.then(() => console.log("Receive call success"))
.catch(err => console.log("Error receiving call: " + err));
```### `endCall`
```typescript
import { TNSCall } from "nativescript-call";
const tnsCall = new TNSCall();tnsCall.endCall()
.then(() => console.log("Ended call"))
.catch(err => console.log("Error ending call: " + err));
```## Receiving a call when the app is not running
Either use [Pusher](https://github.com/noodlewerk/NWPusher), or this CURL command:```shell
curl -v -d '{"userInfo":"eddy.verbruggen","aps":{"sound":"default"},"title":"Eddy Verbruggen","callType":"VIDEO"}' --header "apns-topic: com.app.sample" --http2 --cert ~/Desktop/voip/ck.pem:ggk12 https://api.development.push.apple.com/3/device/DEVICE_VOIP_TOKEN
```