* fix: propagate SIP 488 error to SBC on endpoint allocation failure
When FreeSWITCH returns a SIP 488 'Not Acceptable Here' error during
endpoint allocation (e.g., codec incompatibility), this error was not
being propagated back to the SBC/client. Instead, the call would wait
indefinitely for websocket commands or return a generic 603 response.
Implementation:
- In _evalEndpointPrecondition(), detect SipError by checking
err.type === 'SipError' or err.name === 'SipError'
- Extract the SIP status code (e.g., 488), reason, and the Reason
header from the error response (e.g., Q.850;cause=88;text=INCOMPATIBLE_DESTINATION)
- Send the SIP error response immediately to the SBC with:
- X-Reason header: endpoint allocation failure details
- Reason header: original Q.850 cause from FreeSWITCH
- Notify call status change as Failed with proper SIP status
- Release the call immediately instead of waiting for commands
Also added fallback handling in InboundCallSession._onTasksDone() to
propagate the stored error if immediate send was not possible.
* wip
* Simplify SipError check to only use err.name
* refactor recording
removed the test of `(this.cs.accountInfo.account.record_all_calls || this.cs.application.record_all_calls` from backround-task-manager.jsL138 as this check is already done in call-session.js at Line 3007, also allows us to start the record from update or config verbs
* handle start recording for a call that is not yet answered
* return false if not changing recording state
* different check for status
* set hasRecording flag on callInfo when starting
* update redis on recording start
* lint
* update dependency
* compare sdp for transcoding
* refactor sdp check for leading codec
* fix reference to epOther
* minor changes
* minor
* fix#1447
* fix security issue
* use convenience getter appIsUsingWebsockets in CallSession
---------
Co-authored-by: Dave Horton <daveh@beachdognet.com>
* fix say verb does not close streaming when finish say
* wip
* wip
* ttsStreamingBuffer reset eventHandlerCount after remove listeners
* only send tokens to module if connected
* wip
* sent stream_open when successfully connected to vendor
Currently if the call being transferred was originally an outbound call then the direction thats retrieved from redis is outbound and the invite of the refer from the other FS is never answered,
However a transferredCall will always need to be answered regardless of CallDirection
* update to speech-utils that generates playback id
* modify tts and say task to track current playback id and match against start and stop events
* bump speech utils
* wip
* wip
* fix race condition where say with playbackId gets stop event from previous play from cache file
* logging
* wip
* fix comparison when playing cached files
* logging
* fixed transcription is not received when call is terminated
* wip
* fixed failing testcases
* wip
* wip
* wip
* wip
* should not do gracefulshutdown on stopAmd
* fixed dial transcribe is not able to received final transcribe when close call.
* wip
* fix review comment
* support call session delay detroy ep when current task is transcribe
* wip
* wip
* fixed review comments
* fixed review comments