forked from datso/react-native-pjsip
-
Notifications
You must be signed in to change notification settings - Fork 1
/
PjSipModule.java
177 lines (147 loc) · 7.31 KB
/
PjSipModule.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
package com.carusto.ReactNativePjSip;
import android.app.Activity;
import android.content.Intent;
import com.facebook.react.bridge.*;
public class PjSipModule extends ReactContextBaseJavaModule {
private static PjSipBroadcastReceiver receiver;
public PjSipModule(ReactApplicationContext context) {
super(context);
// Module could be started several times, but we have to register receiver only once.
if (receiver == null) {
receiver = new PjSipBroadcastReceiver(context);
this.getReactApplicationContext().registerReceiver(receiver, receiver.getFilter());
} else {
receiver.setContext(context);
}
}
@Override
public String getName() {
return "PjSipModule";
}
@ReactMethod
public void start(ReadableMap configuration, Callback callback) {
int id = receiver.register(callback);
Intent intent = PjActions.createStartIntent(id, configuration, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void stop(Callback callback) {
int id = receiver.register(callback);
Intent intent = PjActions.createStopIntent(id, getReactApplicationContext());
getReactApplicationContext().stopService(intent);
}
@ReactMethod
public void changeServiceConfiguration(ReadableMap configuration, Callback callback) {
int id = receiver.register(callback);
Intent intent = PjActions.createSetServiceConfigurationIntent(id, configuration, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void createAccount(ReadableMap configuration, Callback callback) {
int id = receiver.register(callback);
Intent intent = PjActions.createAccountCreateIntent(id, configuration, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void registerAccount(int accountId, boolean renew, Callback callback) {
int id = receiver.register(callback);
Intent intent = PjActions.createAccountRegisterIntent(id, accountId, renew, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void deleteAccount(int accountId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createAccountDeleteIntent(callbackId, accountId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void makeCall(int accountId, String destination, ReadableMap callSettings, ReadableMap msgData, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createMakeCallIntent(callbackId, accountId, destination, callSettings, msgData, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void hangupCall(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createHangupCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void declineCall(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createDeclineCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void answerCall(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createAnswerCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void holdCall(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createHoldCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void unholdCall(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createUnholdCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void muteCall(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createMuteCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void unMuteCall(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createUnMuteCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void useSpeaker(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createUseSpeakerCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void useEarpiece(int callId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createUseEarpieceCallIntent(callbackId, callId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void xferCall(int callId, String destination, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createXFerCallIntent(callbackId, callId, destination, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void xferReplacesCall(int callId, int destCallId, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createXFerReplacesCallIntent(callbackId, callId, destCallId, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void redirectCall(int callId, String destination, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createRedirectCallIntent(callbackId, callId, destination, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void dtmfCall(int callId, String digits, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createDtmfCallIntent(callbackId, callId, digits, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
@ReactMethod
public void changeCodecSettings(ReadableMap codecSettings, Callback callback) {
int callbackId = receiver.register(callback);
Intent intent = PjActions.createChangeCodecSettingsIntent(callbackId, codecSettings, getReactApplicationContext());
getReactApplicationContext().startService(intent);
}
}