-
Notifications
You must be signed in to change notification settings - Fork 0
/
sample.conf
460 lines (367 loc) · 20.5 KB
/
sample.conf
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
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
#[logging]
## console loglevel - use 6 for verbose output
## default: 1
#level=6
#[generic]
## Request autostart after user login via DBus.
## default: false
#autostart=false
## If set, a prepending "00" of a phone number will be replaced with this prefix when searching for contacts.
## So if a client is used in Germany, a "+49" can be set to treat a phone number like "0012345" as "+4912345".
## default: ""
#nationalPrefix=+49
## If set, a prepending "0" of a phone number will be replaced with this prefix when searching for contacts.
## So if a client is used in Cologne, a "+49221" can be set to treat a phone number like "012345" as "+4922112345".
## default: ""
#regionalPrefix=+492932
## If set, this regular expression tests a SIP url for being an anonymous participant. Such are displayed slightly different
## where a caller's name is displayed, e.g. in the history.
## default: ""
#anonymousRegex="^.*sip:anonymous@.*$"
## The GOnnect main window can show up on startup per default or start minimized.
## default: false
#showCallWindowOnStartup=false
## signal 486 Busy here when already on an active call
## default: false
#busyOnBusy=true
## If several preferred identities are configured (see below), this defines which one shall be used by default or how it shall be determined.
## The possible values are:
## "default": Do nothing, i.e. the identity is not changed by the client at all
## "auto": Select the identity by matching their "prefix" configuration string
## "preferred_identity_1": Use a specific identity as it is defined in the config
## default: "auto"
#preferredIdentity=auto
## Use special alerting when displayname of the caller matches this regex
## default: ""
#emergencyRegex=^.*EMERGENCY.*$
## see https://docs.pjsip.org/en/latest/api/generated/pjsip/group/group__PJSUA2__UA.html for further details/context.
#[ua]
## This specifies if the library should try to do an IPv6 resolution of the STUN servers if the IPv4 resolution fails.
## It can be useful in an IPv6-only environment, including on NAT64.
## default: false
#stunTryIpv6=false
## This specifies if the library startup should ignore failure with the STUN servers.
## If this is set to PJ_FALSE, the library will refuse to start if it fails to resolve or contact any of the STUN servers.
## default: false
#stunIgnoreFailure=false
## Handle unsolicited NOTIFY requests containing message waiting indication (MWI) info.
## Unsolicited MWI is incoming NOTIFY requests which are not requested by client with SUBSCRIBE request.
## If this is enabled, the library will respond 200/OK to the NOTIFY request and forward the request to Endpoint::onMwiInfo() callback.
## Note: the callback will not be invoked and 481/”No account to handle” response will be sent if this is enabled but no account is configured.
## See also AccountMwiConfig.enabled.
## default: true
#mwiUnsolicitedEnabled=true
## Specify whether to enable UPnP.
## Note that this setting can be further customized in account configuration (pjsua_acc_config).
## default: false
#enableUpnp=false
## Specify which interface to use for UPnP. If empty, UPnP will use the first suitable interface found.
## Note that this setting is only applicable if UPnP is enabled.
## default: ""
#upnpIfName=
## Maximum calls to support. The value specified here must be smaller than the compile time maximum settings PJSUA_MAX_CALLS, which by default is 32.
## To increase this limit, the library must be recompiled with new PJSUA_MAX_CALLS value.
## default: 4
#maxCalls=4
## Support for adding and parsing NAT type in the SDP to assist troubleshooting. The valid values are:
## 0: no information will be added in SDP, and parsing is disabled.
## 1: only the NAT type number is added.
## 2: add both NAT type number and name.
## default: 1
#natTypeInSdp=1
## Specify the URL of outbound proxies to visit for all outgoing requests.
## The outbound proxies will be used for all accounts, and it will be used to build the route set for outgoing requests.
## The final route set for outgoing requests will consists of the outbound proxies and the proxy configured in the account.
## default: ""
#outboundProxies=xxx,yyy,zzz
## Array of STUN servers to try. The library will try to resolve and contact each of the STUN server entry until it finds one that is usable.
## Each entry may be a domain name, host name, IP address, and it may contain an optional port number. For example:
## ”pjsip.org” (domain name)
## ”sip.pjsip.org” (host name)
## ”pjsip.org:33478” (domain name and a non-standard port number)
## ”10.0.0.1:3478” (IP address and port number)
## When nameserver is configured in the pjsua_config.nameserver field, if entry is not an IP address,
## it will be resolved with DNS SRV resolution first, and it will fallback to use DNS A resolution if this fails.
## Port number may be specified even if the entry is a domain name, in case the DNS SRV resolution should fallback to a non-standard port.
## When nameserver is not configured, entries will be resolved with pj_gethostbyname() if it’s not an IP address.
## Port number may be specified if the server is not listening in standard STUN port.
## default: ""
#stunServers=xxx,yyy,zzz
## Array of nameservers to be used by the SIP resolver subsystem.
## The order of the name server specifies the priority (first name server will be used first, unless it is not reachable).
## default: ""
#nameservers=xxx,yyy,zzz
#[media]
## Disable VAD (Voice Activity Detector)
## default: false
#noVad=false
## Clock rate to be applied to the conference bridge. If value is zero, default clock rate will be used (PJSUA_DEFAULT_CLOCK_RATE, which by default is 16KHz).
## default: 16000
#clockRate=16000
## Clock rate to be applied when opening the sound device. If value is zero, conference bridge clock rate will be used.
## default: 16000
#sndClockRate=
## Audio capture buffer length, in milliseconds. Default: PJMEDIA_SND_DEFAULT_REC_LATENCY
## default: 100
#sndRecLatency=100
## Audio capture buffer length, in milliseconds. Default: PJMEDIA_SND_DEFAULT_REC_LATENCY
## default: 140 (160 for Windows Mobile)
#sndPlayLatency=160
## Media quality, 0-10, according to this table: 5-10: resampling use large filter, 3-4: resampling use small filter, 1-2: resampling use linear.
## The media quality also sets speex codec quality/complexity to the number. Default: PJSUA_DEFAULT_CODEC_QUALITY.
## default: 4
#quality=4
## Specify audio frame ptime. The value here will affect the samples per frame of both the sound device and the conference bridge.
## Specifying lower ptime will normally reduce the latency. Default value: PJSUA_DEFAULT_AUDIO_FRAME_PTIME
## default: 20
#audioFramePtime=20
## Jitter buffer initial prefetch delay in msec. The value must be between jb_min_pre and jb_max_pre below. If the value is 0, prefetching will be disabled.
## default: -1 (to use default stream settings, currently 0)
#jbInit=-1
## Jitter buffer minimum prefetch delay in msec.
## default: -1 (to use default stream settings, currently codec ptime)
#jbMinPre=-1
## Jitter buffer maximum prefetch delay in msec.
## default: -1 (to use default stream settings, currently 80% of jbMax)
#jbMaxPre=-1
## Set maximum delay that can be accomodated by the jitter buffer msec.
# default: -1 (to use default stream settings, currently 500 msec)
#jbMax=-1
## Echo canceller tail length, in miliseconds. Setting this to zero will disable echo cancellation. Default: PJSUA_DEFAULT_EC_TAIL_LEN
## default: 200
#ecTailLen=200
## see https://docs.pjsip.org/en/latest/api/generated/pjsip/group/group__PJSUA2__ACC.html for further details/context.
#[account0]
## The Address of Record or AOR, that is full SIP URL that identifies the account.
## The value can take name address or URL format, and will look something like “sip:account@serviceprovider”.
## default: ""
## This field is mandatory.
#userUri=sip:user@example.org
## This is the URL to be put in the request URI for the registration, and will look something like “sip:serviceprovider”.
## This field should be specified if registration is desired. If the value is empty, no account registration will be performed.
## default: ""
#registrarUri=sip:example.org
## Array of proxy servers to visit for outgoing requests. Each of the entry is translated into one Route URI.
## default: ""
#proxies=sip:proxy.example.org:5061;transport=tls;hide
## Specify whether secure media transport should be used for this account.
## Valid values are disabled, optional and mandatory
## default: ""
## This field is mandatory.
#srtpUse=mandatory
## Specify whether SRTP requires secure signaling to be used. This option is only used when use_srtp option above is non-zero.
## Valid values are: 0: SRTP does not require secure signaling 1: SRTP requires secure transport such as TLS 2: SRTP requires secure end-to-end transport (SIPS)
## default: ""
## This field is mandatory.
#srtpSecureSignaling=0
## If remote sends SDP answer containing more than one format or codec in the media line, send re-INVITE or UPDATE with just one codec to lock which codec to use.
## default: false
#lockCodecEnabled=false
## UDP port number to bind locally. This setting MUST be specified even when default port is desired.
## If the value is zero, the transport will be bound to any available port, and application can query the port by querying the transport info.
## default: 5061
#port=5061
## Specify the port range for socket binding, relative to the start port number specified in port.
## Note that this setting is only applicable to media transport when the start port number is non zero.
## Media transport is configurable via account setting, i.e: pjsua_acc_config.rtp_cfg, please check the media transport config docs for more info.
## Available ports are in the range of [port, port + port_range].
## default: 0
#portRange=0
## Certificate of Authority (CA) list file.
## default: ""
#caListFile=/home/user/.cert/ca.crt
## Public endpoint certificate file, which will be used as client- side certificate for outgoing TLS connection, and server-side certificate for incoming TLS connection.
## default: ""
#certFile=/home/user/.cert/default-combined.pem
## Optional private key of the endpoint certificate to be used.
## default: ""
#privateKeyFile=/home/user/.cert/default-combined.pem
## Specifies TLS transport behavior on the server TLS certificate verification result:
## If verifyServer is disabled, TLS transport will just notify the application via pjsip_tp_state_callback with state PJSIP_TP_STATE_CONNECTED regardless TLS verification result.
## If verifyServer is enabled, TLS transport will be shutdown and application will be notified with state PJSIP_TP_STATE_DISCONNECTED whenever there is any TLS verification error, otherwise PJSIP_TP_STATE_CONNECTED will be notified.
## In any cases, application can inspect pjsip_tls_state_info in the callback to see the verification detail.
## default: false
#verifyServer=false
## This option is used to update the transport address and the Contact header of REGISTER request.
## When this option is enabled, the library will keep track of the public IP address from the response of REGISTER request.
## Once it detects that the address has changed, it will unregister current Contact, update the Contact with transport address learned from Via header,
## and register a new Contact to the registrar. This will also update the public name of UDP transport if STUN is configured.
## Possible values:
## 0 (disabled).
## 1 (enabled). Update except if both Contact and server’s IP address are public but response contains private IP.
## 2 (enabled). Update without exception.
## See also contactRewriteMethod field.
## default: 0
#contactRewriteUse=0
## Specify how Contact update will be done with the registration, if contactRewriteEnabled is enabled.
## The value is bitmask combination of pjsua_contact_rewrite_method. See also pjsua_contact_rewrite_method.
## Possbiel values:
## "always-update"
## "no-unreg"
## default: always-update
## This field is mandatory.
#contactRewriteMethod=always-update # always-update / no-unreg
## Specify if source TCP port should be used as the initial Contact address if TCP/TLS transport is used.
## Note that this feature will be automatically turned off when nameserver is configured because it may yield different destination address due to DNS SRV resolution.
## Also some platforms are unable to report the local address of the TCP socket when it is still connecting. In these cases, this feature will also be turned off.
## default: true
#contactUseSrcPort=true
## Control the use of STUN for the SIP signaling.
## default: true
#sipStunUse=false
## Control the use of STUN for the media transports.
## default: false
#mediaStunUse=false
## Control the use of UPnP for the SIP signaling.
## default: false
#sipUpnpUse=true
## Specify NAT64 options.
## default: false
#nat64Opt=false
## Enable ICE for the media transport.
## default: false
#iceEnabled=false
## Specify whether to use aggressive nomination.
## default: true
#iceAggressiveNomination=true
## Disable RTCP component.
## default: false
#iceNoRtcp=false
## Always send re-INVITE/UPDATE after ICE negotiation regardless of whether the default ICE transport address is changed or not.
## When this is set to False, re-INVITE/UPDATE will be sent only when the default ICE transport address is changed.
## default: true
#iceAlwaysUpdate=true
## This option is used to overwrite the “sent-by” field of the Via header for outgoing messages with the same interface address as the one in the REGISTER request,
## as long as the request uses the same transport instance as the previous REGISTER request.
## default: true
#viaRewriteUse=true
## This option controls whether the IP address in SDP should be replaced with the IP address found in Via header of the REGISTER response, ONLY when STUN and ICE are not used.
## If the value is FALSE (the original behavior), then the local IP address will be used. If TRUE, and when STUN and ICE are disabled,
## then the IP address found in registration response will be used.
## default: false
#sdpNatRewriteUse=false
## Control the use of SIP outbound feature. SIP outbound is described in RFC 5626 to enable proxies or registrar to send inbound requests back to UA
## using the same connection initiated by the UA for its registration. This feature is highly useful in NAT-ed deployemtns, hence it is enabled by default.
## Note: currently SIP outbound can only be used with TCP and TLS transports.
## If UDP is used for the registration, the SIP outbound feature will be silently ignored for the account.
## default: true
#sipOutboundUse=true
## Specify SIP outbound (RFC 5626) instance ID to be used by this account. If empty, an instance ID will be generated based on the hostname of this agent.
## If application specifies this parameter, the value will look like “<urn:uuid:00000000-0000-1000-8000-AABBCCDDEEFF>” without the double-quotes.
## default: ""
#sipOutboundInstanceId=
## Specify SIP outbound (RFC 5626) registration ID. The default value is empty, which would cause the library to automatically generate a suitable value.
## default: ""
#sipOutboundRegId=
## Points to the name of the desired auth section in the configuration - if any.
#auth=auth0
## Configures the SIP transport.
## Possible values: "tcp", "udp", "tls"
## default: "tls"
#transport=tls
## Configures the IP version type that should be used.
## The value "auto" lets the application try to determine the best one by itself. Setting a specific IP version enforces it.
## Possible values: "auto", "ipv4", "ipv6"
## default: "auto"
#network=auto
#[auth0]
## The authentication scheme (e.g. “digest”).
## default: Digest
#scheme=Digest
## Authentication user name
## default: ""
#username=user
## Realm on which this credential is to be used. Use “*” to make a credential that can be used to authenticate against any challenges.
## default: *
#realm=*
## Type of data that is contained in the “data” field. Use 0 if the data contains plain text password.
## default: plain
#type=plain
## The data, which can be a plain text password or a hashed digest.
## default: ""
#data=secret
#[audio]
## Path to ringtone soundfile - format needs to be supported by Qt Multimedia
#ringtone=path_to_some_file.mp3
## Volume for ringtone
## default: 90
#ringtoneVolume=42
## Preferred identities can be used to change how the client will be received at the callee.
## For example, when calling a specific customer (with a given prefix), the callee receives not the actual phone number of the
## caller, but another one, e.g. from a support hotline.
## Which identity should be used as default, resp. how it should be determined is set via the option "preferredIdentity" in the general section of this file (see above).
## These identities can be via the UI or here (e.g. for provisioning).
## Example (all fields are mandatory unless specified as optional):
## Each identity is a section, starting with "preferred_identity_" and followed by one or more digits.
#[preferred_identity_0]
## Whether the identity is enabled. If it is not, it cannot be selected neither manually nor automatically.
#enabled=true
## Whether the identity is respected when the option "preferredIdentity" is set to "auto", i.e. if set to false, this identity can only be selected manually.
#automatic=true
## A display name that is shown in the UI
#name=Send number
## The phone number, that the callee shall receive when using this identity.
#identity=+4929339114711
## The prefix to test against when this identity is considered for the "auto" mode of the option "preferredIdentity".
## When the called phone number (on outgoing calls) starts with this prefix, this identity will be chosen automatically.
## Multiple prefixes can be set when comma-separated.
## This is only used when "automatic" is set to true.
## (optional)
#prefix=+492913641,+49123
## This section defines how different dial tones are produced by the ring tone generator.
## There is rarely a need to change them, but it is possible in order to suit regional practices.
##
## The format follows this structure:
## frequency1, frequency2, [ interval1, interval2 ]+, loopIndex
##
## frequency1 and frequency2 defines two frequencies in Hz, with 0 meaning "off".
## Then, one or more tuples of intervals (in ms) follow, each describing how long frequency1 (first value) and frequency2 (second value) shall be played.
## Finally, the last value (loopIndex) indicates from which tuple index it shall loop. A loopIndex of "0" means that nothing is repeated.
##
## Example:
## 425,0,200,200,200,1000,200,200,200,1000,200,200,200,5000,4
##
## will play the frequency 425 Hz followed by a pause (0 Hz) with these intervals:
##
## +---+-----------------+-----------------+
## | i | frequency1 [ms] | freuqency2 [ms] |
## +---+-----------------+-----------------+
## | 0 | 200 | 200 |
## | 1 | 200 | 1000 |
## | 2 | 200 | 200 |
## | 3 | 200 | 1000 |
## | 4 | 200 | 200 |
## | 5 | 200 | 5000 |
## +---+-----------------+-----------------+
##
## When finished, it will infinitely play lines 4 and 5 again (loopIndex = 4).
##
##
## default:
#[dialtones]
#ring="425,0,1000,4000,0"
#busy="425,0,480,480,0"
#congestion="425,0,240,240,0"
#zip="425,0,200,200,200,1000,200,200,200,1000,200,200,200,5000,4"
## An LDAP block defines one LDAP source for the address book.
## Example (all fields are mandatory unless specified as optional):
## Each block must have the name "ldap", followed by one ore more digits.
#[ldap0]
## The URL of the LDAP service
#url="ldap://ldap.intranet.example.org"
## The LDAP base for the search
#base="dc=example,dc=org"
## The LDAP filter for the search
#filter="(&(objectClass=inetOrgPerson)(!(loginShell=/bin/false)))"
## A phone number prefix which is stripped from each phone number read from the LDAP source.
## This is useful to strip a company's own number and just take the "internal number".
## Example: Given baseNumber="+492933911", the number "+492933911678" will appear as "678" in the address book.
## (optional)
#baseNumber="+492933911"
## If the SIP environment the client is used in does support subscribing to buddy states (i.e. if a contact is available, busy, etc.), the phone number
## found for this LDAP attribute will be used for that subscription.
## This is a performance optimization: when numbers saved under a specific attribute can and will never be subscriptable for SIP states (e.g. "mobile"),
## the client does not need to try. While not an excessive overhead, it might affect performance on slow systems and a large number of subscriptions.
## Multiple values must be comma-seperated, e.g. "telephoneNumber,mobile"
## (optional)
#sipStatusSubscriptableAttributes="telephoneNumber"