forked from Montesuma80/3cx-web-API
-
Notifications
You must be signed in to change notification settings - Fork 0
/
getcallerid.cs
64 lines (60 loc) · 2.28 KB
/
getcallerid.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
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Text;
using TCX.Configuration;
using TCX.PBXAPI;
using System.Threading;
using System.IO;
using System.Reflection;
using System.Linq;
using System.Net;
namespace WebAPI
{
public class getcallqueuenumber
{
public static string showid(string args1)
{
string mod2 = "error";
string Queue_number = "";
string Queuename = "";
using (var dn = PhoneSystem.Root.GetDNByNumber(args1))
{
using (var connections = dn.GetActiveConnections().GetDisposer())
{
var alltakenconnections = connections.ToDictionary(x => x, y => y.OtherCallParties);
foreach (var kv in alltakenconnections)
{
var owner = kv.Key;
if (owner.AttachedData.ContainsKey("requested-target-id"))
{
Queue_number = owner.AttachedData.GetValueOrDefault("requested-target-id");
Queue_number = Queue_number.Substring(0,4);
PhoneSystem ps = PhoneSystem.Root;
var qa =new Queue[] { ps.GetDNByNumber(Queue_number) as Queue };
Logger.WriteLine( qa[0].Name);
Queuename = qa[0].Name;
}
else
{
Queuename = "Direkter Anruf";
}
mod2 = owner.AttachedData.GetValueOrDefault("extnumber");
Console.ForegroundColor = ConsoleColor.Green;
Logger.WriteLine("Called Number: " + mod2);
Logger.WriteLine("Called Queue: " + Queue_number);
Console.ResetColor();
mod2= "Queue: " + Queuename + " Anrufer: " + mod2;
}
}
if (mod2 == "error")
{
return "idle";
}
else
{
return mod2;
}
}
}
}
}