@exotel-npm-dev/webrtc-client-sdk 1.0.6 → 1.0.8
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 +76 -5
- package/dist/exotelsdk.js.map +1 -1
- package/package.json +3 -3
- package/src/listeners/ExWebClient.js +160 -112
|
Binary file
|
|
Binary file
|
package/demo-non-npm/index.html
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
|
+
|
|
3
4
|
<head>
|
|
4
|
-
<title>WebPhone</title>
|
|
5
|
+
<title>WebPhone</title>
|
|
5
6
|
|
|
6
|
-
<script type="text/javascript" src="./dist/exotelsdk.js"></script>
|
|
7
|
-
<script type="text/javascript" src="phone.js"></script>
|
|
8
|
-
<script type="text/javascript" src="demo.js"></script>
|
|
7
|
+
<script type="text/javascript" src="./dist/exotelsdk.js"></script>
|
|
8
|
+
<script type="text/javascript" src="phone.js"></script>
|
|
9
|
+
<script type="text/javascript" src="demo.js"></script>
|
|
9
10
|
|
|
10
11
|
</head>
|
|
11
|
-
|
|
12
|
+
|
|
13
|
+
<body>
|
|
12
14
|
|
|
13
15
|
<b>Register Status : </b>
|
|
14
16
|
<b id="status"> unregister</b>
|
|
15
17
|
<br />
|
|
16
18
|
<br />
|
|
19
|
+
<button id="sdkStatusButton" onclick="sdkReady()">SDK Status</button>
|
|
17
20
|
<button id="registerButton" onclick="registerToggle()">REGISTER</button>
|
|
18
21
|
<br />
|
|
19
22
|
<br />
|
|
@@ -21,11 +24,12 @@
|
|
|
21
24
|
<b id="call_status"> </b>
|
|
22
25
|
<br />
|
|
23
26
|
<br />
|
|
24
|
-
|
|
27
|
+
<button onclick="acceptCall()">Accept Call</button>
|
|
25
28
|
<button onclick="rejectCall()">END CALL</button>
|
|
26
29
|
<button id="muteButton" onclick="toggleMuteButton()">MUTE</button>
|
|
27
30
|
<button id="holdButton" onclick="toggleHoldButton()">HOLD</button>
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
|
|
30
33
|
</body>
|
|
34
|
+
|
|
31
35
|
</html>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDks953etyaeo1S
|
|
3
|
+
pyY9mXMUtYiSJyOoGfKw27Tp8Pq15J5jdgJaBjpfkypol+GqIHBuwu1jBv1xu5f0
|
|
4
|
+
8hiAsiqPITC/Kf7KiZV6FxJUdAr3CFgF0Aec1h10V9N7dpAxFEMmwqiRIpYj+if2
|
|
5
|
+
kkrOT08OliiH42g4RlZTxUWc2HQzrnfXm3lqqJ6C1g0xcYFCGJwLyh+YpY9uTY4G
|
|
6
|
+
KJQStRsK4ku6Czl6JkXpVVM+4POjEg8qolZJ9txpdGpTaRHA/dH2dDhgwi+EqIeZ
|
|
7
|
+
wc2ZkTiiNsIe8G3Xc2SR4M270Z4709ZbzqHHEDCD13YR7NtAtz3zickd04dB/Ib5
|
|
8
|
+
Z5944FnzAgMBAAECggEAIcdjSK26iY0nnxlAWlbLcDfuck/E7MjbAejhdrAjXNw7
|
|
9
|
+
J0uVxgAnfQL6f4pMnVkUjMzOTRMKOf3QJYXgZ+8TaXfTKwOj4Kb45Jh7GkLYH8Ek
|
|
10
|
+
EcULwCFr0PRBMHoZiqDd2OAQD6erxKfntnvIVWJ8tcB96gbaLNL5YH7Bl7dB/86H
|
|
11
|
+
NP7WWZiqUwg2wTN+4t6gNBUSBYj8O8Vk2J5kPpLKelqXAgBB+KozAwYr8nHPNH8A
|
|
12
|
+
CzXbN+ENf7qhzVMwcF4a0gyztIiTm7htAUK9TtQBRBx+qwbv+L/D8RSWzE9xRvJn
|
|
13
|
+
yoZQDjXc5csTCGQkm59ic1j3JO8gNizoCAiyI35cMQKBgQD4dmx4v0O0U1iz6PZj
|
|
14
|
+
Cix2S+7pnOJ5Rf0wSZ9maMVlFnMP1x2ZA2CeyXcvNDoHlRpslkxWgERgOzjl8INx
|
|
15
|
+
QGOopnCBuniuSnKJ8cExPdZRC+I1TCnOiKxFCRHYsTkM1jR5uM6aRVLaMl7Qti1Y
|
|
16
|
+
zpxeQJD5oyoVgHUqYTwnopkrWQKBgQDro/zwERwU0UwFhdBs8SvmoLG66J02I3mi
|
|
17
|
+
R0fE7xGCSDDjaezg0iJAxJf35M3BfjHpEH/TyWhuh+KPqat+U6Cpk81uxMg35itt
|
|
18
|
+
lItEZcfTdTUDY9Kcmcw+lmWlzup6HPZ8YAz7Xw+IPfQ4ewoOLmZ+RBOfrJHFMFtk
|
|
19
|
+
Zd2aXz5iKwKBgBLDNpvDrcQvSxKC9CA0g3kHcOo5S6zmySDdXmkoXkes81Ft6DFG
|
|
20
|
+
3QQAqLxq0DsEWnN6whcCJqexsTFEAVkLCLuSngpd34Eh5BZgqDsktUt3f0SRFNMg
|
|
21
|
+
5QltjuhzMaCziFDs0MU7mO8bQKe4KiJ7r7k6XPhNBv+KrM5fe2Bu2ew5AoGBAI+o
|
|
22
|
+
26U0mS0r6LAZQ9eXNQ+W+qQb+vStrhM8Z8ntgnwuLPgIdS0fj1hzQr8UFEkZ+a3A
|
|
23
|
+
rF3fFbcFSyAQ7gfHTlT0UjNs7y/9OI7HGBzr/Gazt01Ix3dH4Jhrsq7itlsaWz+6
|
|
24
|
+
g0+hRePm+YSRprC8oynpsRkQ6ZIRiDZuUCs0U+EfAoGAbsyggoqK5JhY5zUwgjkP
|
|
25
|
+
KDUJLNW9E5K0FsYNuWgOiUWWW+i3IiT8s9nJsBXwwk4M1uaoQhCFXfE7SoIdBJd1
|
|
26
|
+
gyFCAhcu1i6FLujAh6RcvM0OmRRORtC5PUJbGKTA6KAnrTJXqLdRrxM7fnOIg++F
|
|
27
|
+
PYhRHb4zrpZT9v9Ps7lJtq4=
|
|
28
|
+
-----END PRIVATE KEY-----
|
package/demo-non-npm/phone.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
phone = '[\
|
|
2
2
|
{\
|
|
3
3
|
"Username":"vijayk0aa794fd",\
|
|
4
|
-
"DisplayName":"
|
|
4
|
+
"DisplayName":"Ashish",\
|
|
5
5
|
"HostServer":"voip.in1.exotel.com",\
|
|
6
6
|
"Domain":"siptrunkingpoc1m.voip.exotel.com",\
|
|
7
|
-
"Port":
|
|
8
|
-
"Password":"
|
|
7
|
+
"Port":443,\
|
|
8
|
+
"Password":"abcd1234",\
|
|
9
9
|
"CallTimeout":1000,\
|
|
10
10
|
"Security": "wss",\
|
|
11
11
|
"EndPoint": "wss",\
|
package/dist/exotelsdk.js
CHANGED
|
@@ -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) {
|
|
@@ -1705,6 +1705,49 @@ class ExotelWebClient {
|
|
|
1705
1705
|
*/
|
|
1706
1706
|
intervalIDMap.set(userName, intervalId);
|
|
1707
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
|
+
transportState = transportState.toLowerCase();
|
|
1720
|
+
switch (transportState) {
|
|
1721
|
+
case "":
|
|
1722
|
+
callback("not_intialized");
|
|
1723
|
+
break;
|
|
1724
|
+
case "unknown":
|
|
1725
|
+
case "connecting":
|
|
1726
|
+
callback(transportState);
|
|
1727
|
+
break;
|
|
1728
|
+
default:
|
|
1729
|
+
var registerationState = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_9__.webrtcSIPPhone.getRegistrationState();
|
|
1730
|
+
registerationState = registerationState.toLowerCase();
|
|
1731
|
+
switch (registerationState) {
|
|
1732
|
+
case "":
|
|
1733
|
+
callback("websocket_connection_failed");
|
|
1734
|
+
break;
|
|
1735
|
+
case "registered":
|
|
1736
|
+
if (transportState != "connected") {
|
|
1737
|
+
callback("disconnected");
|
|
1738
|
+
} else {
|
|
1739
|
+
callback(registerationState);
|
|
1740
|
+
}
|
|
1741
|
+
break;
|
|
1742
|
+
default:
|
|
1743
|
+
callback(registerationState);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
}).catch(function (error) {
|
|
1747
|
+
console.log("something went wrong during checkClientStatus ", error);
|
|
1748
|
+
callback("media_permission_denied");
|
|
1749
|
+
});
|
|
1750
|
+
};
|
|
1708
1751
|
}
|
|
1709
1752
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ExotelWebClient);
|
|
1710
1753
|
|
|
@@ -7727,6 +7770,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7727
7770
|
|
|
7728
7771
|
var SIP = __webpack_require__(/*! ./sip-0.20.0.js */ "../webrtc-core-sdk/src/sip-0.20.0.js");
|
|
7729
7772
|
|
|
7773
|
+
var lastTransportState = "";
|
|
7774
|
+
var lastRegistererState = "";
|
|
7730
7775
|
var videoRemote, videoLocal, audioRemote;
|
|
7731
7776
|
var initializeComplete = false;
|
|
7732
7777
|
var webRTCStatus = "offline"; // ready -> registered, offline -> unregistered,
|
|
@@ -8057,6 +8102,7 @@ function postInit(onInitDoneCallback) {
|
|
|
8057
8102
|
onInitDoneCallback();
|
|
8058
8103
|
}
|
|
8059
8104
|
function sipRegister() {
|
|
8105
|
+
lastRegistererState = "";
|
|
8060
8106
|
cleanupRegistererTimer();
|
|
8061
8107
|
try {
|
|
8062
8108
|
ctxSip.config = {
|
|
@@ -8104,6 +8150,7 @@ function sipRegister() {
|
|
|
8104
8150
|
register_flag = false;
|
|
8105
8151
|
}
|
|
8106
8152
|
let registererStateEventListner = newState => {
|
|
8153
|
+
lastRegistererState = newState;
|
|
8107
8154
|
if (ctxSip.phone && ctxSip.phone.transport && ctxSip.phone.transport.isConnected()) {
|
|
8108
8155
|
sipPhoneLogger("debug", "", "", "sipjslog registerer new state " + newState);
|
|
8109
8156
|
switch (newState) {
|
|
@@ -8126,6 +8173,7 @@ let registererWaitingChangeListener = b => {
|
|
|
8126
8173
|
}
|
|
8127
8174
|
};
|
|
8128
8175
|
let transportStateChangeListener = newState => {
|
|
8176
|
+
lastTransportState = newState;
|
|
8129
8177
|
sipPhoneLogger("debug", "", "", "sipjslog transport new state " + newState);
|
|
8130
8178
|
switch (newState) {
|
|
8131
8179
|
case SIP.TransportState.Connecting:
|
|
@@ -8669,10 +8717,17 @@ const SIPJSPhone = {
|
|
|
8669
8717
|
getWSSUrl: () => {
|
|
8670
8718
|
console.log("Returning txtWebsocketURL:", txtWebsocketURL);
|
|
8671
8719
|
return txtWebsocketURL;
|
|
8672
|
-
}
|
|
8720
|
+
},
|
|
8673
8721
|
/* NL Additions - End */
|
|
8722
|
+
getTransportState: () => {
|
|
8723
|
+
console.log("Returning Transport State : ", lastTransportState);
|
|
8724
|
+
return lastTransportState;
|
|
8725
|
+
},
|
|
8726
|
+
getRegistrationState: () => {
|
|
8727
|
+
console.log("Returning Registration State : ", lastRegistererState);
|
|
8728
|
+
return lastRegistererState;
|
|
8729
|
+
}
|
|
8674
8730
|
};
|
|
8675
|
-
|
|
8676
8731
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SIPJSPhone);
|
|
8677
8732
|
|
|
8678
8733
|
/***/ }),
|
|
@@ -8820,10 +8875,26 @@ const webrtcSIPPhone = {
|
|
|
8820
8875
|
} catch (e) {
|
|
8821
8876
|
console.log("getWSSUrl: Exception ", e);
|
|
8822
8877
|
}
|
|
8823
|
-
}
|
|
8878
|
+
},
|
|
8824
8879
|
/* NL Addition - End */
|
|
8825
|
-
};
|
|
8826
8880
|
|
|
8881
|
+
getTransportState() {
|
|
8882
|
+
try {
|
|
8883
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_0__["default"].getTransportState();
|
|
8884
|
+
} catch (e) {
|
|
8885
|
+
console.log("getTransportState: Exception ", e);
|
|
8886
|
+
return "unknown";
|
|
8887
|
+
}
|
|
8888
|
+
},
|
|
8889
|
+
getRegistrationState() {
|
|
8890
|
+
try {
|
|
8891
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_0__["default"].getRegistrationState();
|
|
8892
|
+
} catch (e) {
|
|
8893
|
+
console.log("getTransportState: Exception ", e);
|
|
8894
|
+
return "unknown";
|
|
8895
|
+
}
|
|
8896
|
+
}
|
|
8897
|
+
};
|
|
8827
8898
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (webrtcSIPPhone);
|
|
8828
8899
|
|
|
8829
8900
|
/***/ }),
|