{"id":1787,"date":"2016-10-20T20:07:50","date_gmt":"2016-10-20T20:07:50","guid":{"rendered":"http:\/\/wp.andreas.bieri.name\/myblog\/?p=1787"},"modified":"2016-10-20T20:07:50","modified_gmt":"2016-10-20T20:07:50","slug":"skype-cdr-daten-mit-splunk-auswerten-teil-3","status":"publish","type":"post","link":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/","title":{"rendered":"Skype CDR Daten mit Splunk auswerten (Teil 3)"},"content":{"rendered":"<p>Siehe <a href=\"http:\/\/wp.andreas.bieri.name\/myblog\/index.php\/2016\/08\/23\/skype-cdr-daten-mit-splunk-auswerten\/\" target=\"_blank\">Teil 1<\/a> und <a href=\"http:\/\/wp.andreas.bieri.name\/myblog\/index.php\/2016\/08\/22\/skype-lcsdr-in-splunk-teil-2\/\" target=\"_blank\">Teil 2<\/a>.<\/p>\n<h4>Statistiken f\u00fcr Telefonanrufe<\/h4>\n<p>F\u00fcr die Auswertung der eingehenden und ausgehenden PSTN Anrufe gibts es keine passende Stored Procedure. Hier zeigt sich erneut der nicht konsistente Entwicklungsstand der Monitoring Server Reports. Es ist aber nicht schwer, eine passende Stored Procedure <em>PSTNCallSummaryReport<\/em> zu schreiben. Die Anrufe sind in der Tabelle\u00a0<em>dbo.VoipDetails <\/em>aufgelistet und wir k\u00f6nnen diese entsprechend z\u00e4hlen und stundenweise aggregieren. Die Richtung des Anrufs ist durch die Telefonnummer gegeben, da die interne Seite immer als Audio Call mit einer SIP Adresse erscheint und die externe Seite mit einer Telefonnummer. Mit dieser Unterscheidung lassen sich eingehende und ausgehende Anrufe getrennt erfassen. Die Details eines Anrufs sind aber dann wieder, wie alle Verbindungen \u00fcberhaupt, in der Tabelle <em>dbo.SessionDetails<\/em> zu finden. Das restliche Drumherum der neuen Stored Procedure kann von einem anderen Summary Report \u00fcbernommen und angepasst werden.<\/p>\n<p>&nbsp;<\/p>\n<h4>Stored Procedure\u00a0<em>PSTNCallSummaryReport<\/em><\/h4>\n<p style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\"><span style=\"color: blue;\">USE<\/span> [LcsCDR]<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">GO<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: green;\">\/****** Object:\u00a0 StoredProcedure [dbo].[PSTNCallSummaryReport]\u00a0\u00a0\u00a0 Script Date: 22.09.2016 15:31:18 ******\/<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">SET ANSI_NULLS ON<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">GO<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">SET QUOTED_IDENTIFIER ON<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">GO<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\"><span style=\"color: blue;\">ALTER procedure<\/span> [dbo]<span style=\"color: gray;\">.<\/span>[PSTNCallSummaryReport]<\/p>\n<p style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\"><span lang=\"en-US\">\u00a0\u00a0 <\/span><span lang=\"it\">@_StartTime\u00a0\u00a0\u00a0\u00a0 <\/span><span lang=\"it\" style=\"color: blue;\">datetime <\/span><span lang=\"it\" style=\"color: gray;\">= null,<\/span><\/p>\n<p lang=\"it\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0 @_EndTime\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">datetime <\/span><span style=\"color: gray;\">= null,<\/span><\/p>\n<p style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\"><span lang=\"it\">\u00a0\u00a0 <\/span><span lang=\"en-US\">@_Interval\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span lang=\"en-US\" style=\"color: blue;\">int <\/span><span lang=\"en-US\" style=\"color: gray;\">=<\/span><span lang=\"en-US\"> 5<\/span><span lang=\"en-US\" style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0 @_WindowSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">int <\/span><span style=\"color: gray;\">=<\/span> 5<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\"><span style=\"color: blue;\">WITH RECOMPILE <\/span><span style=\"color: green;\">&#8212; Recompile sprocs that may query large amount of data<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">as<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">begin<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">declare<\/span> @Status <span style=\"color: blue;\">int<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">declare<\/span> @Msg\u00a0\u00a0\u00a0 <span style=\"color: blue;\">int<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">set<\/span> @Msg <span style=\"color: gray;\">=<\/span> 0<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: green;\">&#8212; create table for time fields<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">create table<\/span> #TimeAxis <span style=\"color: gray;\">(<\/span> StartTime <span style=\"color: blue;\">datetime<\/span><span style=\"color: gray;\">,<\/span> EndTime <span style=\"color: blue;\">datetime <\/span><span style=\"color: gray;\">)<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">if <\/span><span style=\"color: gray;\">(<\/span>@_EndTime <span style=\"color: gray;\">is null) <\/span><span style=\"color: blue;\">select<\/span> @_EndTime <span style=\"color: gray;\">= <\/span><span style=\"color: fuchsia;\">getutcdate<\/span><span style=\"color: gray;\">()<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">if <\/span><span style=\"color: gray;\">(<\/span>@_StartTime <span style=\"color: gray;\">is null) <\/span><span style=\"color: blue;\">select<\/span> @_StartTime <span style=\"color: gray;\">= <\/span><span style=\"color: fuchsia;\">dateadd<\/span><span style=\"color: gray;\">(<\/span><span style=\"color: fuchsia;\">hour<\/span><span style=\"color: gray;\">, &#8211;<\/span>1<span style=\"color: gray;\">*<\/span>1<span style=\"color: gray;\">,<\/span> @_EndTime<span style=\"color: gray;\">)<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">if <\/span><span style=\"color: gray;\">(<\/span>dbo<span style=\"color: gray;\">.<\/span>pValidReportingDateTime<span style=\"color: gray;\">(<\/span>@_StartTime<span style=\"color: gray;\">,<\/span> @_EndTime<span style=\"color: gray;\">,<\/span> @_Interval<span style=\"color: gray;\">,<\/span> @_WindowSize<span style=\"color: gray;\">) =<\/span> 0<span style=\"color: gray;\">) <\/span><span style=\"color: blue;\">begin<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">set<\/span> @Msg <span style=\"color: gray;\">=<\/span> 50500<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">goto<\/span> errorhandler<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">end<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">exec<\/span> @Status <span style=\"color: gray;\">=<\/span> dbo<span style=\"color: gray;\">.<\/span>RtcPopulateTimeAxis @_StartTime<span style=\"color: gray;\">,<\/span> @_EndTime<span style=\"color: gray;\">,<\/span> @_Interval<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">if <\/span><span style=\"color: gray;\">(<\/span>@Status <span style=\"color: gray;\">&lt;&gt;<\/span> 0<span style=\"color: gray;\">) <\/span><span style=\"color: blue;\">begin<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">set<\/span> @Msg <span style=\"color: gray;\">=<\/span> 50500<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">goto<\/span> errorhandler<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">end<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Nach diesem Gepl\u00e4nkel folgt hier der eigentliche Code:<\/p>\n<p>&nbsp;<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: green;\">&#8212; decide, if the call is inbound or outbound traffic<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">SELECT CASE WHEN <\/span><span style=\"color: gray;\">LEFT(<\/span>Users1<span style=\"color: gray;\">.<\/span>UserUri<span style=\"color: gray;\">,<\/span>1<span style=\"color: gray;\">) = <\/span><span style=\"color: red;\">&#8218;+&#8216; <\/span><span style=\"color: blue;\">THEN <\/span><span style=\"color: red;\">&#8218;inbound&#8216; <\/span><span style=\"color: blue;\">ELSE <\/span><span style=\"color: red;\">&#8218;outbound&#8216; <\/span><span style=\"color: blue;\">END AS<\/span> Typ<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VoipDetails<span style=\"color: gray;\">.<\/span>SessionIdTime [Date]<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: fuchsia;\">CONVERT<\/span><span style=\"color: gray;\">(<\/span><span style=\"color: blue;\">varchar<\/span><span style=\"color: gray;\">(<\/span>10<span style=\"color: gray;\">),<\/span>SessionDetails<span style=\"color: gray;\">.<\/span>SessionEndTime <span style=\"color: gray;\">&#8211;<\/span> VoipDetails<span style=\"color: gray;\">.<\/span>SessionIdTime<span style=\"color: gray;\">,<\/span>108<span style=\"color: gray;\">)<\/span> [Time]<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Phones<span style=\"color: gray;\">.<\/span>PhoneUri [From Number]<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Users1<span style=\"color: gray;\">.<\/span>UserUri [FromSip]<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Phones1<span style=\"color: gray;\">.<\/span>PhoneUri [Number Dialed]<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SessionDetails<span style=\"color: gray;\">.<\/span>SessionEndTime<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VoipDetails<span style=\"color: gray;\">.<\/span>SessionIdTime<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: green;\">&#8212; write into temporary table<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">INTO<\/span> #pstntable<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">FROM<\/span> VoipDetails <span style=\"color: gray;\">LEFT OUTER JOIN<\/span> SessionDetails<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">ON<\/span> VoipDetails<span style=\"color: gray;\">.<\/span>SessionIdTime <span style=\"color: gray;\">=<\/span> SessionDetails<span style=\"color: gray;\">.<\/span>SessionIdTime <span style=\"color: gray;\">AND<\/span> VoipDetails<span style=\"color: gray;\">.<\/span>SessionIdSeq <span style=\"color: gray;\">=<\/span> SessionDetails<span style=\"color: gray;\">.<\/span>SessionIdSeq<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: gray;\">LEFT OUTER JOIN<\/span>\u00a0 Phones<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">ON<\/span> VoipDetails<span style=\"color: gray;\">.<\/span>FromNumberId <span style=\"color: gray;\">=<\/span> Phones<span style=\"color: gray;\">.<\/span>PhoneId<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: gray;\">LEFT OUTER JOIN<\/span>\u00a0 Phones Phones1<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">ON<\/span> VoipDetails<span style=\"color: gray;\">.<\/span>ConnectedNumberId <span style=\"color: gray;\">=<\/span> Phones1<span style=\"color: gray;\">.<\/span>PhoneId<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: gray;\">LEFT OUTER JOIN<\/span>\u00a0 Users Users1<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">ON<\/span> SessionDetails<span style=\"color: gray;\">.<\/span>User1Id <span style=\"color: gray;\">=<\/span> Users1<span style=\"color: gray;\">.<\/span>UserId<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">group by<\/span> Phones<span style=\"color: gray;\">.<\/span>PhoneUri<span style=\"color: gray;\">,<\/span> Users1<span style=\"color: gray;\">.<\/span>UserUri<span style=\"color: gray;\">,<\/span> VoipDetails<span style=\"color: gray;\">.<\/span>SessionIdTime<span style=\"color: gray;\">,<\/span> SessionDetails<span style=\"color: gray;\">.<\/span>SessionEndTime<span style=\"color: gray;\">,<\/span> Phones1<span style=\"color: gray;\">.<\/span>PhoneUri<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">select<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 T<span style=\"color: gray;\">.<\/span>StartTime <span style=\"color: blue;\">as Sample<\/span><span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: fuchsia;\">sum<\/span><span style=\"color: gray;\">(<\/span><span style=\"color: blue;\">case when<\/span> Typ <span style=\"color: gray;\">= <\/span><span style=\"color: red;\">&#8218;outbound&#8216; <\/span><span style=\"color: blue;\">then<\/span> 1 <span style=\"color: blue;\">else<\/span> 0 <span style=\"color: blue;\">end<\/span><span style=\"color: gray;\">) <\/span><span style=\"color: blue;\">as<\/span> outbound<span style=\"color: gray;\">,<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: fuchsia;\">sum<\/span><span style=\"color: gray;\">(<\/span><span style=\"color: blue;\">case when<\/span> Typ <span style=\"color: gray;\">= <\/span><span style=\"color: red;\">&#8218;inbound&#8216; <\/span><span style=\"color: blue;\">then<\/span> 1 <span style=\"color: blue;\">else<\/span> 0 <span style=\"color: blue;\">end<\/span><span style=\"color: gray;\">) <\/span><span style=\"color: blue;\">as<\/span> inbound<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">from<\/span> #TimeAxis T<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: gray;\">left join<\/span> #pstntable p <span style=\"color: blue;\">on<\/span> T<span style=\"color: gray;\">.<\/span>Starttime <span style=\"color: gray;\">&lt;=<\/span> p<span style=\"color: gray;\">.<\/span><span style=\"color: blue;\">Date <\/span><span style=\"color: gray;\">and<\/span> T<span style=\"color: gray;\">.<\/span>EndTime <span style=\"color: gray;\">&gt;=<\/span> p<span style=\"color: gray;\">.<\/span><span style=\"color: blue;\">Date<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">group by<\/span> T<span style=\"color: gray;\">.<\/span>StartTime<\/p>\n<p>&nbsp;<\/p>\n<p>&#8230;und noch die standard Fehlerbehandlung und das Aufr\u00e4umen:<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">errorhandler:<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">if <\/span><span style=\"color: gray;\">(<\/span>@Msg <span style=\"color: gray;\">&lt;&gt;<\/span> 0<span style=\"color: gray;\">) <\/span><span style=\"color: blue;\">begin<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">exec<\/span> dbo<span style=\"color: gray;\">.<\/span>DbRaiseError <span style=\"color: fuchsia;\">@@procid<\/span><span style=\"color: gray;\">,<\/span> @Msg<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">end<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: green;\">&#8211;delete temporary tables<\/span><\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">drop table<\/span> #TimeAxis<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue;\">drop table<\/span> #pstntable<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt;\">\u00a0\u00a0\u00a0 <span style=\"color: blue;\">return<\/span> @Msg<\/p>\n<p lang=\"en-US\" style=\"margin: 0in; font-family: Consolas; font-size: 9.5pt; color: blue;\">end<\/p>\n<p>&nbsp;<\/p>\n<h4>Aufruf der Stored Procedure mit Powershell<\/h4>\n<p>Der Aufruf kann jetzt ganz analog wie bei den built-in Summary Reports unter dem gew\u00e4hlten Namen <em>PSTNCallSummaryReport\u00a0<\/em>erfolgen. Das Ergebnis ist eine aggregierte CSV-Datei mit nach Richtung getrennt summierten Anrufen.\u00a0Im Splunk kann die Datei wie im Teil 2 beschrieben indiziert werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Siehe Teil 1 und Teil 2. Statistiken f\u00fcr Telefonanrufe F\u00fcr die Auswertung der eingehenden und ausgehenden PSTN Anrufe gibts es keine passende Stored Procedure. Hier zeigt sich erneut der nicht konsistente Entwicklungsstand der Monitoring Server Reports. Es ist aber nicht schwer, eine passende Stored Procedure PSTNCallSummaryReport zu schreiben. Die Anrufe sind in der Tabelle\u00a0dbo.VoipDetails aufgelistet [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[130],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Skype CDR Daten mit Splunk auswerten (Teil 3) - Merkbar.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Skype CDR Daten mit Splunk auswerten (Teil 3) - Merkbar.\" \/>\n<meta property=\"og:description\" content=\"Siehe Teil 1 und Teil 2. Statistiken f\u00fcr Telefonanrufe F\u00fcr die Auswertung der eingehenden und ausgehenden PSTN Anrufe gibts es keine passende Stored Procedure. Hier zeigt sich erneut der nicht konsistente Entwicklungsstand der Monitoring Server Reports. Es ist aber nicht schwer, eine passende Stored Procedure PSTNCallSummaryReport zu schreiben. Die Anrufe sind in der Tabelle\u00a0dbo.VoipDetails aufgelistet [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Merkbar.\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-20T20:07:50+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"wp_blogadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/#website\",\"url\":\"http:\/\/wp.andreas.bieri.name\/myblog\/\",\"name\":\"Merkbar.\",\"description\":\"IT, Elektronik und Mathematik\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/wp.andreas.bieri.name\/myblog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/#webpage\",\"url\":\"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/\",\"name\":\"Skype CDR Daten mit Splunk auswerten (Teil 3) - Merkbar.\",\"isPartOf\":{\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/#website\"},\"datePublished\":\"2016-10-20T20:07:50+00:00\",\"dateModified\":\"2016-10-20T20:07:50+00:00\",\"author\":{\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d\"},\"breadcrumb\":{\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"http:\/\/wp.andreas.bieri.name\/myblog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Skype CDR Daten mit Splunk auswerten (Teil 3)\"}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d\",\"name\":\"wp_blogadmin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/wp.andreas.bieri.name\/myblog\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g\",\"caption\":\"wp_blogadmin\"},\"url\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/author\/wp_blogadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Skype CDR Daten mit Splunk auswerten (Teil 3) - Merkbar.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/","og_locale":"de_DE","og_type":"article","og_title":"Skype CDR Daten mit Splunk auswerten (Teil 3) - Merkbar.","og_description":"Siehe Teil 1 und Teil 2. Statistiken f\u00fcr Telefonanrufe F\u00fcr die Auswertung der eingehenden und ausgehenden PSTN Anrufe gibts es keine passende Stored Procedure. Hier zeigt sich erneut der nicht konsistente Entwicklungsstand der Monitoring Server Reports. Es ist aber nicht schwer, eine passende Stored Procedure PSTNCallSummaryReport zu schreiben. Die Anrufe sind in der Tabelle\u00a0dbo.VoipDetails aufgelistet [&hellip;]","og_url":"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/","og_site_name":"Merkbar.","article_published_time":"2016-10-20T20:07:50+00:00","twitter_card":"summary","twitter_misc":{"Verfasst von":"wp_blogadmin","Gesch\u00e4tzte Lesezeit":"3 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"http:\/\/wp.andreas.bieri.name\/myblog\/#website","url":"http:\/\/wp.andreas.bieri.name\/myblog\/","name":"Merkbar.","description":"IT, Elektronik und Mathematik","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/wp.andreas.bieri.name\/myblog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"WebPage","@id":"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/#webpage","url":"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/","name":"Skype CDR Daten mit Splunk auswerten (Teil 3) - Merkbar.","isPartOf":{"@id":"http:\/\/wp.andreas.bieri.name\/myblog\/#website"},"datePublished":"2016-10-20T20:07:50+00:00","dateModified":"2016-10-20T20:07:50+00:00","author":{"@id":"http:\/\/wp.andreas.bieri.name\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d"},"breadcrumb":{"@id":"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/wp.andreas.bieri.name\/myblog\/2016\/10\/20\/skype-cdr-daten-mit-splunk-auswerten-teil-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"http:\/\/wp.andreas.bieri.name\/myblog\/"},{"@type":"ListItem","position":2,"name":"Skype CDR Daten mit Splunk auswerten (Teil 3)"}]},{"@type":"Person","@id":"http:\/\/wp.andreas.bieri.name\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d","name":"wp_blogadmin","image":{"@type":"ImageObject","@id":"http:\/\/wp.andreas.bieri.name\/myblog\/#personlogo","inLanguage":"de","url":"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g","contentUrl":"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g","caption":"wp_blogadmin"},"url":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/author\/wp_blogadmin\/"}]}},"_links":{"self":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/posts\/1787"}],"collection":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/comments?post=1787"}],"version-history":[{"count":0,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/posts\/1787\/revisions"}],"wp:attachment":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/media?parent=1787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/categories?post=1787"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/tags?post=1787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}