コード例 #1
0
        /*
         * private string print<TKey, TValue>(Dictionary<TKey, TValue> source, string keyValueSeparator = "=", string sequenceSeparator = "|")
         * {
         *  try
         *  {
         *      return source.Aggregate(string.Empty, (acc, pair) => string.Format("{0}{1}{2}{3}{4}", acc, pair.Key, keyValueSeparator, pair.Value, sequenceSeparator));
         *  }
         *  catch (Exception exception)
         *  {
         *      Logger.Instance.LogMessage(Logger.LogAppender.DuoDefault, "ToString", exception, Logger.LogLevel.Error);
         *      return string.Empty;
         *  }
         * }
         */

        /// <summary>
        /// get incoming phone no
        /// </summary>
        /// <param name="securitytoken"></param>
        /// <param name="sessionId"></param>
        /// <returns></returns>
        public static string GetPhoneNo(string securitytoken, string sessionId)
        {
            var logger = Logger.Instance;

            try
            {
                logger.LogMessage(Logger.LogAppender.DuoDefault, string.Format("GetPhoneNo sessionId : {0}", sessionId), Logger.LogLevel.Info);
                var            startTIme = DateTime.Now;
                DuoEngagements engagements;
                using (var client = new DuoEngagementServiceClient("basicEngagementEndpoint"))
                {
                    engagements = client.ViewEngagementOriginateBySessionID(securitytoken, sessionId);
                }

                if (engagements != null)
                {
                    logger.LogMessage(Logger.LogAppender.DuoDefault, string.Format("GetPhoneNo - [{0}] . sessionId : {1} . Time Take : {2} . Engagement : {3}", engagements.OtherData, sessionId, DateTime.Now.Subtract(startTIme).TotalMilliseconds, engagements), Logger.LogLevel.Info);
                    string[] parts = Regex.Split(engagements.OtherData, "-");
                    return(parts[0]);
                }
                else
                {
                    logger.LogMessage(Logger.LogAppender.DuoDefault, string.Format("GetPhoneNo - {0} . sessionId : {1} . Time Take : {2}", "Receive Null Data", sessionId, DateTime.Now.Subtract(startTIme).TotalMilliseconds), Logger.LogLevel.Info);
                }
            }
            catch (Exception exception)
            {
                logger.LogMessage(Logger.LogAppender.DuoDefault, "GetPhoneNo", exception, Logger.LogLevel.Error);
            }
            return(string.Empty);
        }
コード例 #2
0
        /// <summary>
        /// view incoming call details. ivr path,no, etc..
        /// </summary>
        /// <param name="securitytoken"></param>
        /// <param name="sessionId"></param>
        /// <returns></returns>
        public static Dictionary <string, string> ViewCurrentEngagementDisplayInfo(string securitytoken, string sessionId)
        {
            var logger = Logger.Instance;

            try
            {
                //var id = sessionId.Split('@');
                logger.LogMessage(Logger.LogAppender.DuoDefault, string.Format("ViewCurrentEngagementDisplayInfo sessionId : {0}", sessionId), Logger.LogLevel.Info);
                Dictionary <string, string> engagements;
                using (var client = new DuoEngagementServiceClient("basicEngagementEndpoint"))
                {
                    engagements = client.ViewCurrentEngagementDisplayInfo(securitytoken, sessionId, "callserver", "ivr", "language");
                }

                return(engagements);
            }
            catch (Exception exception)
            {
                logger.LogMessage(Logger.LogAppender.DuoDefault, "ViewCurrentEngagementDisplayInfo", exception, Logger.LogLevel.Error);
                throw;
            }
        }