/// <summary> /// Starts the dialogue flow. /// </summary> public async Task StartDialogueFlow() { _logger.Debug("Starting new dialogue flow."); SipRequest toSend = PrivateGetSipRequest(_initRequest); // create unique tag toSend.Headers.From.Tag = DialogueHelpers.GenerateIdentificationTag(); await _transactionLayer.SendSipRequestAsync(toSend); }
/// <summary> /// Initialize new sip dialogue. /// </summary> /// <param name="initRequestMethod"></param> /// <param name="requestUri"></param> /// <param name="from"></param> /// <param name="transactionLayer"></param> public SipDialogue(string initRequestMethod, SipUri requestUri, Identification from, ISipTransactionLayer transactionLayer) : this() { From = from; To = new Identification(from.Uri, null); DestinationUri = requestUri; _transactionLayer = transactionLayer; _transactionLayer.TransactionComplete += PrivateTransactionAgent_TransactionComplete; DialogueId = DialogueHelpers.GenerateCallId(); _responseHandler = new DefaultResponseHandler(); _initRequest = initRequestMethod; // Temporary solution, must be handled by "dialogue flow" // TODO create default action with init request method }
private void SpeakPerTurn() { if (!Entity.Cell.Visible) { return; } if (!RandomUtils.OneChanceIn(20)) { return; } string line = DialogueHelpers.GetIdleDialogue(ID); line = line.Replace("@npc", Strings.Subject(Entity, false)); line = line.Replace("@possessive", Strings.Possessive(Entity)); line = line.FirstCharToUpper(); Locator.Log.Send(line, Color.white); }