@exotel-npm-dev/webrtc-client-sdk 1.0.5 → 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 ADDED
@@ -0,0 +1,12 @@
1
+ Change Log
2
+
3
+ ## v1.0.7 16 Feb 2024
4
+ -[VST-566] upgraded coreSDK , and exoposed checkClientStatus API
5
+
6
+ ## 17 Aug,2023
7
+ -[VWS-15] upgrade webrtc-core-sdk to 1.0.6
8
+
9
+ ## 21 Jul,2023
10
+
11
+ ### fixes
12
+ - [VWS-14] upgrade webrtc-core-sdk to 1.0.5
@@ -1,3 +1,4 @@
1
1
  #openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
2
2
 
3
- rm -rf dist;cd ..;npm uninstall @exotel-npm-dev/webrtc-core-sdk;npm install ../webrtc-core-sdk;npm run build;cp -r dist demo-non-npm/;cd demo-non-npm;http-server -S -C ~/pki/cert.pem -K ~/pki/key.pem
3
+ rm -rf dist;cd ..;npm uninstall @exotel-npm-dev/webrtc-core-sdk;npm install ../webrtc-core-sdk;npm run build;cp -r dist demo-non-npm/;cd demo-non-npm;
4
+ http-server -S -C ~/pki/cert.pem -K ~/pki/key.pem
@@ -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-----
@@ -1,25 +1,25 @@
1
- const exWebClient = new exotelSDK.ExotelWebClient();
1
+ const exWebClient = new exotelSDK.ExotelWebClient();
2
2
  var call = null;
3
3
  function UserAgentRegistration() {
4
4
  var sipInfo = JSON.parse(phone)[0];
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
- };
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,27 +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
- }
31
+ document.getElementById("call_status").innerHTML = eventType + " " + phone;
32
+ }
33
33
 
34
- function RegisterEventCallBack (state, phone){
34
+ function RegisterEventCallBack(state, phone) {
35
35
  document.getElementById("status").innerHTML = state;
36
- if (state === 'registered') {
36
+ if (state === 'registered') {
37
37
  document.getElementById("registerButton").innerHTML = "UNREGISTER";
38
- } else {
38
+ } else {
39
39
  document.getElementById("registerButton").innerHTML = "REGISTER";
40
- }
40
+ }
41
41
 
42
- }
42
+ }
43
43
 
44
- function SessionCallback(state, phone) {
45
- console.log('Session state:', state, 'for number...', phone);
46
- }
44
+ function SessionCallback(state, phone) {
45
+ console.log('Session state:', state, 'for number...', phone);
46
+ }
47
47
 
48
48
  function toggleMuteButton() {
49
- if(call){
49
+ if (call) {
50
50
  call.Mute();
51
- if(document.getElementById("muteButton").innerHTML === "UNMUTE"){
51
+ if (document.getElementById("muteButton").innerHTML === "UNMUTE") {
52
52
  document.getElementById("muteButton").innerHTML = "MUTE";
53
53
  } else {
54
54
  document.getElementById("muteButton").innerHTML = "UNMUTE";
@@ -57,24 +57,30 @@ function toggleMuteButton() {
57
57
  }
58
58
 
59
59
  function acceptCall() {
60
- if(call) {
60
+ if (call) {
61
61
  call.Answer();
62
62
  }
63
63
  }
64
64
 
65
65
  function rejectCall() {
66
- if(call) {
66
+ if (call) {
67
67
  call.Hangup();
68
68
  }
69
69
  }
70
70
 
71
71
  function toggleHoldButton() {
72
- if(call) {
72
+ if (call) {
73
73
  call.HoldToggle();
74
- if(document.getElementById("holdButton").innerHTML === "UNHOLD"){
74
+ if (document.getElementById("holdButton").innerHTML === "UNHOLD") {
75
75
  document.getElementById("holdButton").innerHTML = "HOLD";
76
76
  } else {
77
77
  document.getElementById("holdButton").innerHTML = "UNHOLD";
78
78
  }
79
79
  }
80
+ }
81
+
82
+ function sdkReady() {
83
+ exWebClient.checkClientStatus(function (status) {
84
+ console.log("SDK Status " + status);
85
+ });
80
86
  }
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * WebRTC CLient SIP version 1.0.4
3
+ * WebRTC CLient SIP version 1.0.7
4
4
  *
5
5
  */
6
6
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -1705,6 +1705,46 @@ 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
+ 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
+ };
1708
1748
  }
1709
1749
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ExotelWebClient);
1710
1750
 
@@ -7727,6 +7767,8 @@ __webpack_require__.r(__webpack_exports__);
7727
7767
 
7728
7768
  var SIP = __webpack_require__(/*! ./sip-0.20.0.js */ "../webrtc-core-sdk/src/sip-0.20.0.js");
7729
7769
 
7770
+ var lastTransportState = "";
7771
+ var lastRegistererState = "";
7730
7772
  var videoRemote, videoLocal, audioRemote;
7731
7773
  var initializeComplete = false;
7732
7774
  var webRTCStatus = "offline"; // ready -> registered, offline -> unregistered,
@@ -8057,6 +8099,7 @@ function postInit(onInitDoneCallback) {
8057
8099
  onInitDoneCallback();
8058
8100
  }
8059
8101
  function sipRegister() {
8102
+ lastRegistererState = "";
8060
8103
  cleanupRegistererTimer();
8061
8104
  try {
8062
8105
  ctxSip.config = {
@@ -8104,6 +8147,7 @@ function sipRegister() {
8104
8147
  register_flag = false;
8105
8148
  }
8106
8149
  let registererStateEventListner = newState => {
8150
+ lastRegistererState = newState;
8107
8151
  if (ctxSip.phone && ctxSip.phone.transport && ctxSip.phone.transport.isConnected()) {
8108
8152
  sipPhoneLogger("debug", "", "", "sipjslog registerer new state " + newState);
8109
8153
  switch (newState) {
@@ -8126,6 +8170,7 @@ let registererWaitingChangeListener = b => {
8126
8170
  }
8127
8171
  };
8128
8172
  let transportStateChangeListener = newState => {
8173
+ lastTransportState = newState;
8129
8174
  sipPhoneLogger("debug", "", "", "sipjslog transport new state " + newState);
8130
8175
  switch (newState) {
8131
8176
  case SIP.TransportState.Connecting:
@@ -8151,11 +8196,11 @@ function registerPhoneEventListeners() {
8151
8196
  });
8152
8197
  ctxSip.phone.delegate.onInvite = incomingSession => {
8153
8198
  if (ctxSip.callActiveID == null) {
8154
- _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_0__["default"].onRecieveInvite(incomingSession);
8155
- _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_0__["default"].sendWebRTCEventsToFSM("i_new_call", "CALL");
8156
8199
  var s = incomingSession;
8157
8200
  s.direction = 'incoming';
8158
8201
  ctxSip.newSession(s);
8202
+ _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_0__["default"].onRecieveInvite(incomingSession);
8203
+ _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_0__["default"].sendWebRTCEventsToFSM("i_new_call", "CALL");
8159
8204
  } else {
8160
8205
  incomingSession.reject();
8161
8206
  }
@@ -8669,10 +8714,17 @@ const SIPJSPhone = {
8669
8714
  getWSSUrl: () => {
8670
8715
  console.log("Returning txtWebsocketURL:", txtWebsocketURL);
8671
8716
  return txtWebsocketURL;
8672
- }
8717
+ },
8673
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
+ }
8674
8727
  };
8675
-
8676
8728
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SIPJSPhone);
8677
8729
 
8678
8730
  /***/ }),
@@ -8820,10 +8872,26 @@ const webrtcSIPPhone = {
8820
8872
  } catch (e) {
8821
8873
  console.log("getWSSUrl: Exception ", e);
8822
8874
  }
8823
- }
8875
+ },
8824
8876
  /* NL Addition - End */
8825
- };
8826
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
+ };
8827
8895
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (webrtcSIPPhone);
8828
8896
 
8829
8897
  /***/ }),