Kokotoni Wilf
Kokotoni Wilf

Reputation: 43

Ending conversation

My bot (using MS BotFramework) is supposed to be hearing the conversation stream. If someone mentions 'chatbot' it should say 'Here I am!', otherwise stays quiet. It seems to be very simple and maybe it is but I am having a hard time trying to implementing it. Here is what I have:

bot.add('/', function(session) {
  if (someoneSaidChatbot) {
    session('Here I am!")
  } else {
    // session.reset(), maybe? No!
    // session.endDialog() then? Uh...nope.
    // nothing? Hmmm. negative
  }
});

So, nothing works. If I leave there the bot just hangs and it stops listening to the stream or answering commands. Any thoughts?

Upvotes: 1

Views: 469

Answers (3)

Yuhua Deng
Yuhua Deng

Reputation: 73

I'd like to suggest use endConversationAction() to register a Bots Global Actions

bot.endConversationAction(
      'enddialog',                 //dialog Id
      'Here I am',                 //message
      { matches: /^.*chatbot/i }   //match pattern
    );

since this is global action, anytime when bot heard "Chatbot", it will say "Here I am" , if there are some dialog in stack, your proposed solution might not work.

Upvotes: 1

Jim Lewallen
Jim Lewallen

Reputation: 1006

It may also depend on which channel you're using. Some channels don't offer the ability for the Bot to listen to all of the messages in the conversation.

Upvotes: 0

Howard
Howard

Reputation: 189

This code ends a dialog when someone types "chatbot" as part of the utterance. Is this what you are looking for?

bot.add('/', function (session) { 
    if (session.message.text.search("chatbot") >= 0) {
        session.endDialog("Here I am");
    }
});

Upvotes: 1

Related Questions