示例#1
0
        public static RecordingLevel GetRecordingLevel(GetInteractionArguments args)
        {
            using (NexusContext ctx = new NexusContext())
            {
                Circuit circuit = ctx.Circuits.FirstOrDefault(c => c.Ani == args.Ani && c.SiteId == args.SiteId);
                if (circuit == null)
                {
                    throw new ArgumentException("Invalid ANI or Site ID");
                }

                return(GetRecordingLevel(args.Ani, args.SiteId, args.InmateId, args.ExternalIdentifier, circuit.RecordingLevel));
            }
        }
        public static void SetIsRecorded(this EventCallStartMsg msg)
        {
            if (!msg.IsDataValid() || String.IsNullOrWhiteSpace(msg.Header?.CalledNumber))
            {
                return;
            }

            GetInteractionArguments args = new GetInteractionArguments();

            args.Ani                = msg.Header.Ani;
            args.InmateId           = msg.Header.Pin;
            args.ExternalIdentifier = msg.Header.CalledNumber;
            args.SiteId             = msg.Header.SiteId;

            RecordingLevel recordingLevel = CircuitRepo.GetRecordingLevel(args);

            msg.Data.Recorded = recordingLevel != RecordingLevel.DoNotRecord;
        }