nativescript-call
Your awesome NativeScript plugin.
npm i --save nativescript-call

NativeScript Call plugin

Build Status NPM version Downloads Twitter Follow

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

tns plugin add nativescript-call

Demo

Check the source in the demo folder, or run it on your own device:

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 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. |

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

import { TNSCall } from "nativescript-call";
const tnsCall = new TNSCall();

tnsCall.endCall()
.then(() => console.log("Ended call"))
.catch(err => console.log("Error ending call: " + err));