Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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
        }
Beispiel #3
0
        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);
        }