fix: send DTMF to active session room#2010
Open
rosetta-livekit-bot[bot] wants to merge 1 commit into
Open
Conversation
🦋 Changeset detectedLatest commit: 4db7d01 The changes in this PR will be included in the next version bump. This PR includes changesets to release 36 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
sendDtmfEventstool to publish SIP DTMF from the activeAgentSessionRoomIO room.getJobContext().roomwhen the tool runs without an active RoomIO, matching the Python behavior.Source diff coverage
Coverage classification
livekit-agents/livekit/agents/beta/tools/send_dtmf.py: adapted toagents/src/beta/tools/send_dtmf.ts. The target did not have the Python beta DTMF tool or IVR module, but it has equivalent tool execution context and RoomIO access. This PR ports the tool behavior by resolving the active session room fromctx.session._roomIO?.rtcRoom, falling back togetJobContext().room, then publishing each DTMF event viaroom.localParticipant.publishDtmf(code, digit)with the same per-event delay and success/failure messages.livekit-agents/livekit/agents/beta/tools/send_dtmf.py: adapted exports toagents/src/beta/tools/index.tsandagents/src/beta/index.tsbecause JS exposes beta tools through namespace index files rather than Python package__init__.pychanges in the source diff.Validation
pnpm build: passed.pnpm lint: passed with existing warnings.pnpm test agents: failed in existing unrelatedagents/src/voice/amd.test.tscases (11 failures); no DTMF tests were added by the source change.pnpm api:check: failed before checking this package because unrelated plugin packages lackapi-extractor.json(@livekit/agents-plugin-liveavatar,@livekit/agents-plugin-bey).pnpm --filter @livekit/agents api:check: failed on existing API Extractor limitation forexport * as ___inagents/dist/index.d.ts.Notes
cue-clivalidation was not run because this change does not modify the voice pipeline; it adds a beta tool that uses existing tool context and RoomIO surfaces.Ported from livekit/agents#6360
Original PR description
The
send_dtmf_eventstool resolved the room from the job context, which is always the original caller room. During a warm transfer the tool runs in a separate session bound to a different room, so DTMF was published to the caller instead of the transferee.This resolves the room from the run context session (
ctx.session.room_io.room), falling back to the job context when the session has no room I/O.Fixes #6357