@anganyai/voice-sdk 0.0.6 → 0.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/dist/index.js CHANGED
@@ -16421,6 +16421,15 @@ var SipManager = class extends EventEmitter {
16421
16421
  }
16422
16422
  const inviter = new Inviter(this.userAgent, uri, inviterOptions);
16423
16423
  this.currentSession = inviter;
16424
+ let rejectionReason;
16425
+ inviter.delegate = {
16426
+ onReject: (response) => {
16427
+ const statusCode = response.message.statusCode;
16428
+ const reasonPhrase = response.message.reasonPhrase;
16429
+ this.logger.warn("Call rejected", { statusCode, reasonPhrase });
16430
+ rejectionReason = { code: statusCode, reason: this.mapSipErrorToMessage(statusCode, reasonPhrase) };
16431
+ }
16432
+ };
16424
16433
  inviter.stateChange.addListener((state) => {
16425
16434
  this.logger.debug("Call state changed", { state });
16426
16435
  switch (state) {
@@ -16434,6 +16443,9 @@ var SipManager = class extends EventEmitter {
16434
16443
  break;
16435
16444
  case SessionState2.Terminated:
16436
16445
  this.setState("registered");
16446
+ if (rejectionReason) {
16447
+ this.emit("error", new Error(rejectionReason.reason));
16448
+ }
16437
16449
  this.emit("callEnded");
16438
16450
  this.cleanupAudioResources();
16439
16451
  delete this.currentSession;
@@ -16899,6 +16911,50 @@ var SipManager = class extends EventEmitter {
16899
16911
  }
16900
16912
  }, delay);
16901
16913
  }
16914
+ /**
16915
+ * Map SIP error codes to user-friendly messages
16916
+ */
16917
+ mapSipErrorToMessage(statusCode, reasonPhrase) {
16918
+ const errorMessages = {
16919
+ // 4xx Client Errors
16920
+ 400: "Invalid request",
16921
+ 401: "Authentication required",
16922
+ 403: "Access denied",
16923
+ 404: "Agent not found",
16924
+ 408: "Request timeout",
16925
+ 480: "Agent unavailable",
16926
+ 486: "Agent is busy",
16927
+ 487: "Call cancelled",
16928
+ 488: "Not acceptable",
16929
+ // 5xx Server Errors
16930
+ 500: "Server error",
16931
+ 502: "Bad gateway",
16932
+ 503: "Service unavailable",
16933
+ 504: "Gateway timeout",
16934
+ // 6xx Global Failures
16935
+ 600: "Agent is busy",
16936
+ 603: "Agent declined the call",
16937
+ 604: "Agent does not exist",
16938
+ 606: "Not acceptable"
16939
+ };
16940
+ const message = errorMessages[statusCode];
16941
+ if (message) {
16942
+ return message;
16943
+ }
16944
+ if (reasonPhrase) {
16945
+ return reasonPhrase;
16946
+ }
16947
+ if (statusCode >= 400 && statusCode < 500) {
16948
+ return "Call failed";
16949
+ }
16950
+ if (statusCode >= 500 && statusCode < 600) {
16951
+ return "Server error";
16952
+ }
16953
+ if (statusCode >= 600) {
16954
+ return "Agent unavailable";
16955
+ }
16956
+ return "Unknown error";
16957
+ }
16902
16958
  };
16903
16959
 
16904
16960
  // src/services/TranscriptionService.ts