@exotel-npm-dev/webrtc-client-sdk 1.0.6 → 1.0.7
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/Changelog +3 -0
- package/demo-non-npm/cert.pem +21 -0
- package/demo-non-npm/demo.js +35 -33
- package/demo-non-npm/dist/beep.wav +0 -0
- package/demo-non-npm/dist/dtmf.wav +0 -0
- package/demo-non-npm/dist/exotelsdk.js +73 -7
- package/demo-non-npm/dist/exotelsdk.js.map +1 -1
- package/demo-non-npm/dist/ringbacktone.wav +0 -0
- package/demo-non-npm/dist/ringtone.wav +0 -0
- package/demo-non-npm/index.html +11 -7
- package/demo-non-npm/key.pem +28 -0
- package/demo-non-npm/phone.js +3 -3
- package/dist/exotelsdk.js +73 -5
- package/dist/exotelsdk.js.map +1 -1
- package/package.json +3 -3
- package/src/listeners/ExWebClient.js +159 -112
package/Changelog
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIDazCCAlOgAwIBAgIUPnkjfhKE3f0E3XyUc/6/pMVL4QMwDQYJKoZIhvcNAQEL
|
|
3
|
+
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
|
4
|
+
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMzA4MjQxNzU0NDJaFw0zMzA4
|
|
5
|
+
MjExNzU0NDJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
|
6
|
+
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
|
|
7
|
+
AQUAA4IBDwAwggEKAoIBAQDks953etyaeo1SpyY9mXMUtYiSJyOoGfKw27Tp8Pq1
|
|
8
|
+
5J5jdgJaBjpfkypol+GqIHBuwu1jBv1xu5f08hiAsiqPITC/Kf7KiZV6FxJUdAr3
|
|
9
|
+
CFgF0Aec1h10V9N7dpAxFEMmwqiRIpYj+if2kkrOT08OliiH42g4RlZTxUWc2HQz
|
|
10
|
+
rnfXm3lqqJ6C1g0xcYFCGJwLyh+YpY9uTY4GKJQStRsK4ku6Czl6JkXpVVM+4POj
|
|
11
|
+
Eg8qolZJ9txpdGpTaRHA/dH2dDhgwi+EqIeZwc2ZkTiiNsIe8G3Xc2SR4M270Z47
|
|
12
|
+
09ZbzqHHEDCD13YR7NtAtz3zickd04dB/Ib5Z5944FnzAgMBAAGjUzBRMB0GA1Ud
|
|
13
|
+
DgQWBBQ2bhbIwJnqZT9c8te1qKayUznotjAfBgNVHSMEGDAWgBQ2bhbIwJnqZT9c
|
|
14
|
+
8te1qKayUznotjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDE
|
|
15
|
+
YEcuaKrHnEApFfEktH2Q5g7Ps2KzH+K2HpAMFSTTAEiiEroahJFeAbmk7LTPg1Hz
|
|
16
|
+
JFXUECblPyJGNYjQ/qCbs0I/wva1FhAvixX4c66MuVFKOPzr0iv0bQqff7k0iQgw
|
|
17
|
+
jI1ikFgwADlbEZ3oFs3ylu34rbiEBfQGVJvaDTmWpfTT9UEmv5HybcFA8NBHVoFs
|
|
18
|
+
JwoSD19ULLwql5oc9ZTcZ4dDb6w7gPU/IJzR+Mfn0Pbnq1STU+jr5ldggh5MWx2G
|
|
19
|
+
Q6Xe/PG8S6pt6f4Yjv5ocBAQLTcduHTvo0PazfFGeLPFixhx7Ddr5YHcR05mJTj5
|
|
20
|
+
08LEywwyxNoUd/Gb2jFd
|
|
21
|
+
-----END CERTIFICATE-----
|
package/demo-non-npm/demo.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
const
|
|
1
|
+
const exWebClient = new exotelSDK.ExotelWebClient();
|
|
2
2
|
var call = null;
|
|
3
3
|
function UserAgentRegistration() {
|
|
4
4
|
var sipInfo = JSON.parse(phone)[0];
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
'endpoint':sipInfo.EndPoint
|
|
15
|
-
|
|
5
|
+
var sipAccountInfo = {
|
|
6
|
+
'userName': sipInfo.Username,
|
|
7
|
+
'authUser': sipInfo.Username,
|
|
8
|
+
'sipdomain': sipInfo.Domain,
|
|
9
|
+
'domain': sipInfo.HostServer + ":" + sipInfo.Port,
|
|
10
|
+
'displayname': sipInfo.DisplayName,
|
|
11
|
+
'secret': sipInfo.Password,
|
|
12
|
+
'port': sipInfo.Port,
|
|
13
|
+
'security': sipInfo.Security,
|
|
14
|
+
'endpoint': sipInfo.EndPoint
|
|
15
|
+
};
|
|
16
16
|
exWebClient.initWebrtc(sipAccountInfo, RegisterEventCallBack, CallListenerCallback, SessionCallback)
|
|
17
17
|
console.log("Test.js: Calling DoRegister")
|
|
18
18
|
exWebClient.DoRegister();
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
function registerToggle() {
|
|
22
|
-
if(document.getElementById("registerButton").innerHTML === "REGISTER") {
|
|
22
|
+
if (document.getElementById("registerButton").innerHTML === "REGISTER") {
|
|
23
23
|
UserAgentRegistration();
|
|
24
24
|
} else {
|
|
25
25
|
exWebClient.unregister();
|
|
@@ -28,31 +28,27 @@ function registerToggle() {
|
|
|
28
28
|
|
|
29
29
|
function CallListenerCallback(callObj, eventType, phone) {
|
|
30
30
|
call = exWebClient.getCall();
|
|
31
|
-
document.getElementById("call_status").innerHTML = eventType +" "+phone;
|
|
32
|
-
|
|
33
|
-
acceptCall();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
31
|
+
document.getElementById("call_status").innerHTML = eventType + " " + phone;
|
|
32
|
+
}
|
|
36
33
|
|
|
37
|
-
|
|
34
|
+
function RegisterEventCallBack(state, phone) {
|
|
38
35
|
document.getElementById("status").innerHTML = state;
|
|
39
|
-
|
|
36
|
+
if (state === 'registered') {
|
|
40
37
|
document.getElementById("registerButton").innerHTML = "UNREGISTER";
|
|
41
|
-
|
|
38
|
+
} else {
|
|
42
39
|
document.getElementById("registerButton").innerHTML = "REGISTER";
|
|
43
|
-
|
|
44
|
-
}
|
|
40
|
+
}
|
|
45
41
|
|
|
46
|
-
|
|
42
|
+
}
|
|
47
43
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
function SessionCallback(state, phone) {
|
|
45
|
+
console.log('Session state:', state, 'for number...', phone);
|
|
46
|
+
}
|
|
51
47
|
|
|
52
48
|
function toggleMuteButton() {
|
|
53
|
-
if(call){
|
|
49
|
+
if (call) {
|
|
54
50
|
call.Mute();
|
|
55
|
-
if(document.getElementById("muteButton").innerHTML === "UNMUTE"){
|
|
51
|
+
if (document.getElementById("muteButton").innerHTML === "UNMUTE") {
|
|
56
52
|
document.getElementById("muteButton").innerHTML = "MUTE";
|
|
57
53
|
} else {
|
|
58
54
|
document.getElementById("muteButton").innerHTML = "UNMUTE";
|
|
@@ -61,24 +57,30 @@ function toggleMuteButton() {
|
|
|
61
57
|
}
|
|
62
58
|
|
|
63
59
|
function acceptCall() {
|
|
64
|
-
if(call) {
|
|
60
|
+
if (call) {
|
|
65
61
|
call.Answer();
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
64
|
|
|
69
65
|
function rejectCall() {
|
|
70
|
-
if(call) {
|
|
66
|
+
if (call) {
|
|
71
67
|
call.Hangup();
|
|
72
68
|
}
|
|
73
69
|
}
|
|
74
70
|
|
|
75
71
|
function toggleHoldButton() {
|
|
76
|
-
if(call) {
|
|
72
|
+
if (call) {
|
|
77
73
|
call.HoldToggle();
|
|
78
|
-
if(document.getElementById("holdButton").innerHTML === "UNHOLD"){
|
|
74
|
+
if (document.getElementById("holdButton").innerHTML === "UNHOLD") {
|
|
79
75
|
document.getElementById("holdButton").innerHTML = "HOLD";
|
|
80
76
|
} else {
|
|
81
77
|
document.getElementById("holdButton").innerHTML = "UNHOLD";
|
|
82
78
|
}
|
|
83
79
|
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function sdkReady() {
|
|
83
|
+
exWebClient.checkClientStatus(function (status) {
|
|
84
|
+
console.log("SDK Status " + status);
|
|
85
|
+
});
|
|
84
86
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
*
|
|
3
|
-
* WebRTC CLient SIP version 1.0.
|
|
3
|
+
* WebRTC CLient SIP version 1.0.7
|
|
4
4
|
*
|
|
5
5
|
*/
|
|
6
6
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
@@ -1511,9 +1511,7 @@ class ExotelWebClient {
|
|
|
1511
1511
|
};
|
|
1512
1512
|
UnRegister = () => {
|
|
1513
1513
|
(0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_3__.UnRegister)(this.sipAccountInfo, this);
|
|
1514
|
-
//webrtcSIPPhone.disconnect();
|
|
1515
1514
|
};
|
|
1516
|
-
|
|
1517
1515
|
initDiagnostics = (saveDiagnosticsCallback, keyValueSetCallback) => {
|
|
1518
1516
|
(0,_api_omAPI_DiagnosticsListener__WEBPACK_IMPORTED_MODULE_6__.initDiagnostics)(saveDiagnosticsCallback, keyValueSetCallback);
|
|
1519
1517
|
};
|
|
@@ -1707,6 +1705,46 @@ class ExotelWebClient {
|
|
|
1707
1705
|
*/
|
|
1708
1706
|
intervalIDMap.set(userName, intervalId);
|
|
1709
1707
|
};
|
|
1708
|
+
checkClientStatus = callback => {
|
|
1709
|
+
// using this function , first it will check mic permission is given or not
|
|
1710
|
+
// then it will check if transport is intialize or not
|
|
1711
|
+
// then it will check if user is registered or not
|
|
1712
|
+
// based on this we can evaludate SDK is ready for call
|
|
1713
|
+
var constraints = {
|
|
1714
|
+
audio: true,
|
|
1715
|
+
video: false
|
|
1716
|
+
};
|
|
1717
|
+
navigator.mediaDevices.getUserMedia(constraints).then(function (mediaStream) {
|
|
1718
|
+
var transportState = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_9__.webrtcSIPPhone.getTransportState();
|
|
1719
|
+
switch (transportState) {
|
|
1720
|
+
case "":
|
|
1721
|
+
callback("not_intialized");
|
|
1722
|
+
break;
|
|
1723
|
+
case "unknown":
|
|
1724
|
+
case "Connecting":
|
|
1725
|
+
callback(transportState);
|
|
1726
|
+
break;
|
|
1727
|
+
default:
|
|
1728
|
+
var registerationState = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_9__.webrtcSIPPhone.getRegistrationState();
|
|
1729
|
+
switch (registerationState) {
|
|
1730
|
+
case "":
|
|
1731
|
+
callback("websocket_connection_failed");
|
|
1732
|
+
break;
|
|
1733
|
+
case "Registered":
|
|
1734
|
+
if (transportState != "Connected") {
|
|
1735
|
+
callback("Disconnected");
|
|
1736
|
+
} else {
|
|
1737
|
+
callback(registerationState);
|
|
1738
|
+
}
|
|
1739
|
+
break;
|
|
1740
|
+
default:
|
|
1741
|
+
callback(registerationState);
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1744
|
+
}).catch(function (error) {
|
|
1745
|
+
callback("media_permission_denied");
|
|
1746
|
+
});
|
|
1747
|
+
};
|
|
1710
1748
|
}
|
|
1711
1749
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ExotelWebClient);
|
|
1712
1750
|
|
|
@@ -7729,6 +7767,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7729
7767
|
|
|
7730
7768
|
var SIP = __webpack_require__(/*! ./sip-0.20.0.js */ "../webrtc-core-sdk/src/sip-0.20.0.js");
|
|
7731
7769
|
|
|
7770
|
+
var lastTransportState = "";
|
|
7771
|
+
var lastRegistererState = "";
|
|
7732
7772
|
var videoRemote, videoLocal, audioRemote;
|
|
7733
7773
|
var initializeComplete = false;
|
|
7734
7774
|
var webRTCStatus = "offline"; // ready -> registered, offline -> unregistered,
|
|
@@ -8059,6 +8099,7 @@ function postInit(onInitDoneCallback) {
|
|
|
8059
8099
|
onInitDoneCallback();
|
|
8060
8100
|
}
|
|
8061
8101
|
function sipRegister() {
|
|
8102
|
+
lastRegistererState = "";
|
|
8062
8103
|
cleanupRegistererTimer();
|
|
8063
8104
|
try {
|
|
8064
8105
|
ctxSip.config = {
|
|
@@ -8106,6 +8147,7 @@ function sipRegister() {
|
|
|
8106
8147
|
register_flag = false;
|
|
8107
8148
|
}
|
|
8108
8149
|
let registererStateEventListner = newState => {
|
|
8150
|
+
lastRegistererState = newState;
|
|
8109
8151
|
if (ctxSip.phone && ctxSip.phone.transport && ctxSip.phone.transport.isConnected()) {
|
|
8110
8152
|
sipPhoneLogger("debug", "", "", "sipjslog registerer new state " + newState);
|
|
8111
8153
|
switch (newState) {
|
|
@@ -8128,6 +8170,7 @@ let registererWaitingChangeListener = b => {
|
|
|
8128
8170
|
}
|
|
8129
8171
|
};
|
|
8130
8172
|
let transportStateChangeListener = newState => {
|
|
8173
|
+
lastTransportState = newState;
|
|
8131
8174
|
sipPhoneLogger("debug", "", "", "sipjslog transport new state " + newState);
|
|
8132
8175
|
switch (newState) {
|
|
8133
8176
|
case SIP.TransportState.Connecting:
|
|
@@ -8671,10 +8714,17 @@ const SIPJSPhone = {
|
|
|
8671
8714
|
getWSSUrl: () => {
|
|
8672
8715
|
console.log("Returning txtWebsocketURL:", txtWebsocketURL);
|
|
8673
8716
|
return txtWebsocketURL;
|
|
8674
|
-
}
|
|
8717
|
+
},
|
|
8675
8718
|
/* NL Additions - End */
|
|
8719
|
+
getTransportState: () => {
|
|
8720
|
+
console.log("Returning Transport State : ", lastTransportState);
|
|
8721
|
+
return lastTransportState;
|
|
8722
|
+
},
|
|
8723
|
+
getRegistrationState: () => {
|
|
8724
|
+
console.log("Returning Registration State : ", lastRegistererState);
|
|
8725
|
+
return lastRegistererState;
|
|
8726
|
+
}
|
|
8676
8727
|
};
|
|
8677
|
-
|
|
8678
8728
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SIPJSPhone);
|
|
8679
8729
|
|
|
8680
8730
|
/***/ }),
|
|
@@ -8822,10 +8872,26 @@ const webrtcSIPPhone = {
|
|
|
8822
8872
|
} catch (e) {
|
|
8823
8873
|
console.log("getWSSUrl: Exception ", e);
|
|
8824
8874
|
}
|
|
8825
|
-
}
|
|
8875
|
+
},
|
|
8826
8876
|
/* NL Addition - End */
|
|
8827
|
-
};
|
|
8828
8877
|
|
|
8878
|
+
getTransportState() {
|
|
8879
|
+
try {
|
|
8880
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_0__["default"].getTransportState();
|
|
8881
|
+
} catch (e) {
|
|
8882
|
+
console.log("getTransportState: Exception ", e);
|
|
8883
|
+
return "unknown";
|
|
8884
|
+
}
|
|
8885
|
+
},
|
|
8886
|
+
getRegistrationState() {
|
|
8887
|
+
try {
|
|
8888
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_0__["default"].getRegistrationState();
|
|
8889
|
+
} catch (e) {
|
|
8890
|
+
console.log("getTransportState: Exception ", e);
|
|
8891
|
+
return "unknown";
|
|
8892
|
+
}
|
|
8893
|
+
}
|
|
8894
|
+
};
|
|
8829
8895
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (webrtcSIPPhone);
|
|
8830
8896
|
|
|
8831
8897
|
/***/ }),
|