-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.config
225 lines (206 loc) · 15.8 KB
/
App.config
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="hvoipm">
<section name="preferences" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
<section name="deviceStateMonitors" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
<section name="behaviours" type="LothianProductions.Util.Settings.SectionHandler, LothianProductionsCommon" />
</sectionGroup>
</configSections>
<hvoipm>
<preferences>
<add key="startupCheckForUpdates" value="false" />
</preferences>
<!--
Each device monitor that the user wishses to configure can be defined here.
Multiple monitors can be wired up at a time if required. The application itself
permits multiple listenings of the same type to run simultaneously, although this
configuration format doesn't yet.
Any monitor-specific options are set towards the end of this file, in the "appSettings"
section. Monitor-specific options are preceded by the monitor's classname.
-->
<deviceStateMonitors>
<!-- This is the default Linksys PAP2 monitor. -->
<add key="Linksys PAP2" value="LothianProductions.VoIP.Monitor.Impl.LinksysPAP2DeviceMonitor" />
<!-- This is the default Linksys PAP2 monitor. -->
<!--<add key="Sipura SPA-3000" value="LothianProductions.VoIP.Monitor.Impl.SipuraSPA3000DeviceMonitor" />-->
<!-- This is the TAPI monitor, which is currently in testing. -->
<!--<add key="Nortel BCM" value="LothianProductions.VoIP.Monitor.Impl.TAPIDeviceMonitor" />-->
</deviceStateMonitors>
<behaviours>
<!--
These behaviour tags allow for customisation of HVoIPM's behaviour on according to
various state changes.
* "stateType" and "property" specify the data in question. For instance, when the
tone of a call changes, the stateType="Call" property="tone" behaviour will be
evaluated.
* "showBubble" indicates that a text bubble should be displayed from the system
tray when a value change has occurred for this property. If a bubble message is
to be displayed, it will be displayed formatted with the "bubbleText" property.
{0} will be substituted with the property's name, {1} with the property's previous
value, and {2} with the property's new value.
* "log" specifies whether a change in that particular property should be logged to
the system log file, as specified below.
* "systemTrayWarning" and "showApplication" define whether HVoIPM should flash its
system tray icon, or pop up the application when the property's new value matches
any of the comma-separated list of values as specified in the "warningCriteria"
field. This allows users to configure HVoIPM to alert them when, for instance,
their line's registration state goes offline.
* "externalProcess" provides a path for an external process how to be executed when
"warningCriteria" is met.
Note that there's currently no support for device, line or call name property changes.
-->
<property stateType="Device" name="" property="name" label="{2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="true" bubbleText="Device renamed from {1} to {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Line" name="" property="name" label="{2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="true" bubbleText="Line renamed from {1} to {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Line" name="" property="lastCalledNumber" label="Last call: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="true" bubbleText="Last call: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Line" name="" property="lastCallerNumber" label="Last caller: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="true" bubbleText="Last caller: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Line" name="" property="registrationState" label="Registration state: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="true" bubbleText="Registration state: {2}" externalProcess="" warningCriteria="" />
<behaviour showBubble="true" systemTrayWarning="true" showApplication="true" log="true" bubbleText="Registration state: {2}" externalProcess="" warningCriteria="Offline,Error" />
</property>
<property stateType="Line" name="" property="messageWaiting" label="Message waiting: {2}">
<behaviour showBubble="true" systemTrayWarning="true" showApplication="false" log="true" bubbleText="You have message(s) waiting" externalProcess="" warningCriteria="True" />
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="true" bubbleText="You have no messages waiting" externalProcess="" warningCriteria="False" />
</property>
<property stateType="Call" name="" property="name" label="{2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Call renamed from {1} to {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="activity" label="Call activity: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Call activity: {2}" externalProcess="" warningCriteria="" />
<behaviour showBubble="true" systemTrayWarning="true" showApplication="false" log="false" bubbleText="Call activity: {2}" externalProcess="" warningCriteria="Dialing,Error,Ringing,Connected" />
</property>
<property stateType="Call" name="" property="duration" label="Call duration: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Call duration: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="type" label="Call type: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Call type: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="tone" label="Tone: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Tone: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="bytesReceived" label="Bytes received: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Bytes received: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="bytesSent" label="Bytes sent: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Bytes sent: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="jitter" label="Jitter: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Jitter: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="roundTripDelay" label="Roundtrip delay: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Roundtrip delay: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="packetLoss" label="Packet loss: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Packet loss: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="packetError" label="Packet error: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Packet error: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="encoder" label="Encoding codec: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Encoding codec: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="decoder" label="Decoding codec: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Decoding codec: {2}" externalProcess="" warningCriteria="" />
</property>
<property stateType="Call" name="" property="decodeLatency" label="Decode latency: {2}">
<behaviour showBubble="true" systemTrayWarning="false" showApplication="false" log="false" bubbleText="Decode latency: {2}" externalProcess="" warningCriteria="" />
</property>
</behaviours>
</hvoipm>
<appSettings>
<!-- Hostname specifies the name of the PAP2 to query. -->
<add key="LinksysPAP2DeviceMonitor:Hostname" value="http://phone" />
<!-- Username specifies the username to use when accessing the PAP2 if any HTTP authentication is required. -->
<add key="LinksysPAP2DeviceMonitor:Username" value="" />
<!-- Username specifies the password to use when accessing the PAP2 if any HTTP authentication is required. -->
<add key="LinksysPAP2DeviceMonitor:Password" value="" />
<!-- RequestTimeout specifies the time after making an HTTP request that the monitor should wait before failing.
If this value is set greater than the PollInterval specified below, the monitor could hit the PAP2 harder than
it can handle, return questionable data, and possibly degrade VoIP performance. 1000 should be sufficient, although
sub-100ms values should be possible. -->
<add key="LinksysPAP2DeviceMonitor:RequestTimeout" value="1000" />
<!-- PollInterval specifies the delay between polling attempts from the monitor to the PAP2. 1000 should be
sufficient, although YMMV. -->
<add key="LinksysPAP2DeviceMonitor:PollInterval" value="1000" />
<!-- Acceptable call type values: IdleDisconnected, Outbound, Inbound, Error -->
<add key="LinksysPAP2DeviceMonitor:CallType:Inbound" value="Inbound" />
<add key="LinksysPAP2DeviceMonitor:CallType:Outbound" value="Outbound" />
<add key="LinksysPAP2DeviceMonitor:CallType:" value="IdleDisconnected" />
<!-- Acceptable tone values: None, Dial, SecureCall, Call, Busy, Error, InvalidNumber -->
<!-- (Note that these call values relate to incoming calls, as outgoing ones typically don't report and "outgoing ring" tone. -->
<add key="LinksysPAP2DeviceMonitor:Tone:None" value="None" />
<add key="LinksysPAP2DeviceMonitor:Tone:Dial" value="Dial" />
<add key="LinksysPAP2DeviceMonitor:Tone:Secure Call Indication" value="SecureCall" />
<add key="LinksysPAP2DeviceMonitor:Tone:Busy" value="Busy" />
<add key="LinksysPAP2DeviceMonitor:Tone:Ring" value="Call" />
<add key="LinksysPAP2DeviceMonitor:Tone:Ring - Callback" value="Call" />
<add key="LinksysPAP2DeviceMonitor:Tone:Ring Back" value="Error" />
<add key="LinksysPAP2DeviceMonitor:Tone:SIT 1" value="InvalidNumber" />
<add key="LinksysPAP2DeviceMonitor:Tone:Reorder" value="Busy" />
<add key="LinksysPAP2DeviceMonitor:Tone:Off Hook Warning" value="Error" />
<add key="LinksysPAP2DeviceMonitor:Tone:Ring - Hold" value="Call" />
<!-- Acceptable activity values: IdleDisconnected, Connected, Dialing, Ringing, Held, Error -->
<add key="LinksysPAP2DeviceMonitor:Activity:Idle" value="IdleDisconnected" />
<add key="LinksysPAP2DeviceMonitor:Activity:Connected" value="Connected" />
<add key="LinksysPAP2DeviceMonitor:Activity:Ringing" value="Ringing" />
<add key="LinksysPAP2DeviceMonitor:Activity:Dialing" value="Dialing" />
<add key="LinksysPAP2DeviceMonitor:Activity:Invalid" value="Error" />
<add key="LinksysPAP2DeviceMonitor:Activity:Calling" value="Ringing" />
<add key="LinksysPAP2DeviceMonitor:Activity:Answering" value="Ringing" />
<add key="LinksysPAP2DeviceMonitor:Activity:Proceeding" value="Ringing" />
<add key="LinksysPAP2DeviceMonitor:Activity:Stunning" value="Ringing" />
<!-- Acceptable registration state values: Offline, Online, Error -->
<add key="LinksysPAP2DeviceMonitor:RegistrationState:Online" value="Online" />
<add key="LinksysPAP2DeviceMonitor:RegistrationState:Registered" value="Online" />
<add key="LinksysPAP2DeviceMonitor:RegistrationState:Can't connect to login server" value="Error" />
<add key="LinksysPAP2DeviceMonitor:RegistrationState:Offline" value="Offline" />
<!-- Hostname specifies the name of the SPA-3000 to query. -->
<add key="SipuraSPA3000DeviceMonitor:Hostname" value="http://phone" />
<!-- Username specifies the username to use when accessing the PAP2 if any HTTP authentication is required. -->
<add key="SipuraSPA3000DeviceMonitor:Username" value="" />
<!-- Username specifies the password to use when accessing the PAP2 if any HTTP authentication is required. -->
<add key="SipuraSPA3000DeviceMonitor:Password" value="" />
<!-- RequestTimeout specifies the time after making an HTTP request that the monitor should wait before failing.
If this value is set greater than the PollInterval specified below, the monitor could hit the PAP2 harder than
it can handle, return questionable data, and possibly degrade VoIP performance. 1000 should be sufficient, although
sub-100ms values should be possible. -->
<add key="SipuraSPA3000DeviceMonitor:RequestTimeout" value="1000" />
<!-- PollInterval specifies the delay between polling attempts from the monitor to the PAP2. 1000 should be
sufficient, although YMMV. -->
<add key="SipuraSPA3000DeviceMonitor:PollInterval" value="1000" />
<!-- Acceptable call type values: IdleDisconnected, Outbound, Inbound, Error -->
<add key="SipuraSPA3000DeviceMonitor:CallType:" value="IdleDisconnected" />
<add key="SipuraSPA3000DeviceMonitor:CallType:Outbound" value="Outbound" />
<add key="SipuraSPA3000DeviceMonitor:CallType:Inbound" value="Inbound" />
<!-- Acceptable tone values: None, Dial, SecureCall, Call, Busy, Error, InvalidNumber -->
<!-- (Note that these call values relate to incoming calls, as outgoing ones typically don't report and "outgoing ring" tone. -->
<add key="SipuraSPA3000DeviceMonitor:Tone:None" value="None" />
<add key="SipuraSPA3000DeviceMonitor:Tone:Dial" value="Dial" />
<add key="SipuraSPA3000DeviceMonitor:Tone:Ring - Callback" value="Call" />
<add key="SipuraSPA3000DeviceMonitor:Tone:Reorder" value="Busy" />
<add key="SipuraSPA3000DeviceMonitor:Tone:Ring Back" value="Error" />
<!-- Acceptable activity values: IdleDisconnected, Connected, Dialing, Ringing, Held, Error -->
<add key="SipuraSPA3000DeviceMonitor:Activity:Idle" value="IdleDisconnected" />
<add key="SipuraSPA3000DeviceMonitor:Activity:Dialing" value="Dialing" />
<add key="SipuraSPA3000DeviceMonitor:Activity:Calling" value="Ringing" />
<add key="SipuraSPA3000DeviceMonitor:Activity:Connected" value="Connected" />
<add key="SipuraSPA3000DeviceMonitor:Activity:Ringing" value="Ringing" />
<add key="SipuraSPA3000DeviceMonitor:Activity:Invalid" value="Error" />
<add key="SipuraSPA3000DeviceMonitor:Activity:Proceeding" value="Ringing" />
<!-- Acceptable registration state values: Offline, Online, Error -->
<add key="SipuraSPA3000DeviceMonitor:RegistrationState:Registered" value="Online" />
<add key="SipuraSPA3000DeviceMonitor:RegistrationState:Failed" value="Error" />
<!-- The values below are not intended to be user-configurable yet. -->
<add key="logType" value="xml" />
<add key="logFile" value="system.xml" />
<add key="callLogFile" value="calls.csv" />
</appSettings>
</configuration>