title: Bot Framework, conversation in another conversation
body: <p>I created a bot using QnA Maker, which depending on the answer I should return the same answer or call another service, which in my case is to assemble a form flow from a JSON. </p>
  
  <p>But when calling this service I start a new Conversation, so it does not return to the emulator. </p>
  
  <p>I'm creating a conversation in another conversation. There must be something missing.</p>
  
  <p><strong>RootDialog.cs:</strong></p>
  
  <pre><code>[Serializable]
  public class RootDialog : QnAMakerDialog
  {
      public RootDialog() : base(
          new QnAMakerService(
              new QnAMakerAttribute(
                  ConfigurationManager.AppSettings["QnaSubscriptionKey"],
                  ConfigurationManager.AppSettings["QnaKnowledgebaseId"],
                  "Não encontrei sua resposta",
                  0.5
                  )
              )
          )
      {
  
      }
  
      protected override async Task RespondFromQnAMakerResultAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result)
      {
          var primeiraResposta = result.Answers.First().Answer;
  
          if (primeiraResposta.IndexOf("form") == -1)
          {
              await context.PostAsync(primeiraResposta);
              return;
          }
  
          await Conversation.SendAsync(message, () =&gt; Chain.From(() =&gt; FormDialog.FromForm(() =&gt; Formulario.JsonForm.BuildJsonForm(), FormOptions.PromptFieldsWithValues)));
  
          return;
  
      }
  }
  </code></pre>
  
  <p><strong>MessagesController.cs</strong></p>
  
  <pre><code>public async Task&lt;HttpResponseMessage&gt; Post([FromBody]Activity activity)
  {
      var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
  
      if (activity.Type == ActivityTypes.ConversationUpdate)
      {
          if (activity.MembersAdded.Any(o =&gt; o.Id == activity.Recipient.Id))
          {
              var reply = activity.CreateReply();
              reply.Text = "Hello...";
              await connector.Conversations.ReplyToActivityAsync(reply);
          }
  
      }
      else if (activity.Type == ActivityTypes.Message)
      {
          // HEREE!!!
          await Conversation.SendAsync(activity, () =&gt; new Dialogs.RootDialog());
  
      }
      else
      {
          HandleSystemMessage(activity);
      }
      var response = Request.CreateResponse(HttpStatusCode.OK);
      return response;
  }
  </code></pre>
  
  <p><strong>The response of emulator:</strong></p>
  
  <blockquote>
    <p>I could not send, Repeat</p>
  </blockquote>