Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
c9958b7
Beginnings of a AgentApplication Cards sample
Mar 31, 2025
2494973
HandlingCards: more card handling
Mar 31, 2025
26fbf3c
HandlingCards: Added remaining cards
Mar 31, 2025
e4967ac
Corrected appsettings
Mar 31, 2025
12b939d
Moving HandlingCards to Samples (from test-bots)
Apr 9, 2025
be1a13e
Merge branch 'users/tracyboehrer/revert-anonymous-error' into users/t…
Apr 9, 2025
ab8322d
Updated Cards README
Apr 9, 2025
74608c0
Handling Teams lack of support for Video and Audio cards
Apr 9, 2025
d204501
Handling differing card support across channels
Apr 9, 2025
04dcf7e
Merge branch 'main' into users/tracyboehrer/cards-sample
tracyboehrer Apr 9, 2025
b74150f
Merge branch 'main' into users/tracyboehrer/cards-sample
tracyboehrer Apr 9, 2025
e7b5127
HandlingCards: Dropped support for AnimationCard on Teams channel
Apr 21, 2025
b14dba9
Merge branch 'main' into users/tracyboehrer/cards-sample
Apr 21, 2025
b1d264c
Fixed SLN for HandlingCards
Apr 21, 2025
85c7f93
HandlingCards: Matching latest Program.cs pattern
Apr 21, 2025
6a9ff60
Merge branch 'main' into users/tracyboehrer/cards-sample
MattB-msft Apr 22, 2025
640ce30
Merge branch 'main' into users/tracyboehrer/cards-sample
MattB-msft Apr 23, 2025
7bfef31
Merge branch 'main' into users/tracyboehrer/cards-sample
Apr 30, 2025
b948e14
Action.Execute debugging (not ready for sample yet)
May 1, 2025
bf04387
Merge branch 'main' into users/tracyboehrer/cards-sample
May 15, 2025
5296840
Added cards sample back
May 15, 2025
f0ffeff
Merge branch 'main' into users/tracyboehrer/cards-sample
May 16, 2025
7d4e6fd
Handling lack of ReceiptCard support in Teams
May 16, 2025
2bec8d6
HandleCards: More reasonable Action.Execute demo
May 16, 2025
ed5cd23
HandleCards README update
May 16, 2025
7e6781c
Merge branch 'main' into users/tracyboehrer/cards-sample
May 16, 2025
0633f17
Merge branch 'main' into users/tracyboehrer/cards-sample
Jun 8, 2025
bb4a720
Merge branch 'main' into users/tracyboehrer/cards-sample
Jun 11, 2025
5651563
Applied consistency changes coming to other samples to HandlingCards
Jun 12, 2025
ef74a8c
Merge branch 'main' into users/tracyboehrer/cards-sample
tracyboehrer Jun 12, 2025
59f681b
Merge branch 'main' into users/tracyboehrer/cards-sample
Jun 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Handling Teams lack of support for Video and Audio cards
  • Loading branch information
Tracy Boehrer committed Apr 9, 2025
commit 74608c0d0b4a85dc8609ebdbf2f0ad21d589a0f9
32 changes: 32 additions & 0 deletions src/libraries/Core/Microsoft.Agents.Core/Models/Channels.cs
Original file line number Diff line number Diff line change
@@ -3,6 +3,10 @@

namespace Microsoft.Agents.Core.Models
{
/// <summary>
/// Channel definitions.
/// The various "support" methods come from: https://learn.microsoft.com/en-us/azure/bot-service/bot-service-channels-reference?view=azure-bot-service-4.0
/// </summary>
public static class Channels
{
/// <summary>
@@ -215,6 +219,34 @@ public static bool SupportsCardActions(string channelId, int buttonCnt = 100)
}
}

public static bool SupportsVideoCard(string channelId)
{
switch (channelId)
{
case Alexa:
case Msteams:
case Twilio:
return false;

default:
return true;
}
}

public static bool SupportsAudioCard(string channelId)
{
switch (channelId)
{
case Alexa:
case Msteams:
case Twilio:
return false;

default:
return true;
}
}

/// <summary>
/// Determine if a Channel has a Message Feed.
/// </summary>
13 changes: 13 additions & 0 deletions src/samples/HandlingCards/Cards.cs
Original file line number Diff line number Diff line change
@@ -54,6 +54,18 @@ public static async Task<bool> OnCardCommandsAsync(ITurnContext turnContext, ITu
return true;
}

if (cardCommand.Name.Equals("audio") && !Channels.SupportsAudioCard(turnContext.Activity.ChannelId))
{
await turnContext.SendActivityAsync($"The channel '{turnContext.Activity.ChannelId}' does not support audio cards.", cancellationToken: cancellationToken);
return true;
}

if (cardCommand.Name.Equals("video") && !Channels.SupportsAudioCard(turnContext.Activity.ChannelId))
{
await turnContext.SendActivityAsync($"The channel '{turnContext.Activity.ChannelId}' does not support video cards.", cancellationToken: cancellationToken);
return true;
}

await cardCommand.CardHandler(turnContext, turnState, cancellationToken);
return true;
}
@@ -210,6 +222,7 @@ public static VideoCard GetVideoCard()
" part of the Blender Foundation. Like the foundation's previous film Elephants Dream," +
" the film was made using Blender, a free software application for animation made by the same foundation." +
" It was released as an open-source film under Creative Commons License Attribution 3.0.",
Aspect = "4:3",
Image = new ThumbnailUrl
{
Url = "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Big_buck_bunny_poster_big.jpg/220px-Big_buck_bunny_poster_big.jpg",
4 changes: 2 additions & 2 deletions src/samples/HandlingCards/CardsAgent.cs
Original file line number Diff line number Diff line change
@@ -87,7 +87,7 @@ private async Task OnWelcomeMessageAsync(ITurnContext turnContext, ITurnState tu
{
if (member.Id != turnContext.Activity.Recipient.Id)
{
await turnContext.SendActivityAsync("Hello and welcome! With this sample you can see the functionality cards in an Agent.", cancellationToken: cancellationToken);
await turnContext.SendActivityAsync("Hello and welcome! With this sample you can see the functionality of cards in an Agent.", cancellationToken: cancellationToken);
await Cards.SendCardCommandsAsync(turnContext, turnState, cancellationToken);
}
}
@@ -103,7 +103,7 @@ private async Task OnMessageHandlerAsync(ITurnContext turnContext, ITurnState tu
}

/// <summary>
/// Handles Adaptive Card dynamic search events.
/// Handles Adaptive Card dynamic search events. This is only supported on Teams channels.
/// </summary>
private async Task<IList<AdaptiveCardsSearchResult>> SearchHandlerAsync(ITurnContext turnContext, ITurnState turnState, Query<AdaptiveCardsSearchParams> query, CancellationToken cancellationToken)
{
Loading
Oops, something went wrong.