Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle EndOfConversation(EoC Activity) in Skills in Bot Composer #6705

Open
Akhila9 opened this issue Feb 24, 2023 · 6 comments
Open

Handle EndOfConversation(EoC Activity) in Skills in Bot Composer #6705

Akhila9 opened this issue Feb 24, 2023 · 6 comments
Labels
Bot Services Required for internal Azure reporting. Do not delete. Do not change color. customer-replied-to Indicates that the team has replied to the issue reported by the customer. Do not delete. customer-reported Issue is created by anyone that is not a collaborator in the repository. feature-request A request for new functionality or an enhancement to an existing one.

Comments

@Akhila9
Copy link

Akhila9 commented Feb 24, 2023

@dmvtech Can you please let me know the behaviour for EndOfConversation activity in Root and skill bots?

Let say if EoC Activity hits the root bot, we close the connection in the root bot, but the skill will be open and so instances will be running right? Wont that cause a problem?

@Akhila9 Akhila9 added the needs-triage The issue has just been created and it has not been reviewed by the team. label Feb 24, 2023
@johnataylor johnataylor removed the needs-triage The issue has just been created and it has not been reviewed by the team. label Feb 27, 2023
@dmvtech dmvtech added customer-reported Issue is created by anyone that is not a collaborator in the repository. Bot Services Required for internal Azure reporting. Do not delete. Do not change color. labels Feb 27, 2023
@dmvtech
Copy link
Collaborator

dmvtech commented Feb 28, 2023

Hi @Akhila9

Let say if EoC Activity hits the root bot, we close the connection in the root bot

Can you clarify on what you mean by this? Who is sending the EoC?

but the skill will be open and so instances will be running right?

I don't know what you mean by instances, can you clarify. The conversation may be 'abandoned' in the skill, but the only thing that would affect is a very small state store bloat.

@dmvtech dmvtech added the customer-replied-to Indicates that the team has replied to the issue reported by the customer. Do not delete. label Feb 28, 2023
@Akhila9
Copy link
Author

Akhila9 commented Mar 1, 2023

EoC Activity is endOfConversation Activity. We are developing a audio bot, which is been integrated with third party service, so whenever the caller disconnect the call we get EoC Activity, but when the connection is in skill, this activity wont reach the skill bot. But as discussed earlier for events the control always goes through the root bot, though we have bypassed the EoC Activity in root bot, the control doesnt reach the skill bot, rather than that it will be treated as endOfConversation triggered to the root bot.

If that happens, I assume that the skill bot instances will be open as autoEndDialog is false and occupying the memory space increasing CPU load and which in turn can lead to 504 timeout issues. I am not really sure about the understanding but assumes it happens in this way, can you please guide me on it.

Our expected behaviour is that the EoC activity to be reached to skill bot, then we can end the dialog and send it to the root bot. From the current behaviour, I dont see any approach to do it, can you please suggest the best possible way to do it.

@Akhila9
Copy link
Author

Akhila9 commented Mar 4, 2023

@dmvtech, Hi Dana, if we want to discuss it over an meeting, if you can share your email and prefered time, I can book a slot. I am in IST zone and so till 11.00PM IST works for me. Thanks in advance.

@ZepHakase22
Copy link

My case is a little different.
Let's say I have a root dialog that launches another dialog. The last dialog sent the client an Adaptive Card waiting for the client to choose. Other than that choice, though, the client can asynchronously at any time send an EoC and shut everything down. I cannot capture this EndOfConversation in any way, even though the composer trace, seen in Debug from Visual Studio shows that something is received and sent to the various dialogs.
First of all, I would like to understand the meaning of the trace generated by the Composer and which I interpret to mean that the EndOfConversation was turned over to the child dialogs.
Then: Why can't I capture the EndOfConversation ?

These are the traces I read produced by the Composer:

Passy.Bot.Composer Information: 0 : 12: 'endOfConversation' ==> activityReceived ==> SubmitActionPrompt
Passy.Bot.Composer Information: 0 : 3: 'endOfConversation' ==> activityReceived ==> GetAppointmentsListDialog
Passy.Bot.Composer Information: 0 : 9: 'endOfConversation' ==> activityReceived ==> CheckinProcedureDialog
Passy.Bot.Composer Information: 0 : 12: 'endOfConversation' ==> activityReceived ==> VirtualReceptionComposer

@dmvtech
Copy link
Collaborator

dmvtech commented Oct 23, 2023

As this is not possible in Composer, switching this over to a feature request.

@dmvtech
Copy link
Collaborator

dmvtech commented Oct 23, 2023

Describe the solution you'd like

When there is a Root bot calling a skill; when the Root bot receives a EndOfConversation activity, then that should be forwarded to the skill and the skill should also be able to handle that same activity in it's own EndOfConversation activity handler.

Additional context

Sample activity being sent to the Root bot:

[Activity
    Type = endOfConversation
    Code = userCancelled
	Text = "Testing"
]

@dmvtech dmvtech added the feature-request A request for new functionality or an enhancement to an existing one. label Oct 23, 2023
@dmvtech dmvtech removed their assignment Oct 23, 2023
@tracyboehrer tracyboehrer transferred this issue from microsoft/BotFramework-Composer Nov 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bot Services Required for internal Azure reporting. Do not delete. Do not change color. customer-replied-to Indicates that the team has replied to the issue reported by the customer. Do not delete. customer-reported Issue is created by anyone that is not a collaborator in the repository. feature-request A request for new functionality or an enhancement to an existing one.
Projects
None yet
Development

No branches or pull requests

4 participants