-
Notifications
You must be signed in to change notification settings - Fork 0
/
CallLogger.cs
53 lines (49 loc) · 1.94 KB
/
CallLogger.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.IO;
using System.Web;
using System.Xml;
using System.Diagnostics;
using LothianProductions.VoIP.State;
namespace LothianProductions.VoIP
{
/// <summary>
/// Class to log error/applications messages
/// </summary>
public class CallLogger
{
public CallLogger() { }
protected readonly static CallLogger mInstance = new CallLogger();
public static CallLogger Instance() {
return mInstance;
}
public void Log(CallRecord call) {
Log(call.Device, call.Line, call.Call, call.StartTime, call.EndTime );
}
public void Log( Device device, Line line, Call call, DateTime starttime, DateTime endtime ) {
lock (this) {
string strFile = "";
try {
strFile = System.Configuration.ConfigurationManager.AppSettings["callLogFile"];
} catch (System.Configuration.SettingsPropertyNotFoundException) {
strFile = System.Environment.CurrentDirectory + "\\calls.log";
}
if (strFile == "") {
strFile = System.Environment.CurrentDirectory + "\\calls.log";
} else {
strFile = System.Environment.CurrentDirectory + "\\" + strFile;
}
StreamWriter objLogFile = File.AppendText(strFile);
string strLine = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss.ffffff");
string phone = "unknown";
if (call.Type == CallType.Inbound) {
phone = line.LastCallerNumber;
} else {
phone = line.LastCalledNumber;
}
strLine += "," + device.Name + "," + call.Name + "," + line.Name + "," + call.Type.ToString() +"," + phone + "," + starttime + "," + endtime + "," + call.Duration;
objLogFile.WriteLine(strLine);
objLogFile.Close();
}
}
}
}