{"$schema":"https://dataexplorer.azure.com/static/d/schema/51/dashboard.json","schema_version":"51","title":"Call Record Insights Demo Dashboard","tiles":[{"id":"3d1e7cfa-2c1d-4d32-83bb-fb9f8bc759b1","title":"Average Call Duration HH:MM:SS","visualType":"card","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":0,"y":0,"width":4,"height":5},"queryRef":{"kind":"query","queryId":"39bbe035-6804-494f-99a9-51bc733f9891"},"visualOptions":{"multiStat__textSize":"auto","multiStat__valueColumn":"avg_Duration","colorRulesDisabled":false,"colorRules":[],"colorStyle":"light"}},{"id":"edcc0e42-aefa-4246-8b54-45b613cf2fae","title":"Calls By Location","visualType":"map","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":4,"y":0,"width":9,"height":9},"queryRef":{"kind":"query","queryId":"085abbfa-82c0-45b3-8eb6-a433c84f1926"},"visualOptions":{"map__type":"bubble","map__latitudeColumn":"Latitude","map__longitudeColumn":"Longitude","map__labelColumn":null,"map__sizeColumn":"Streams","map__sizeDisabled":false,"map__geoType":"numeric","map__geoPointColumn":"CountryName"}},{"id":"f5e7f32c-5bcf-48e0-b90f-1b399f0da50d","title":"Streams By Country & ISP","visualType":"table","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":13,"y":0,"width":9,"height":9},"queryRef":{"kind":"query","queryId":"77c4b08b-7ec3-4221-b91a-6ddd1d64675c"},"visualOptions":{"table__enableRenderLinks":true,"colorRules":[],"colorRulesDisabled":true,"colorStyle":"light","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[],"table__renderLinks":[]}},{"id":"bc1ee0ac-a6b1-4ad4-934d-fd12a509df4f","title":"Top Users","visualType":"table","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":0,"y":9,"width":4,"height":8},"queryRef":{"kind":"query","queryId":"2dc6b276-1aaf-4433-bdf0-470caf529f61"},"visualOptions":{"table__enableRenderLinks":true,"colorRules":[],"colorRulesDisabled":true,"colorStyle":"light","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[],"table__renderLinks":[]}},{"id":"731f719d-b409-4e99-b770-4dea13de1828","title":"Top 10 Country Call Volume","visualType":"line","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":4,"y":9,"width":9,"height":8},"queryRef":{"kind":"query","queryId":"d4ff5248-954c-4f71-8fcd-c7fc303853a6"},"visualOptions":{"multipleYAxes":{"base":{"id":"-1","label":"","columns":[],"yAxisMaximumValue":null,"yAxisMinimumValue":null,"yAxisScale":"linear","horizontalLines":[]},"additional":[],"showMultiplePanels":false},"hideLegend":false,"xColumnTitle":"","xColumn":null,"yColumns":null,"seriesColumns":null,"xAxisScale":"linear","verticalLine":"","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[]}},{"id":"690b634d-321b-459f-bf3b-9b7efee18500","title":"Calls Last 30 days","visualType":"card","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":0,"y":5,"width":4,"height":4},"queryRef":{"kind":"query","queryId":"15b759ff-77e9-40b3-99f8-8655e53ca5a3"},"visualOptions":{"multiStat__textSize":"auto","multiStat__valueColumn":null,"colorRulesDisabled":false,"colorRules":[],"colorStyle":"light"}},{"id":"a5c55751-fe4b-4d29-bf14-bad495f5855d","title":"Top 10 Country Avg Packet Loss Rate","visualType":"line","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":13,"y":9,"width":9,"height":8},"queryRef":{"kind":"query","queryId":"0e384af5-ce74-43cd-9c8b-8fc407914a8e"},"visualOptions":{"multipleYAxes":{"base":{"id":"-1","label":"","columns":[],"yAxisMaximumValue":null,"yAxisMinimumValue":null,"yAxisScale":"linear","horizontalLines":[]},"additional":[],"showMultiplePanels":false},"hideLegend":false,"xColumnTitle":"","xColumn":null,"yColumns":null,"seriesColumns":null,"xAxisScale":"linear","verticalLine":"","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[]}},{"id":"1cb1d738-75a9-4ef9-bd4f-0932acef4f21","title":"Audio Percent Poor Anomalies","visualType":"line","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":0,"y":24,"width":13,"height":9},"queryRef":{"kind":"query","queryId":"ba9ea19c-020e-45b5-a9a6-cfea45cbe713"},"visualOptions":{"multipleYAxes":{"base":{"id":"-1","label":"","columns":[],"yAxisMaximumValue":null,"yAxisMinimumValue":null,"yAxisScale":"linear","horizontalLines":[]},"additional":[{"id":"e683070d-e669-42e6-bd3c-47d9046709ad","columns":["IncreasePercent"],"label":"","yAxisMaximumValue":null,"yAxisMinimumValue":null,"yAxisScale":"linear","horizontalLines":[]}],"showMultiplePanels":false},"hideLegend":false,"xColumnTitle":"","xColumn":null,"yColumns":["anomalies","IncreasePercent"],"seriesColumns":null,"xAxisScale":"linear","verticalLine":"","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[]}},{"id":"f49282f5-c434-49aa-ba70-908d54896013","title":"Stream Volume Anomalies","visualType":"line","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":13,"y":24,"width":9,"height":9},"queryRef":{"kind":"query","queryId":"87d5192a-5ca6-4a52-95d7-996f5bcbf7b3"},"visualOptions":{"multipleYAxes":{"base":{"id":"-1","label":"","columns":[],"yAxisMaximumValue":null,"yAxisMinimumValue":null,"yAxisScale":"linear","horizontalLines":[]},"additional":[{"id":"c533763f-b0ff-4f53-accb-4b489b448469","columns":["RawStreams"],"label":"","yAxisMaximumValue":null,"yAxisMinimumValue":null,"yAxisScale":"linear","horizontalLines":[]}],"showMultiplePanels":false},"hideLegend":false,"xColumnTitle":"","xColumn":"WeekStart","yColumns":["anomalies","RawStreams"],"seriesColumns":null,"xAxisScale":"linear","verticalLine":"","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[]}},{"id":"8b231cc7-2f6f-45b7-9cf2-90144e8c9dfc","title":"PSTN Calls","visualType":"table","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":0,"y":17,"width":9,"height":7},"queryRef":{"kind":"query","queryId":"b74fa16d-da2b-4334-acdf-b71f77af7919"},"visualOptions":{"table__enableRenderLinks":true,"colorRules":[],"colorRulesDisabled":true,"colorStyle":"light","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[],"table__renderLinks":[]}},{"id":"7692f77b-17d2-4a62-87a0-f52765dce1e9","title":"Auto Attendant Calls","visualType":"table","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":9,"y":17,"width":7,"height":7},"queryRef":{"kind":"query","queryId":"6c337b17-6943-4ad4-8c27-f90fc495dcd9"},"visualOptions":{"table__enableRenderLinks":true,"colorRules":[],"colorRulesDisabled":true,"colorStyle":"light","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[],"table__renderLinks":[]}},{"id":"9461f82e-6c9b-4f6c-89bb-06b47f2bdd81","title":"Call Queue Calls","visualType":"table","pageId":"911cfef0-8395-4679-b33b-14db48f26225","layout":{"x":16,"y":17,"width":6,"height":7},"queryRef":{"kind":"query","queryId":"c2760791-e209-45cf-8729-2ede18784b6f"},"visualOptions":{"table__enableRenderLinks":true,"colorRules":[],"colorRulesDisabled":true,"colorStyle":"light","crossFilterDisabled":false,"drillthroughDisabled":false,"crossFilter":[],"drillthrough":[],"table__renderLinks":[]}}],"baseQueries":[{"id":"b6c3f3e3-7ffc-46fd-b984-270ec30f4909","queryId":"309ed016-ef07-4b89-bae3-09453e8fbd7a","variableName":"IPL"},{"id":"b9b26411-c699-485b-b76b-0a81fdf8a9ed","queryId":"8c2b7a60-d0ee-48fa-858f-cc2ea445160c","variableName":"ASNL"},{"id":"11ee717d-df44-4923-a12b-040626a5f2b8","queryId":"82b28b58-20be-459d-affa-4d7867b153c1","variableName":"BaseQuery"},{"id":"63b016d6-1fd9-45e6-85db-d097fbe931b6","queryId":"be886eea-1e54-4f2a-b34b-6038f3b88198","variableName":"Countries"}],"parameters":[{"kind":"duration","id":"82a92fcc-d5f3-4f9b-be4e-38ab2bf49701","displayName":"Time range","description":"","beginVariableName":"_startTime","endVariableName":"_endTime","defaultValue":{"kind":"dynamic","count":7,"unit":"days"},"showOnPages":{"kind":"all"}}],"dataSources":[{"id":"a9d9e216-2fab-4152-8a16-664daba76165","kind":"manual-kusto","scopeId":"kusto","name":"CRI","clusterUri":", update CRI under \"Data sources\"","database":"CallRecordInsights"}],"pages":[{"name":"Page 1","id":"911cfef0-8395-4679-b33b-14db48f26225"}],"queries":[{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| extend Duration = CallEndTime - CallStartTime\n| summarize format_timespan(avg(Duration),'HH:mm:ss')","id":"39bbe035-6804-494f-99a9-51bc733f9891","usedVariables":["BaseQuery"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| summarize count() by Callee_ReflexiveIPAddress, bin(CallStartTime, 1d)\n| evaluate ipv4_lookup(IPL, Callee_ReflexiveIPAddress, Range)\n| summarize Streams = sum(count_) by CountryName, Latitude, Longitude","id":"085abbfa-82c0-45b3-8eb6-a433c84f1926","usedVariables":["BaseQuery","IPL"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| summarize count() by Callee_ReflexiveIPAddress\n| evaluate ipv4_lookup(IPL, Callee_ReflexiveIPAddress, Range)\n| evaluate ipv4_lookup(ASNL, Callee_ReflexiveIPAddress, Range)\n| summarize Streams = sum(count_) by CountryName, asn, ISP","id":"77c4b08b-7ec3-4221-b91a-6ddd1d64675c","usedVariables":["ASNL","BaseQuery","IPL"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| where isnotempty(Caller_UserDisplayName)\n| summarize count() by User = Caller_UserDisplayName\n| union (BaseQuery\n | where isnotempty(Callee_UserDisplayName)\n | summarize count() by User = Callee_UserDisplayName)\n| summarize Calls = sum(count_) by User\n| order by Calls desc ","id":"2dc6b276-1aaf-4433-bdf0-470caf529f61","usedVariables":["BaseQuery"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| summarize count() by Callee_ReflexiveIPAddress, bin(CallStartTime, 1d)\n| evaluate ipv4_lookup(IPL, Callee_ReflexiveIPAddress, Range)\n| summarize Streams = sum(count_) by CountryName, CallStartTime\n| where CountryName in (Countries)","id":"d4ff5248-954c-4f71-8fcd-c7fc303853a6","usedVariables":["BaseQuery","Countries","IPL"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"CallRecords\n| where CallStartTime > ago(30d)\n| summarize dcount(CallId)","id":"15b759ff-77e9-40b3-99f8-8655e53ca5a3","usedVariables":[]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| summarize count(), AvgLoss = (avg(AveragePacketLossRate) * 100) by Callee_ReflexiveIPAddress, bin(CallStartTime, 1d)\n| evaluate ipv4_lookup(IPL, Callee_ReflexiveIPAddress, Range, return_unmatched = true)\n| summarize Loss = avg(AvgLoss) by CountryName, CallStartTime\n| where CountryName in (Countries)","id":"0e384af5-ce74-43cd-9c8b-8fc407914a8e","usedVariables":["BaseQuery","Countries","IPL"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"let ThreshTuneNPCR = 1.75;\nBaseQuery\n| where isnotempty(CallStartTime)\n| where MediaLabel == 'main-audio'\n| invoke ApplyClassifiers()\n| summarize count(), PoorStreams = countif(IsClassifiedPoorStream == true), GoodStreams = countif(IsClassifiedPoorStream == false) by MediaLabel, bin(CallStartTime, 1d)\n| extend PercentPoor = todouble(PoorStreams) / todouble(count_) * 100\n| make-series StreamCount = sum(count_), PoorSeries=sum(PercentPoor) on CallStartTime step 1d \n| extend (anomalies, score, baseline) = series_decompose_anomalies(PoorSeries, ThreshTuneNPCR, 0, 'avg',0,'tukey')\n| mvexpand CallStartTime, anomalies,score,baseline,PoorSeries, StreamCount\n| project WeekStart = todatetime(CallStartTime), WeekEnd = datetime_add('day',7,todatetime(CallStartTime)), tolong(anomalies),score, baseline,AnomalyType = 'PercentPoor',KHIValue = PoorSeries,StreamCount\n| order by WeekStart asc\n| extend IncreasePercent = (todouble(KHIValue) - todouble(baseline))/todouble(baseline) * 100;\n","id":"ba9ea19c-020e-45b5-a9a6-cfea45cbe713","usedVariables":["BaseQuery"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"let ThreshTuneVolume = 0.25;\nBaseQuery\n| where isnotempty(CallStartTime)\n| summarize count() by bin(CallStartTime, 1d)\n| make-series StreamCount = sum(count_) on CallStartTime step 1d \n| extend (anomalies, score, baseline) = series_decompose_anomalies(StreamCount, ThreshTuneVolume, 0, 'avg',0,'tukey')\n| mvexpand CallStartTime, anomalies,score,baseline, StreamCount\n| project WeekStart = todatetime(CallStartTime), WeekEnd = datetime_add('day',7,todatetime(CallStartTime)), tolong(anomalies),score, baseline,AnomalyType = 'StreamCount',KHIValue = StreamCount\n| order by WeekStart asc\n| extend IncreasePercent = (todouble(KHIValue) - todouble(baseline))/todouble(baseline) * 100\n| extend RawStreams = todouble(KHIValue);\n","id":"87d5192a-5ca6-4a52-95d7-996f5bcbf7b3","usedVariables":["BaseQuery"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| where isnotempty(Caller_PhoneId) or isnotempty(Callee_PhoneId)\n| summarize dcount(CallId) by Callee_PhoneId, Caller_PhoneId,Callee_PhoneDisplayName ,Caller_PhoneDisplayName, Callee_UserDisplayName, Caller_UserDisplayName, CallId, Callee_ApplicationInstanceDisplayName, Caller_AcsApplicationInstanceDisplayName","id":"b74fa16d-da2b-4334-acdf-b71f77af7919","usedVariables":["BaseQuery"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| where Caller_ServiceRole == 'skypeForBusinessAutoAttendant' or Callee_ServiceRole == 'skypeForBusinessAutoAttendant'\n| summarize dcount(CallId) by Callee_PhoneId, Caller_PhoneId,Callee_PhoneDisplayName ,Caller_PhoneDisplayName, Callee_UserDisplayName, Caller_UserDisplayName, CallId","id":"6c337b17-6943-4ad4-8c27-f90fc495dcd9","usedVariables":["BaseQuery"]},{"dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| where Caller_ServiceRole == 'skypeForBusinessCallQueues' or Callee_ServiceRole == 'skypeForBusinessCallQueues'\n| summarize dcount(CallId) by Callee_PhoneId, Caller_PhoneId,Callee_PhoneDisplayName ,Caller_PhoneDisplayName, Callee_UserDisplayName, Caller_UserDisplayName, CallId","id":"c2760791-e209-45cf-8729-2ede18784b6f","usedVariables":["BaseQuery"]},{"id":"309ed016-ef07-4b89-bae3-09453e8fbd7a","dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"IPLocation\n| where CountryName != '-'\n| extend Range = ipv4_range_to_cidr_list(\n strcat_delim('.', binary_and(binary_shift_right(ipFrom,24),255), binary_and(binary_shift_right(ipFrom,16),255), binary_and(binary_shift_right(ipFrom,8),255), binary_and(ipFrom,255)), \n strcat_delim('.', binary_and(binary_shift_right(ipTo,24),255), binary_and(binary_shift_right(ipTo,16),255), binary_and(binary_shift_right(ipTo,8),255), binary_and(ipTo,255)))\n| project Range, CountryName, Latitude, Longitude, ipFrom, ipTo\n| mv-expand Range to typeof(string)","usedVariables":[]},{"id":"8c2b7a60-d0ee-48fa-858f-cc2ea445160c","dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"ASN\n| where asn != '-'\n| where ['as'] != 'DoD Network Information Center'\n| extend Range = ipv4_range_to_cidr_list(\n strcat_delim('.', binary_and(binary_shift_right(ipFrom,24),255), binary_and(binary_shift_right(ipFrom,16),255), binary_and(binary_shift_right(ipFrom,8),255), binary_and(ipFrom,255)), \n strcat_delim('.', binary_and(binary_shift_right(ipTo,24),255), binary_and(binary_shift_right(ipTo,16),255), binary_and(binary_shift_right(ipTo,8),255), binary_and(ipTo,255)))\n| mv-expand Range to typeof(string)\n| summarize by Range, asn, ISP = ['as'];","usedVariables":[]},{"id":"82b28b58-20be-459d-affa-4d7867b153c1","dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"CallRecords\n| where CallStartTime between (_startTime .. _endTime)","usedVariables":["_endTime","_startTime"]},{"id":"be886eea-1e54-4f2a-b34b-6038f3b88198","dataSource":{"kind":"inline","dataSourceId":"a9d9e216-2fab-4152-8a16-664daba76165"},"text":"BaseQuery\n| summarize count() by Callee_ReflexiveIPAddress, bin(CallStartTime, 1d)\n| evaluate ipv4_lookup(IPL, Callee_ReflexiveIPAddress, Range)\n| summarize Streams = sum(count_) by CountryName\n| top 10 by Streams;","usedVariables":["BaseQuery","IPL"]}]}