Skip to content

Conversation

kompfner
Copy link
Contributor

@kompfner kompfner commented Feb 28, 2025

Plan:

  • First get this demo working without dial-in/dial-out. Just rely on the "customer" and the "agent" joining the Daily room directly in their browser.
  • Then implement dial-in/dial-out—maybe in another demo? The complication is that getting dial-in/dial-out set up is pretty nontrivial for the user.

@kompfner kompfner requested a review from markbackman February 28, 2025 20:33
Copy link

vercel bot commented Feb 28, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
pipecat-flows ✅ Ready (Inspect) Visit Preview Apr 2, 2025 4:50pm

@kompfner
Copy link
Contributor Author

kompfner commented Mar 14, 2025

Note to self: do not rebase warm-transfer-demo on top of function-action-type until the issue with the latest commit of function-action-type is fixed. Rebasing will cause the demo to stop working.

@markbackman
Copy link
Contributor

This is really great! While the logic is complex, it's relatively easy to follow along. (I wonder if we should think about adding conveniences to make controlling remote participants easier, especially for a customer/agent/bot scenario. That's for another PR though.)

I've noticed that sometimes the canReceive() change works and other times it doesn't. Not sure if this is relevant, but I see the following errors when the command runs:

{"timestamp":"2025-03-27T15:00:45.513169Z","level":"ERROR","fields":{"message":"no subscription for consumer: ConsumerId(\"0daee4f5-5d5d-41cb-81e6-9bbb55c5d8e7\")"},"target":"daily_core::call_manager::events::from_sfu::soup_consumer_closed"}
{"timestamp":"2025-03-27T15:00:45.562691Z","level":"ERROR","fields":{"message":"Failed to close consumer: ConsumerNoLongerExists(ConsumerId(\"0daee4f5-5d5d-41cb-81e6-9bbb55c5d8e7\"))"},"target":"daily_core::call_manager::events::subscription::common"}

I'm running Pipecat 0.0.61 and Flows 0.0.16.

One minor UX improvement might be to print the agent URL when it's time for the agent to join, rather than at the start of the session.

Other that, this is really on the right track. Very impressive! 👏

… `CartesiaHttpTTSService` for now, to avoid an issue where interrupting the bot would cause post_actions to run before the bot stopped speaking (see #119)
…nts so they're easily distinguishable in the Daily Prebuilt UI
@@ -0,0 +1,7 @@
# Hold Music Player
Copy link
Contributor

@markbackman markbackman Apr 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want the hold_music folder to be within an assets directory within examples? Maybe examples/assets? Rationale being that it isn't a demo in itself. It's an asset used by a Flows demo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea!

Copy link
Contributor

@markbackman markbackman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🎉

Just one question about where the hold_music should reside.

@kompfner kompfner merged commit a5012ec into main Apr 2, 2025
2 checks passed
@kompfner kompfner deleted the warm-transfer-demo branch April 2, 2025 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants