@kapsula-chat/capacitor-push-calls 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Package.swift +31 -0
- package/README.md +252 -0
- package/android/build.gradle +46 -0
- package/android/src/main/AndroidManifest.xml +31 -0
- package/android/src/main/java/com/capacitor/voipcalls/CallManager.kt +213 -0
- package/android/src/main/java/com/capacitor/voipcalls/CapacitorVoipCallsPlugin.kt +584 -0
- package/android/src/main/java/com/capacitor/voipcalls/PushRouterMessagingService.kt +26 -0
- package/android/src/main/java/com/capacitor/voipcalls/VoipConnection.kt +112 -0
- package/android/src/main/java/com/capacitor/voipcalls/VoipConnectionService.kt +101 -0
- package/dist/esm/definitions.d.ts +279 -0
- package/dist/esm/definitions.d.ts.map +1 -0
- package/dist/esm/definitions.js +1 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/web.d.ts +67 -0
- package/dist/esm/web.d.ts.map +1 -0
- package/dist/esm/web.js +81 -0
- package/dist/plugin.cjs.js +96 -0
- package/dist/plugin.cjs.js.map +1 -0
- package/dist/plugin.js +99 -0
- package/dist/plugin.js.map +1 -0
- package/ios/Plugin/CallManager.swift +226 -0
- package/ios/Plugin/CapacitorVoipCallsPlugin.swift +517 -0
- package/ios/Plugin/Plugin.m +31 -0
- package/package.json +95 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
package com.capacitor.voipcalls
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.os.Build
|
|
5
|
+
import android.telecom.Connection
|
|
6
|
+
import android.telecom.DisconnectCause
|
|
7
|
+
import android.telecom.VideoProfile
|
|
8
|
+
import androidx.annotation.RequiresApi
|
|
9
|
+
import com.getcapacitor.Bridge
|
|
10
|
+
|
|
11
|
+
@RequiresApi(Build.VERSION_CODES.M)
|
|
12
|
+
class VoipConnection(
|
|
13
|
+
private val context: Context,
|
|
14
|
+
private val callId: String,
|
|
15
|
+
private val handle: String,
|
|
16
|
+
private val displayName: String,
|
|
17
|
+
private val handleType: String,
|
|
18
|
+
private val video: Boolean,
|
|
19
|
+
private val isOutgoing: Boolean
|
|
20
|
+
) : Connection() {
|
|
21
|
+
|
|
22
|
+
private var callManager: CallManager? = null
|
|
23
|
+
|
|
24
|
+
init {
|
|
25
|
+
setConnectionCapabilities(
|
|
26
|
+
CAPABILITY_SUPPORT_HOLD or
|
|
27
|
+
CAPABILITY_HOLD or
|
|
28
|
+
CAPABILITY_MUTE
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
if (video) {
|
|
32
|
+
setVideoState(VideoProfile.STATE_BIDIRECTIONAL)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Get plugin instance and register this connection
|
|
36
|
+
Bridge.getInstance()?.let { bridge ->
|
|
37
|
+
val plugin = bridge.getPlugin("CapacitorPushCalls")?.instance
|
|
38
|
+
if (plugin is CapacitorVoipCallsPlugin) {
|
|
39
|
+
callManager = plugin.callManager
|
|
40
|
+
callManager?.registerConnection(callId, this)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
override fun onShowIncomingCallUi() {
|
|
46
|
+
// Called when the system wants to show incoming call UI
|
|
47
|
+
// You can use this to show your custom incoming call screen
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
override fun onAnswer() {
|
|
51
|
+
setActive()
|
|
52
|
+
callManager?.notifyCallAnswered(callId)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
override fun onAnswer(videoState: Int) {
|
|
56
|
+
setActive()
|
|
57
|
+
setVideoState(videoState)
|
|
58
|
+
callManager?.notifyCallAnswered(callId)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
override fun onReject() {
|
|
62
|
+
setDisconnected(DisconnectCause(DisconnectCause.REJECTED))
|
|
63
|
+
destroy()
|
|
64
|
+
callManager?.notifyCallRejected(callId)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
override fun onDisconnect() {
|
|
68
|
+
setDisconnected(DisconnectCause(DisconnectCause.LOCAL))
|
|
69
|
+
destroy()
|
|
70
|
+
callManager?.notifyCallEnded(callId, "local")
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
override fun onAbort() {
|
|
74
|
+
setDisconnected(DisconnectCause(DisconnectCause.CANCELED))
|
|
75
|
+
destroy()
|
|
76
|
+
callManager?.notifyCallEnded(callId, "canceled")
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
override fun onHold() {
|
|
80
|
+
setOnHold()
|
|
81
|
+
callManager?.notifyCallHeld(callId, true)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
override fun onUnhold() {
|
|
85
|
+
setActive()
|
|
86
|
+
callManager?.notifyCallHeld(callId, false)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
override fun onPlayDtmfTone(c: Char) {
|
|
90
|
+
// Handle DTMF tones if needed
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
override fun onStopDtmfTone() {
|
|
94
|
+
// Stop DTMF tone
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
override fun onStateChanged(state: Int) {
|
|
98
|
+
when (state) {
|
|
99
|
+
STATE_DIALING -> {
|
|
100
|
+
if (isOutgoing) {
|
|
101
|
+
callManager?.notifyCallStarted(callId)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
STATE_ACTIVE -> {
|
|
105
|
+
// Call is now active
|
|
106
|
+
}
|
|
107
|
+
STATE_DISCONNECTED -> {
|
|
108
|
+
// Call has ended
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
package com.capacitor.voipcalls
|
|
2
|
+
|
|
3
|
+
import android.content.ComponentName
|
|
4
|
+
import android.content.Context
|
|
5
|
+
import android.graphics.drawable.Icon
|
|
6
|
+
import android.net.Uri
|
|
7
|
+
import android.os.Build
|
|
8
|
+
import android.os.Bundle
|
|
9
|
+
import android.telecom.*
|
|
10
|
+
import androidx.annotation.RequiresApi
|
|
11
|
+
|
|
12
|
+
@RequiresApi(Build.VERSION_CODES.M)
|
|
13
|
+
class VoipConnectionService : ConnectionService() {
|
|
14
|
+
|
|
15
|
+
companion object {
|
|
16
|
+
private const val PHONE_ACCOUNT_ID = "CapacitorPushCalls"
|
|
17
|
+
private const val PHONE_ACCOUNT_LABEL = "Push Calls"
|
|
18
|
+
|
|
19
|
+
fun getPhoneAccount(context: Context): PhoneAccount {
|
|
20
|
+
val componentName = ComponentName(context, VoipConnectionService::class.java)
|
|
21
|
+
val phoneAccountHandle = PhoneAccountHandle(componentName, PHONE_ACCOUNT_ID)
|
|
22
|
+
|
|
23
|
+
return PhoneAccount.builder(phoneAccountHandle, PHONE_ACCOUNT_LABEL)
|
|
24
|
+
.setCapabilities(
|
|
25
|
+
PhoneAccount.CAPABILITY_CALL_PROVIDER or
|
|
26
|
+
PhoneAccount.CAPABILITY_VIDEO_CALLING or
|
|
27
|
+
PhoneAccount.CAPABILITY_SELF_MANAGED
|
|
28
|
+
)
|
|
29
|
+
.setSupportedUriSchemes(listOf(PhoneAccount.SCHEME_TEL, PhoneAccount.SCHEME_SIP))
|
|
30
|
+
.build()
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
fun registerPhoneAccount(context: Context) {
|
|
34
|
+
val telecomManager = context.getSystemService(Context.TELECOM_SERVICE) as TelecomManager
|
|
35
|
+
val phoneAccount = getPhoneAccount(context)
|
|
36
|
+
telecomManager.registerPhoneAccount(phoneAccount)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
override fun onCreateOutgoingConnection(
|
|
41
|
+
connectionManagerPhoneAccount: PhoneAccountHandle?,
|
|
42
|
+
request: ConnectionRequest?
|
|
43
|
+
): Connection {
|
|
44
|
+
val extras = request?.extras ?: Bundle()
|
|
45
|
+
val callId = extras.getString("callId") ?: return Connection.createFailedConnection(
|
|
46
|
+
DisconnectCause(DisconnectCause.ERROR, "Missing call ID")
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
val handle = extras.getString("handle") ?: ""
|
|
50
|
+
val displayName = extras.getString("displayName") ?: ""
|
|
51
|
+
val handleType = extras.getString("handleType") ?: "generic"
|
|
52
|
+
val video = extras.getBoolean("video", false)
|
|
53
|
+
|
|
54
|
+
val connection = VoipConnection(
|
|
55
|
+
applicationContext,
|
|
56
|
+
callId,
|
|
57
|
+
handle,
|
|
58
|
+
displayName,
|
|
59
|
+
handleType,
|
|
60
|
+
video,
|
|
61
|
+
isOutgoing = true
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
connection.setDialing()
|
|
65
|
+
connection.setAddress(Uri.parse("tel:$handle"), TelecomManager.PRESENTATION_ALLOWED)
|
|
66
|
+
connection.setCallerDisplayName(displayName, TelecomManager.PRESENTATION_ALLOWED)
|
|
67
|
+
|
|
68
|
+
return connection
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
override fun onCreateIncomingConnection(
|
|
72
|
+
connectionManagerPhoneAccount: PhoneAccountHandle?,
|
|
73
|
+
request: ConnectionRequest?
|
|
74
|
+
): Connection {
|
|
75
|
+
val extras = request?.extras ?: Bundle()
|
|
76
|
+
val callId = extras.getString("callId") ?: return Connection.createFailedConnection(
|
|
77
|
+
DisconnectCause(DisconnectCause.ERROR, "Missing call ID")
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
val handle = extras.getString("handle") ?: ""
|
|
81
|
+
val displayName = extras.getString("displayName") ?: ""
|
|
82
|
+
val handleType = extras.getString("handleType") ?: "generic"
|
|
83
|
+
val video = extras.getBoolean("video", false)
|
|
84
|
+
|
|
85
|
+
val connection = VoipConnection(
|
|
86
|
+
applicationContext,
|
|
87
|
+
callId,
|
|
88
|
+
handle,
|
|
89
|
+
displayName,
|
|
90
|
+
handleType,
|
|
91
|
+
video,
|
|
92
|
+
isOutgoing = false
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
connection.setRinging()
|
|
96
|
+
connection.setAddress(Uri.parse("tel:$handle"), TelecomManager.PRESENTATION_ALLOWED)
|
|
97
|
+
connection.setCallerDisplayName(displayName, TelecomManager.PRESENTATION_ALLOWED)
|
|
98
|
+
|
|
99
|
+
return connection
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { PluginListenerHandle } from '@capacitor/core';
|
|
2
|
+
export interface CapacitorPushCallsPlugin {
|
|
3
|
+
/**
|
|
4
|
+
* Register with APNS/FCM for regular push notifications.
|
|
5
|
+
*/
|
|
6
|
+
register(): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Unregister from APNS/FCM for regular push notifications.
|
|
9
|
+
*/
|
|
10
|
+
unregister(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Request permission for regular push notifications.
|
|
13
|
+
*/
|
|
14
|
+
requestPermissions(): Promise<PermissionStatus>;
|
|
15
|
+
/**
|
|
16
|
+
* Check regular push notification permission status.
|
|
17
|
+
*/
|
|
18
|
+
checkPermissions(): Promise<PermissionStatus>;
|
|
19
|
+
/**
|
|
20
|
+
* Returns currently delivered notifications (regular push).
|
|
21
|
+
*/
|
|
22
|
+
getDeliveredNotifications(): Promise<DeliveredNotifications>;
|
|
23
|
+
/**
|
|
24
|
+
* Remove specific delivered notifications by id.
|
|
25
|
+
*/
|
|
26
|
+
removeDeliveredNotifications(options: {
|
|
27
|
+
notifications: Array<string | PushNotificationSchema>;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Remove all delivered notifications.
|
|
31
|
+
*/
|
|
32
|
+
removeAllDeliveredNotifications(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get app badge count.
|
|
35
|
+
*/
|
|
36
|
+
getBadgeCount(): Promise<{
|
|
37
|
+
count: number;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Alias for getBadgeCount.
|
|
41
|
+
*/
|
|
42
|
+
getBadgeNumber(): Promise<{
|
|
43
|
+
count: number;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Set app badge count.
|
|
47
|
+
*/
|
|
48
|
+
setBadgeCount(options: {
|
|
49
|
+
count: number;
|
|
50
|
+
}): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Alias for setBadgeCount.
|
|
53
|
+
*/
|
|
54
|
+
setBadgeNumber(options: {
|
|
55
|
+
count: number;
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Clear app badge count.
|
|
59
|
+
*/
|
|
60
|
+
clearBadgeCount(): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Android-only notification channel management (no-op on iOS).
|
|
63
|
+
*/
|
|
64
|
+
createChannel(channel: Channel): Promise<void>;
|
|
65
|
+
deleteChannel(options: {
|
|
66
|
+
id: string;
|
|
67
|
+
}): Promise<void>;
|
|
68
|
+
listChannels(): Promise<ListChannelsResult>;
|
|
69
|
+
/**
|
|
70
|
+
* Register for VoIP push notifications (iOS only - PushKit)
|
|
71
|
+
* On Android, VoIP calls are routed from FCM data pushes
|
|
72
|
+
*/
|
|
73
|
+
registerVoipNotifications(): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Start an outgoing call
|
|
76
|
+
*/
|
|
77
|
+
startCall(options: StartCallOptions): Promise<{
|
|
78
|
+
callId: string;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* End an active call
|
|
82
|
+
*/
|
|
83
|
+
endCall(options: {
|
|
84
|
+
callId: string;
|
|
85
|
+
}): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Answer an incoming call
|
|
88
|
+
*/
|
|
89
|
+
answerCall(options: {
|
|
90
|
+
callId: string;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Reject an incoming call
|
|
94
|
+
*/
|
|
95
|
+
rejectCall(options: {
|
|
96
|
+
callId: string;
|
|
97
|
+
}): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Hold/unhold a call
|
|
100
|
+
*/
|
|
101
|
+
setCallOnHold(options: {
|
|
102
|
+
callId: string;
|
|
103
|
+
onHold: boolean;
|
|
104
|
+
}): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Set audio to speaker
|
|
107
|
+
*/
|
|
108
|
+
setAudioRoute(options: {
|
|
109
|
+
route: 'speaker' | 'earpiece' | 'bluetooth';
|
|
110
|
+
}): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Mute/unmute call audio
|
|
113
|
+
*/
|
|
114
|
+
setMuted(options: {
|
|
115
|
+
muted: boolean;
|
|
116
|
+
}): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Report incoming call to the system.
|
|
119
|
+
* Used for Android FCM routing and optional manual/testing trigger on iOS.
|
|
120
|
+
*/
|
|
121
|
+
handleIncomingCall(options: IncomingCallData): Promise<{
|
|
122
|
+
callId: string;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Update call status (connecting, connected, failed)
|
|
126
|
+
*/
|
|
127
|
+
updateCallStatus(options: {
|
|
128
|
+
callId: string;
|
|
129
|
+
status: CallStatus;
|
|
130
|
+
}): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Check if platform supports native VoIP calls
|
|
133
|
+
*/
|
|
134
|
+
isSupported(): Promise<{
|
|
135
|
+
supported: boolean;
|
|
136
|
+
}>;
|
|
137
|
+
/**
|
|
138
|
+
* Register push token (iOS PushKit token)
|
|
139
|
+
*/
|
|
140
|
+
addListener(eventName: 'registration', listenerFunc: (token: Token) => void): Promise<PluginListenerHandle>;
|
|
141
|
+
addListener(eventName: 'registrationError', listenerFunc: (error: RegistrationError) => void): Promise<PluginListenerHandle>;
|
|
142
|
+
addListener(eventName: 'pushNotificationReceived', listenerFunc: (notification: PushNotificationSchema) => void): Promise<PluginListenerHandle>;
|
|
143
|
+
addListener(eventName: 'pushNotificationActionPerformed', listenerFunc: (notification: ActionPerformed) => void): Promise<PluginListenerHandle>;
|
|
144
|
+
addListener(eventName: 'voipPushToken', listenerFunc: (data: {
|
|
145
|
+
token: string;
|
|
146
|
+
}) => void): Promise<PluginListenerHandle>;
|
|
147
|
+
/**
|
|
148
|
+
* Incoming call notification (iOS PushKit or Android external)
|
|
149
|
+
*/
|
|
150
|
+
addListener(eventName: 'incomingCall', listenerFunc: (data: IncomingCallData) => void): Promise<PluginListenerHandle>;
|
|
151
|
+
/**
|
|
152
|
+
* Call answered by user
|
|
153
|
+
*/
|
|
154
|
+
addListener(eventName: 'callAnswered', listenerFunc: (data: {
|
|
155
|
+
callId: string;
|
|
156
|
+
}) => void): Promise<PluginListenerHandle>;
|
|
157
|
+
/**
|
|
158
|
+
* Call ended by user or system
|
|
159
|
+
*/
|
|
160
|
+
addListener(eventName: 'callEnded', listenerFunc: (data: {
|
|
161
|
+
callId: string;
|
|
162
|
+
reason?: string;
|
|
163
|
+
}) => void): Promise<PluginListenerHandle>;
|
|
164
|
+
/**
|
|
165
|
+
* Call started connecting
|
|
166
|
+
*/
|
|
167
|
+
addListener(eventName: 'callStarted', listenerFunc: (data: {
|
|
168
|
+
callId: string;
|
|
169
|
+
}) => void): Promise<PluginListenerHandle>;
|
|
170
|
+
/**
|
|
171
|
+
* Call rejected by user
|
|
172
|
+
*/
|
|
173
|
+
addListener(eventName: 'callRejected', listenerFunc: (data: {
|
|
174
|
+
callId: string;
|
|
175
|
+
}) => void): Promise<PluginListenerHandle>;
|
|
176
|
+
/**
|
|
177
|
+
* Call put on hold or resumed
|
|
178
|
+
*/
|
|
179
|
+
addListener(eventName: 'callHeld', listenerFunc: (data: {
|
|
180
|
+
callId: string;
|
|
181
|
+
onHold: boolean;
|
|
182
|
+
}) => void): Promise<PluginListenerHandle>;
|
|
183
|
+
/**
|
|
184
|
+
* Remove all listeners for this plugin
|
|
185
|
+
*/
|
|
186
|
+
removeAllListeners(): Promise<void>;
|
|
187
|
+
}
|
|
188
|
+
export interface StartCallOptions {
|
|
189
|
+
/**
|
|
190
|
+
* Display name or phone number to call
|
|
191
|
+
*/
|
|
192
|
+
handle: string;
|
|
193
|
+
/**
|
|
194
|
+
* Display name for the call
|
|
195
|
+
*/
|
|
196
|
+
displayName: string;
|
|
197
|
+
/**
|
|
198
|
+
* Type of handle: generic, phone, email
|
|
199
|
+
*/
|
|
200
|
+
handleType?: 'generic' | 'phone' | 'email';
|
|
201
|
+
/**
|
|
202
|
+
* Whether this is a video call
|
|
203
|
+
*/
|
|
204
|
+
video?: boolean;
|
|
205
|
+
}
|
|
206
|
+
export interface IncomingCallData {
|
|
207
|
+
/**
|
|
208
|
+
* Unique identifier for the call
|
|
209
|
+
*/
|
|
210
|
+
callId: string;
|
|
211
|
+
/**
|
|
212
|
+
* Caller's handle (phone number, SIP URI, etc)
|
|
213
|
+
*/
|
|
214
|
+
handle: string;
|
|
215
|
+
/**
|
|
216
|
+
* Display name for the caller
|
|
217
|
+
*/
|
|
218
|
+
displayName: string;
|
|
219
|
+
/**
|
|
220
|
+
* Type of handle: generic, phone, email
|
|
221
|
+
*/
|
|
222
|
+
handleType?: 'generic' | 'phone' | 'email';
|
|
223
|
+
/**
|
|
224
|
+
* Whether this is a video call
|
|
225
|
+
*/
|
|
226
|
+
video?: boolean;
|
|
227
|
+
/**
|
|
228
|
+
* Additional data from push notification
|
|
229
|
+
*/
|
|
230
|
+
metadata?: Record<string, any>;
|
|
231
|
+
}
|
|
232
|
+
export type CallStatus = 'connecting' | 'connected' | 'disconnecting' | 'disconnected' | 'failed';
|
|
233
|
+
export interface PermissionStatus {
|
|
234
|
+
receive: PermissionState;
|
|
235
|
+
}
|
|
236
|
+
export type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | 'denied';
|
|
237
|
+
export interface Token {
|
|
238
|
+
value: string;
|
|
239
|
+
}
|
|
240
|
+
export interface RegistrationError {
|
|
241
|
+
error: string;
|
|
242
|
+
}
|
|
243
|
+
export interface PushNotificationSchema {
|
|
244
|
+
title?: string;
|
|
245
|
+
subtitle?: string;
|
|
246
|
+
body?: string;
|
|
247
|
+
id?: string;
|
|
248
|
+
tag?: string;
|
|
249
|
+
badge?: number;
|
|
250
|
+
notification?: any;
|
|
251
|
+
data?: Record<string, any>;
|
|
252
|
+
click_action?: string;
|
|
253
|
+
link?: string;
|
|
254
|
+
group?: string;
|
|
255
|
+
groupSummary?: boolean;
|
|
256
|
+
}
|
|
257
|
+
export interface ActionPerformed {
|
|
258
|
+
actionId: string;
|
|
259
|
+
inputValue?: string;
|
|
260
|
+
notification: PushNotificationSchema;
|
|
261
|
+
}
|
|
262
|
+
export interface DeliveredNotifications {
|
|
263
|
+
notifications: PushNotificationSchema[];
|
|
264
|
+
}
|
|
265
|
+
export interface Channel {
|
|
266
|
+
id: string;
|
|
267
|
+
name: string;
|
|
268
|
+
description?: string;
|
|
269
|
+
sound?: string;
|
|
270
|
+
importance?: 1 | 2 | 3 | 4 | 5;
|
|
271
|
+
visibility?: -1 | 0 | 1;
|
|
272
|
+
lights?: boolean;
|
|
273
|
+
lightColor?: string;
|
|
274
|
+
vibration?: boolean;
|
|
275
|
+
}
|
|
276
|
+
export interface ListChannelsResult {
|
|
277
|
+
channels: Channel[];
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,QAAA,MAAM,kBAAkB,0BAKvB,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { WebPlugin } from '@capacitor/core';
|
|
2
|
+
import type { CapacitorPushCallsPlugin, StartCallOptions, IncomingCallData, CallStatus, Channel, DeliveredNotifications, ListChannelsResult, PermissionStatus } from './definitions';
|
|
3
|
+
export declare class CapacitorPushCallsWeb extends WebPlugin implements CapacitorPushCallsPlugin {
|
|
4
|
+
register(): Promise<void>;
|
|
5
|
+
unregister(): Promise<void>;
|
|
6
|
+
requestPermissions(): Promise<PermissionStatus>;
|
|
7
|
+
checkPermissions(): Promise<PermissionStatus>;
|
|
8
|
+
getDeliveredNotifications(): Promise<DeliveredNotifications>;
|
|
9
|
+
removeDeliveredNotifications(_options: {
|
|
10
|
+
notifications: Array<string | {
|
|
11
|
+
id?: string;
|
|
12
|
+
}>;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
removeAllDeliveredNotifications(): Promise<void>;
|
|
15
|
+
getBadgeCount(): Promise<{
|
|
16
|
+
count: number;
|
|
17
|
+
}>;
|
|
18
|
+
getBadgeNumber(): Promise<{
|
|
19
|
+
count: number;
|
|
20
|
+
}>;
|
|
21
|
+
setBadgeCount(_options: {
|
|
22
|
+
count: number;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
setBadgeNumber(options: {
|
|
25
|
+
count: number;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
clearBadgeCount(): Promise<void>;
|
|
28
|
+
createChannel(_channel: Channel): Promise<void>;
|
|
29
|
+
deleteChannel(_options: {
|
|
30
|
+
id: string;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
listChannels(): Promise<ListChannelsResult>;
|
|
33
|
+
registerVoipNotifications(): Promise<void>;
|
|
34
|
+
startCall(_options: StartCallOptions): Promise<{
|
|
35
|
+
callId: string;
|
|
36
|
+
}>;
|
|
37
|
+
endCall(_options: {
|
|
38
|
+
callId: string;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
answerCall(_options: {
|
|
41
|
+
callId: string;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
rejectCall(_options: {
|
|
44
|
+
callId: string;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
setCallOnHold(_options: {
|
|
47
|
+
callId: string;
|
|
48
|
+
onHold: boolean;
|
|
49
|
+
}): Promise<void>;
|
|
50
|
+
setAudioRoute(_options: {
|
|
51
|
+
route: 'speaker' | 'earpiece' | 'bluetooth';
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
setMuted(_options: {
|
|
54
|
+
muted: boolean;
|
|
55
|
+
}): Promise<void>;
|
|
56
|
+
handleIncomingCall(_options: IncomingCallData): Promise<{
|
|
57
|
+
callId: string;
|
|
58
|
+
}>;
|
|
59
|
+
updateCallStatus(_options: {
|
|
60
|
+
callId: string;
|
|
61
|
+
status: CallStatus;
|
|
62
|
+
}): Promise<void>;
|
|
63
|
+
isSupported(): Promise<{
|
|
64
|
+
supported: boolean;
|
|
65
|
+
}>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,qBAAa,qBACX,SAAQ,SACR,YAAW,wBAAwB;IAE7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI/C,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI7C,yBAAyB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAI5D,4BAA4B,CAAC,QAAQ,EAAE;QAC3C,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3C,cAAc,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5C,aAAa,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,cAAc,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,aAAa,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI3C,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlE,OAAO,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,UAAU,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,UAAU,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,aAAa,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,aAAa,CAAC,QAAQ,EAAE;QAC5B,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;KAC7C,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,QAAQ,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,kBAAkB,CACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxB,gBAAgB,CAAC,QAAQ,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;CAGrD"}
|
package/dist/esm/web.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { WebPlugin } from '@capacitor/core';
|
|
2
|
+
export class CapacitorPushCallsWeb extends WebPlugin {
|
|
3
|
+
async register() {
|
|
4
|
+
throw this.unimplemented('Push notifications not supported on web');
|
|
5
|
+
}
|
|
6
|
+
async unregister() {
|
|
7
|
+
throw this.unimplemented('Push notifications not supported on web');
|
|
8
|
+
}
|
|
9
|
+
async requestPermissions() {
|
|
10
|
+
return { receive: 'denied' };
|
|
11
|
+
}
|
|
12
|
+
async checkPermissions() {
|
|
13
|
+
return { receive: 'denied' };
|
|
14
|
+
}
|
|
15
|
+
async getDeliveredNotifications() {
|
|
16
|
+
return { notifications: [] };
|
|
17
|
+
}
|
|
18
|
+
async removeDeliveredNotifications(_options) {
|
|
19
|
+
throw this.unimplemented('Push notifications not supported on web');
|
|
20
|
+
}
|
|
21
|
+
async removeAllDeliveredNotifications() {
|
|
22
|
+
throw this.unimplemented('Push notifications not supported on web');
|
|
23
|
+
}
|
|
24
|
+
async getBadgeCount() {
|
|
25
|
+
return { count: 0 };
|
|
26
|
+
}
|
|
27
|
+
async getBadgeNumber() {
|
|
28
|
+
return this.getBadgeCount();
|
|
29
|
+
}
|
|
30
|
+
async setBadgeCount(_options) {
|
|
31
|
+
throw this.unimplemented('Badge count not supported on web');
|
|
32
|
+
}
|
|
33
|
+
async setBadgeNumber(options) {
|
|
34
|
+
return this.setBadgeCount(options);
|
|
35
|
+
}
|
|
36
|
+
async clearBadgeCount() {
|
|
37
|
+
throw this.unimplemented('Badge count not supported on web');
|
|
38
|
+
}
|
|
39
|
+
async createChannel(_channel) {
|
|
40
|
+
throw this.unimplemented('Notification channels not supported on web');
|
|
41
|
+
}
|
|
42
|
+
async deleteChannel(_options) {
|
|
43
|
+
throw this.unimplemented('Notification channels not supported on web');
|
|
44
|
+
}
|
|
45
|
+
async listChannels() {
|
|
46
|
+
return { channels: [] };
|
|
47
|
+
}
|
|
48
|
+
async registerVoipNotifications() {
|
|
49
|
+
throw this.unimplemented('VoIP notifications not supported on web');
|
|
50
|
+
}
|
|
51
|
+
async startCall(_options) {
|
|
52
|
+
throw this.unimplemented('Native calls not supported on web');
|
|
53
|
+
}
|
|
54
|
+
async endCall(_options) {
|
|
55
|
+
throw this.unimplemented('Native calls not supported on web');
|
|
56
|
+
}
|
|
57
|
+
async answerCall(_options) {
|
|
58
|
+
throw this.unimplemented('Native calls not supported on web');
|
|
59
|
+
}
|
|
60
|
+
async rejectCall(_options) {
|
|
61
|
+
throw this.unimplemented('Native calls not supported on web');
|
|
62
|
+
}
|
|
63
|
+
async setCallOnHold(_options) {
|
|
64
|
+
throw this.unimplemented('Call hold not supported on web');
|
|
65
|
+
}
|
|
66
|
+
async setAudioRoute(_options) {
|
|
67
|
+
throw this.unimplemented('Audio routing not supported on web');
|
|
68
|
+
}
|
|
69
|
+
async setMuted(_options) {
|
|
70
|
+
throw this.unimplemented('Mute not supported on web');
|
|
71
|
+
}
|
|
72
|
+
async handleIncomingCall(_options) {
|
|
73
|
+
throw this.unimplemented('Incoming calls not supported on web');
|
|
74
|
+
}
|
|
75
|
+
async updateCallStatus(_options) {
|
|
76
|
+
throw this.unimplemented('Call status updates not supported on web');
|
|
77
|
+
}
|
|
78
|
+
async isSupported() {
|
|
79
|
+
return { supported: false };
|
|
80
|
+
}
|
|
81
|
+
}
|