Advertisement
Guest User

Untitled

a guest
Jun 14th, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.15 KB | None | 0 0
  1. ########################################################
  2. # repro configuration file
  3. ########################################################
  4.  
  5.  
  6. ########################################################
  7. # Log settings
  8. ########################################################
  9.  
  10. # Logging Type: syslog|cerr|cout|file
  11. # Note: Logging to cout can negatively effect performance.
  12. # When repro is placed into production 'file' or
  13. # 'syslog' should be used.
  14. LoggingType = file
  15.  
  16. # Logging level: NONE|CRIT|ERR|WARNING|INFO|DEBUG|STACK
  17. LogLevel = DEBUG
  18.  
  19. # Log Filename
  20. LogFilename = /var/log/repro/repro.log
  21.  
  22. # Log file Max Bytes
  23. LogFileMaxBytes = 0
  24.  
  25. # Instance name to be shown in logs, very useful when multiple instances
  26. # logging to syslog concurrently
  27. # If unspecified, defaults to argv[0] (name of the executable)
  28. #LoggingInstanceName = repro-dev
  29.  
  30. ########################################################
  31. # Transport settings
  32. ########################################################
  33.  
  34. # Set an upper limit on the maximum size of a SIP message payload
  35. # that the stack will accept. If a payload received over a
  36. # connection-oriented transport exceeds this size, the
  37. # connection will be dropped.
  38. # This applies to TCP, TLS and WebSocket transports.
  39. # UDP payload sizes are limited by the maximum datagram size
  40. # and any fragmentation constraints.
  41. #StreamMessageSizeLimit = 65536
  42.  
  43. # Local IP Address to bind SIP transports to. If left blank
  44. # repro will bind to all adapters.
  45. #IPAddress = 192.168.1.106
  46. #IPAddress = 2001:5c0:1000:a::6d
  47. IPAddress =
  48.  
  49. # Local port to listen on for SIP messages over UDP - 0 to disable
  50. UDPPort = 5061
  51.  
  52. # Local port to listen on for SIP messages over TCP - 0 to disable
  53. TCPPort = 5062
  54.  
  55. # Local port to listen on for SIP messages over TLS - 0 to disable
  56. TLSPort = 0
  57.  
  58. # Local port to listen on for SIP messages over WS (WebSocket) - 0 to disable
  59. WSPort = 8088
  60.  
  61. # Local port to listen on for SIP messages over WSS (WebSocket TLS) - 0 to disable
  62. WSSPort = 0
  63.  
  64. # Local port to listen on for SIP messages over DTLS - 0 to disable
  65. DTLSPort = 0
  66.  
  67. # TLS domain name for this server (note: domain cert for this domain must be present)
  68. TLSDomainName =
  69.  
  70. # PEM-encoded X.509 certificate for TLS
  71. # Must contain any intermediate certificates from the CA
  72. # The TLSCertificate and TLSPrivateKey parameters are optional. The stack
  73. # will also try to automatically detect any suitable certificates
  74. # in the directory specified by CertificatePath
  75. TLSCertificate =
  76.  
  77. # PEM-encoded private key for TLS
  78. TLSPrivateKey =
  79.  
  80. # Whether or not we ask for (Optional) or expect (Mandatory) TLS
  81. # clients to present a client certificate
  82. # Possible values:
  83. # None: client can connect without any cert, if a cert is sent, it is not checked
  84. # Optional: client can connect without any cert, if a cert is sent, it must be acceptable to us
  85. # Mandatory: client can not connect without any cert, cert must be acceptable to us
  86. # How we decide if a cert is acceptable: it must meet two criteria:
  87. # 1. it must be signed by a CA that we trust (see CADirectory)
  88. # 2. the domain or full sip: URI in the cert must match the From: URI of all
  89. # SIP messages coming from the peer
  90. TLSClientVerification = None
  91.  
  92. # Whether we accept the subjectAltName email address as if it was a SIP
  93. # address (when checking the validity of a client certificate)
  94. # Very few commercial CAs offer support for SIP addresses in subjectAltName
  95. # For many purposes, an email address subjectAltName may be considered
  96. # equivalent within a specific domain.
  97. # Currently, this accepts such certs globally (for any incoming connection),
  98. # not just for connections from the local users.
  99. TLSUseEmailAsSIP = false
  100.  
  101. # Alternate and more flexible method to specify transports to bind to. If specified here
  102. # then IPAddress, and port settings above are ignored.
  103. # Transports MUST be numbered in sequential order, starting from 1. Possible settings are:
  104. # Transport<Num>Interface = <IPAddress>:<Port> - Note: For IPv6 addresses last colon separates
  105. # IP Address and Port - square bracket notation
  106. # is not used.
  107. # Transport<Num>Type = <'TCP'|'UDP'|'TLS'|'DTLS'|'WS'|'WSS'> - default is UDP if missing
  108. # Transport<Num>TlsDomain = <TLSDomain> - only required if transport is TLS, DTLS or WSS
  109. # Transport<Num>TlsCertificate = <TLSCertificate> - only for TLS, DTLS or WSS
  110. # Transport<Num>TlsPrivateKey = <TLSPrivateKey> - only for TLS, DTLS or WSS
  111. # Transport<Num>TlsClientVerification = <'None'|'Optional'|'Mandatory'> - default is None
  112. # Transport<Num>RecordRouteUri = <'auto'|URI> - if set to auto then record route URI
  113. # is automatically generated from the other
  114. # transport settings. Otherwise explicity
  115. # enter the full URI you want repro to use.
  116. # Do not specify 'auto' if you specified
  117. # the IPAddress as INADDR_ANY (0.0.0.0).
  118. # If nothing is specified then repro will
  119. # use the global RecordRouteUri setting.
  120. #
  121. # Transport<Num>RcvBufLen = <SocketReceiveBufferSize> - currently only applies to UDP transports,
  122. # leave empty to use OS default
  123. # Example:
  124. Transport1Interface = REPRO.PRIVATE.IP.ADDRESS:8088
  125. Transport1Type = WS
  126. Transport1RecordRouteUri = auto
  127. #
  128. Transport2Interface = REPRO.PRIVATE.IP.ADDRESS:5061
  129. Transport2Type = UDP
  130. Transport2RecordRouteUri = auto
  131. Transport2RcvBufLen = 10000
  132. #
  133. # Transport3Interface = 192.168.1.106:5061
  134. # Transport3Type = TLS
  135. # Transport3TlsDomain = sipdomain.com
  136. # Transport3TlsCertificate = /etc/ssl/crt/sipdomain.com.crt
  137. # Transport3TlsPrivateKey = /etc/ssl/private/sipdomain.com.key
  138. # Transport3TlsClientVerification = Mandatory
  139. # Transport3RecordRouteUri = sip:h1.sipdomain.com;transport=TLS
  140. #
  141. # Transport4Interface = 2666:f0d0:1008:88::4:5060
  142. # Transport4Type = UDP
  143. # Transport4RecordRouteUri = auto
  144.  
  145. # Transport5Interface = 192.168.1.106:5062
  146. # Transport5Type = WS
  147. # Transport5RecordRouteUri = auto
  148.  
  149. # Transport6Interface = 192.168.1.106:5063
  150. # Transport6Type = WSS
  151. # Transport6TlsDomain = sipdomain.com
  152. # Transport6TlsClientVerification = None
  153. # Transport6RecordRouteUri = sip:h1.sipdomain.com;transport=WS
  154.  
  155. # Comma separated list of DNS servers, overrides default OS detected list (leave blank
  156. # for default)
  157. DNSServers =
  158.  
  159. # Enable IPv6
  160. EnableIPv6 = false
  161.  
  162. # Enable IPv4
  163. DisableIPv4 = false
  164.  
  165. # Comma separated list of IP addresses used for binding the HTTP configuration interface
  166. # and/or certificate server. If left blank it will bind to all adapters.
  167. HttpBindAddress =
  168.  
  169. # Port on which to run the HTTP configuration interface and/or certificate server
  170. # 0 to disable (default: 5080)
  171. HttpPort = 5080
  172.  
  173. # disable HTTP challenges for web based configuration GUI
  174. DisableHttpAuth = false
  175.  
  176. # Realm to use for HTTP admin interface digest authentication
  177. HttpAdminRealm = repro
  178.  
  179. # File containing user/password details
  180. #
  181. # The format is:
  182. #
  183. # username:realm:HA1
  184. #
  185. # where
  186. #
  187. # user = admin
  188. # realm = the value from HttpAdminRealm
  189. # HA1 = `echo -n user:realm:password | md5sum`
  190. #
  191. # You can use the htdigest utility from Apache to create and
  192. # manage this file
  193. #
  194. HttpAdminUserFile = /etc/repro/users.txt
  195.  
  196. # Comma separated list of IP addresses used for binding the Command Server listeners.
  197. # If left blank it will bind to all adapters.
  198. CommandBindAddress = 127.0.0.1, ::1
  199.  
  200. # Port on which to listen for and send XML RPC messaging used in command processing
  201. # 0 to disable (default: 5081)
  202. CommandPort = 5081
  203.  
  204. # Port on which to listen for and send XML RPC messaging used in registration sync
  205. # process - 0 to disable (default: 0)
  206. RegSyncPort = 0
  207.  
  208. # Hostname/ip address of another instance of repro to synchronize registrations with
  209. # (note xmlrpcport must also be specified)
  210. RegSyncPeer =
  211.  
  212. # Non-outbound connections over this age (expressed in seconds) are
  213. # considered eligible for garbage collection.
  214. # If not set but FlowTimer is set, then this value defaults to 7200 seconds
  215. # Otherwise, there is no garbage collection at all unless an error occurs
  216. # when making an outgoing connection.
  217. TCPConnectionGCAge = 7200
  218.  
  219. # File descriptor headroom threshold for emergency garbage collection
  220. # If the difference between the number of permitted FDs
  221. # (reported by periodic calls to getrlimit()) and the number
  222. # of active stream connections falls below this threshold,
  223. # the garbage collector will overlook TCPConnectionGCAge and
  224. # FlowTimer settings and more aggressively close connections
  225. # By default, this feature is not enabled
  226. # Remember that the value must be high enough to allow file descriptors
  227. # for each shared library that is open, each database connection,
  228. # each listening socket and any sockets/files accessed by plugins
  229. #TCPMinimumGCHeadroom =
  230.  
  231. ########################################################
  232. # Misc settings
  233. ########################################################
  234.  
  235. # Directory where plugins are located
  236. # The default is determined at build time depending upon the
  237. # target environment and the installation prefix passed to
  238. # the configure script
  239. #PluginDirectory = /usr/lib/repro/plugins
  240.  
  241. # List of plugins to load (comma-separated list)
  242. # These are the names of the plugins and not the full filenames
  243. # Order is important: the plugins will always be loaded and
  244. # initialized in the order specified here
  245. # Plugins are not supported on all platforms and plugin support is an
  246. # optional feature that must be enabled at compile time.
  247. #
  248. # For example, to load the plugin named "example", which is in libexample.so:
  249. #LoadPlugins = example
  250.  
  251. # Drop privileges and run as some other user and group
  252. # If RunAsUser is specified and RunAsGroup is not specified,
  253. # then setgid will be invoked using the default group for
  254. # the specified user
  255. # If neither option is specified, then no attempt will be made
  256. # to call setuid/setgid (there is no default value)
  257. RunAsUser = repro
  258. RunAsGroup = repro
  259.  
  260. # Must be true or false, default = false, not supported on Windows
  261. Daemonize = true
  262.  
  263. # On UNIX it is normal to create a PID file
  264. # if unspecified, no attempt will be made to create a PID file
  265. PidFile = /var/run/repro/repro.pid
  266.  
  267. # Path to load certificates from (optional, there is no default)
  268. # Note that repro loads ALL root certificates found by any of the settings
  269. #
  270. # CertificatePath
  271. # CADirectory
  272. # CAFile
  273. #
  274. # Setting one option does not disable the other options.
  275. #
  276. # Certificates in this location have to match one of the filename
  277. # patterns expected by the legacy reSIProcate SSL code:
  278. #
  279. # domain_cert_NAME.pem, root_cert_NAME.pem, ...
  280. #
  281. # For domain certificates, it is recommended to use the options
  282. # for individual transports, such as TransportXTlsCertificate and
  283. # TransportXTlsPrivateKey and not set CertificatePath at all.
  284. #
  285. CertificatePath =
  286.  
  287. # Path to load root certificates from
  288. # Iff this directory is specified, all files in the directory
  289. # will be loaded as root certificates, prefixes and suffixes are
  290. # not considered
  291. # Note that repro loads ALL root certificates found by the settings
  292. # CertificatePath, CADirectory and CAFile. Setting one option does
  293. # not disable the other options.
  294. # On Debian, the typical location is /etc/ssl/certs
  295. CADirectory = /etc/ssl/certs
  296.  
  297. # Specify a single file containing one or more root certificates
  298. # and possible chain/intermediate certificates to be loaded
  299. # Iff this filename is specified, the certificates in the file will
  300. # be loaded as root certificates
  301. #
  302. # This does NOT currently support bundles of unrelated root certificates
  303. # stored in the same PEM file, it ONLY supports related/chained root
  304. # certificates. If multiple roots must be supported, use the CADirectory
  305. # option.
  306. #
  307. # In the future, this behavior may change to load a bundle,
  308. # such as /etc/ssl/certs/ca-certificates.txt on Debian and
  309. # /etc/pki/tls/cert.pem on Red Hat/CentOS
  310. #
  311. # Note that repro loads ALL root certificates found by the settings
  312. # CertificatePath, CADirectory and CAFile. Setting one option does
  313. # not disable the other options.
  314. #
  315. # This example loads just the CACert.org chain, which typically
  316. # includes the class 1 root and the class 3 root (signed by the class 1 root)
  317. #CAFile = /etc/ssl/certs/cacert.org.pem
  318.  
  319. # The Path to read and write Berkely DB database files
  320. DatabasePath = /var/lib/repro
  321.  
  322. # The hostname running MySQL server to connect to, leave blank to use BerkelyDB.
  323. # The value of host may be either a host name or an IP address. If host is "localhost",
  324. # a connection to the local host is assumed. For Windows, the client connects using a
  325. # shared-memory connection, if the server has shared-memory connections enabled. Otherwise,
  326. # TCP/IP is used. For Unix, the client connects using a Unix socket file. For a host value of
  327. # "." on Windows, the client connects using a named pipe, if the server has named-pipe
  328. # connections enabled. If named-pipe connections are not enabled, an error occurs.
  329. # WARNING: repro must be compiled with the USE_MYSQL flag in order for this work.
  330. MySQLServer =
  331.  
  332. # The MySQL login ID to use when connecting to the MySQL Server. If user is empty string "",
  333. # the current user is assumed. Under Unix, this is the current login name. Under Windows,
  334. # the current user name must be specified explicitly.
  335. MySQLUser = root
  336.  
  337. # The password for the MySQL login ID specified.
  338. MySQLPassword = secret
  339.  
  340. # The database name on the MySQL server that contains the repro tables
  341. MySQLDatabaseName = repro
  342.  
  343. # If port is not 0, the value is used as the port number for the TCP/IP connection. Note that
  344. # the host parameter determines the type of the connection.
  345. MySQLPort = 3306
  346.  
  347. # The Users and MessageSilo database tables are different from the other repro configuration
  348. # database tables, in that they are accessed at runtime as SIP requests arrive. It may be
  349. # desirable to use BerkeleyDb for the other repro tables (which are read at starup time, then
  350. # cached in memory), and MySQL for the runtime accessed tables; or two seperate MySQL instances
  351. # for these different table sets. Use the following settings in order to specify a seperate
  352. # MySQL instance for use by the Users and MessageSilo tables.
  353. #
  354. # WARNING: repro must be compiled with the USE_MYSQL flag in order for this work.
  355. #
  356. # Note: If this setting is left blank then repro will fallback all remaining my sql
  357. # settings to use the global MySQLServer settings. If the MySQLServer setting is also
  358. # blank, then repro will use BerkelyDB for all configuration tables. See the
  359. # documentation on the global MySQLServer settings for more details on the following
  360. # individual settings.
  361. RuntimeMySQLServer =
  362. RuntimeMySQLUser = root
  363. RuntimeMySQLPassword = secret
  364. RuntimeMySQLDatabaseName = repro
  365. RuntimeMySQLPort = 3306
  366.  
  367. # If you would like to be able to authenticate users from a MySQL source other than the repro user
  368. # database table itself, then specify the query here. The following conditions apply:
  369. # 1. The database table must reside on the same MySQL server instance as the repro database
  370. # or Runtime tables database.
  371. # 2. The statement provided will be UNION'd with the hardcoded repro query, so that auth from
  372. # both sources is possible. Note: If the same user exists in both tables, then the repro
  373. # auth info will be used.
  374. # 3. The provided SELECT statement must return the SIP A1 password hash of the user in question.
  375. # 4. The provided SELECT statement must contain two tags embedded into the query: $user and $domain
  376. # These tags should be used in the WHERE clause, and repro will replace these tags with the
  377. # actual user and domain being queried.
  378. # Example: SELECT sip_password_ha1 FROM directory.users WHERE sip_userid = '$user' AND
  379. # sip_domain = '$domain' AND account_status = 'active'
  380. MySQLCustomUserAuthQuery =
  381.  
  382. # Session Accounting - When enabled resiprocate will push a JSON formatted
  383. # events for sip session related messaging that the proxy receives,
  384. # to a persistent message queue that uses berkeleydb backed storage.
  385. # The following session events are logged:
  386. # Session Created - INVITE passing authentication was received
  387. # Session Routed - received INVITE was forward to a target
  388. # Session Redirected - session was 3xx redirected or REFERed
  389. # Session Established - there was 2xx answer to an INVITE (only generate for first 2xx)
  390. # Session Cancelled - CANCEL was received
  391. # Session Ended - BYE was received from either end
  392. # Session Error - a 4xx, 5xx, or 6xx response was sent to the inviter
  393. # Consuming Accounting Events:
  394. # Users must ensure that this message queue is consumed, or it will grow without
  395. # bound. A queuetostream consumer process is provided, that will consume the
  396. # events from the message queue and stream them to stdout. This output stream can
  397. # be consumed by linux scripting tools and converted to database records or some
  398. # other relevant representation of the data.
  399. # For example: ./queuetostream ./sessioneventqueue > streamconsumer
  400. # In the future a MySQL consumer may also be provided in order to update
  401. # session accounting records in a MySQL database table.
  402. SessionAccountingEnabled = false
  403.  
  404. # The following setting determines if repro will add routing header information
  405. # (ie. Route, and Record-Route headers)to the Session Created, Session Routed
  406. # and Session Established events.
  407. SessionAccountingAddRoutingHeaders = false
  408.  
  409. # The following setting determines if we will add via header information to
  410. # the Session Created event.
  411. SessionAccountingAddViaHeaders = false
  412.  
  413. # Registration Accounting - When enabled resiprocate will push a JSON formatted
  414. # events for every registration, re-registration, and unregistration message
  415. # received to a persistent message queue that uses berkeleydb backed storage.
  416. # The following registration events are logged:
  417. # Registration Added - initial registration received
  418. # Registration Refreshed - registration refresh received / re-register
  419. # Registration Removed - registration removed by client / unregister
  420. # Registration Removed All - all contacts registration remove / unregister
  421. # Consuming Accounting Events:
  422. # Users must ensure that this message queue is consumed, or it will grow without
  423. # bound. A queuetostream consumer process is provided, that will consume the
  424. # events from the message queue and stream them to stdout. This output stream can
  425. # be consumed by linux scripting tools and converted to database records or some
  426. # other relevant representation of the data.
  427. # For example: ./queuetostream ./regeventqueue > streamconsumer
  428. # In the future a MySQL consumer may also be provided in order to update
  429. # login/registration accounting records in a MySQL database table.
  430. RegistrationAccountingEnabled = false
  431.  
  432. # The following setting determines if repro will add routing header information
  433. # (ie. Route and Path headers)to registration accounting events.
  434. RegistrationAccountingAddRoutingHeaders = false
  435.  
  436. # The following setting determines if we will add via header information to
  437. # the registration accounting events.
  438. RegistrationAccountingAddViaHeaders = false
  439.  
  440. # The following setting determines if we log the RegistrationRefreshed events
  441. RegistrationAccountingLogRefreshes = false
  442.  
  443. # Run a Certificate Server - Allows PUBLISH and SUBSCRIBE for certificates
  444. EnableCertServer = false
  445.  
  446. # Value of server and user agent headers for local UAS and registration
  447. # server responses
  448. #
  449. # Default value is "repro PACKAGE_VERSION" if PACKAGE_VERSION is defined
  450. # during compilation and no header is generated at all otherwise
  451. #
  452. #ServerText =
  453.  
  454. # Enables Congestion Management
  455. CongestionManagement = true
  456.  
  457. # Congestion Management Metric - can take one of the following values:
  458. # SIZE : Based solely on the number of messages in each fifo
  459. # TIME_DEPTH : Based on the age of the oldest (front-most) message
  460. # in each fifo.
  461. # WAIT_TIME : Based on the expected wait time for each fifo; this is
  462. # calculated by multiplying the size by the average service time.
  463. # This is the recommended metric.
  464. CongestionManagementMetric = WAIT_TIME
  465.  
  466. # Congestion Management Tolerance for the given metric. This determines when the RejectionBehavior
  467. # changes.
  468. # 0-80 percent of max tolerance -> NORMAL (Not rejecting any work.)
  469. # 80-100 percent of max tolerance -> REJECTING_NEW_WORK (Refuses new work,
  470. # not continuation of old work.)
  471. # >100 percent of max tolerance -> REJECTING_NON_ESSENTIAL (Rejecting all work
  472. # that is non-essential to the health of the system (ie, if dropping
  473. # something is liable to cause a leak, instability, or state-bloat, don't drop it.
  474. # Otherwise, reject it.)
  475. # Units specified are dependent on Metric specified above:
  476. # If Metric is SIZE then units are number of messages
  477. # If Metric is TIME_DEPTH then units are the number seconds old the oldest message is
  478. # If Metric is WAIT_TIME then units are the expected wait time of each fifo in milliseconds
  479. CongestionManagementTolerance = 200
  480.  
  481. # Specify the number of seconds between writes of the stack statistics block to the log files.
  482. # Specifying 0 will disable the statistics collection entirely. If disabled the statistics
  483. # also cannot be retreived using the reprocmd interface.
  484. StatisticsLogInterval = 3600
  485.  
  486. # Use MultipleThreads stack processing.
  487. ThreadedStack = true
  488.  
  489. # The number of worker threads used to asynchronously retrieve user authentication information
  490. # from the database store.
  491. NumAuthGrabberWorkerThreads = 2
  492.  
  493. # The number of worker threads in Async Processor tread pool. Used by all Async Processors
  494. # (ie. RequestFilter)
  495. NumAsyncProcessorWorkerThreads = 2
  496.  
  497. # Specify domains for which this proxy is authorative (in addition to those specified on web
  498. # interface) - comma separate list
  499. # Notes: * Domains specified here cannot be used when creating users, domains used in user
  500. # AORs must be specified on the web interface.
  501. # * In previous versions of repro, localhost, 127.0.0.1, the machine's hostname,
  502. # and all interface addresses would automatically be appended to this
  503. # configuration parameter. From now on, such values must be listed
  504. # here explicitly if required, e.g.
  505. #
  506. # Domains = localhost, 127.0.0.1, sip-server.example.org, 10.83.73.80
  507. #
  508. # although when using TLS only, it is not desirable or necessary to
  509. # add such values.
  510. #
  511. Domains =
  512.  
  513. # Uri to use as Record-Route
  514. RecordRouteUri =
  515.  
  516. # Force record-routing
  517. # WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
  518. # the alternate transport specification mechanism and defining a RecordRouteUri per
  519. # transport: TransportXRecordRouteUri
  520. ForceRecordRouting = false
  521.  
  522. # Assume path option
  523. AssumePath = true
  524.  
  525. # Disable registrar
  526. DisableRegistrar = false
  527.  
  528. # Specify a comma separate list of enum suffixes to search for enum dns resolution
  529. EnumSuffixes =
  530.  
  531. # Specify the target domain(s) for ENUM logic support. When a dialed SIP URI
  532. # is addressed to +number@somedomain,
  533. # where somedomain is an element of EnumDomains,
  534. # the ENUM logic will be applied for the number
  535. # If empty, ENUM is never used
  536. EnumDomains =
  537.  
  538. # Specify length of timer C in sec (0 or negative will disable timer C) - default 180
  539. TimerC = 180
  540.  
  541. # Override the default value of T1 in ms (you probably should not change this) - leave
  542. # as 0 to use default of 500ms)
  543. TimerT1 = 0
  544.  
  545. # Disable outbound support (RFC5626)
  546. # WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
  547. # the alternate transport specification mechanism and defining a RecordRouteUri per
  548. # transport: TransportXRecordRouteUri
  549. DisableOutbound = false
  550.  
  551. # Set the draft version of outbound to support (default: RFC5626)
  552. # Other accepted values are the versions of the IETF drafts, before RFC5626 was issued
  553. # (ie. 5, 8, etc.)
  554. OutboundVersion = 5626
  555.  
  556. # There are cases where the first hop in a particular network supports the concept of outbound
  557. # and ensures all messaging for a client is delivered over the same connection used for
  558. # registration. This could be a SBC or other NAT traversal aid router that uses the Path
  559. # header. However such endpoints may not be 100% compliant with outbound RFC and may not
  560. # include a ;ob parameter in the path header. This parameter is required in order for repro
  561. # to have knowledge that the first hop does support outbound, and it will reject registrations
  562. # that appear to be using outboud (ie. instanceId and regId) with a 439 (First Hop Lacks Outbound
  563. # Support). In this case it can be desirable when using repro as the registrar to not reject
  564. # REGISTRATION requests that contain an instanceId and regId with a 439.
  565. # If this setting is enabled, then repro will assume the first hop supports outbound
  566. # and not return this error.
  567. AssumeFirstHopSupportsOutbound = false
  568.  
  569. # Enable use of flow-tokens in non-outbound cases
  570. # WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
  571. # the alternate transport specification mechanism and defining a RecordRouteUri per
  572. # transport: TransportXRecordRouteUri
  573. EnableFlowTokens = true
  574.  
  575. # Enable use of flow-tokens in non-outbound cases for clients detected to be behind a NAT.
  576. # This a more selective flow token hack mode for clients not supporting RFC5626. The
  577. # original flow token hack (EnableFlowTokens) will use flow tokens on all client requests.
  578. # Possible values are: DISABLED, ENABLED and PRIVATE_TO_PUBLIC.
  579. # WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
  580. # the alternate transport specification mechanism and defining a RecordRouteUri per
  581. # transport: TransportXRecordRouteUri
  582. ClientNatDetectionMode = DISABLED
  583.  
  584. # Set to greater than 0 to enable addition of Flow-Timer header to REGISTER responses if
  585. # outbound is enabled (default: 0)
  586. FlowTimer = 0
  587.  
  588.  
  589. ########################################################
  590. # CertificateAuthenticator Monkey Settings
  591. ########################################################
  592.  
  593. # Enables certificate authenticator - note you MUST use a TlsTransport
  594. # with TlsClientVerification set to Optional or Mandatory.
  595. # There are two levels of checking:
  596. # a) cert must be signed by a CA trusted by the stack
  597. # b) the CN or one of the subjectAltName values must match the From:
  598. # header of each SIP message on the TlsConnection
  599. # Examples:
  600. # Cert 1:
  601. # common name = [email protected]
  602. # => From: <[email protected]> is the only value that will pass
  603. # Cert 2:
  604. # subjectAltName = pocock.com.au
  605. # => From: <<anything>@pocock.com.au> will be accepted
  606. # Typically, case 1 is for a real client connection (e.g. Jitsi), case 2
  607. # (whole domain) is for federated SIP proxy-to-proxy communication (RFC 5922)
  608. EnableCertificateAuthenticator = false
  609.  
  610. # A static text file that contains mappings of X.509 Common Names to
  611. # permitted SIP `From:' addresses
  612. #
  613. # Without this file, the default behavior of the CertificateAuthenticator
  614. # ensures that the `From:' address in SIP messages must match the
  615. # Common Name or one of the subjectAltNames from the X.509 certificate
  616. #
  617. # When this file is supplied, the CertificateAuthenticator will continue
  618. # to allow SIP messages where there is an exact match between the
  619. # certificate and the `From:' address, but it will also allow
  620. # the holder of a particular certificate to use any of the `mapped'
  621. # `From:' addresses specified in the mappings file
  622. #
  623. # Default: there is no default value: if this filename is not specified,
  624. # repro will not look for it
  625. #
  626. # File format:
  627. # common name<TAB><mapping>,<mapping>,...
  628. #
  629. # where:
  630. # <TAB> is exactly one tab
  631. # <mapping> is `user@domain' or just `domain'
  632. #
  633. #CommonNameMappings = /etc/repro/tlsUserMappings.txt
  634.  
  635.  
  636. ########################################################
  637. # DigestAuthenticator Monkey Settings
  638. ########################################################
  639.  
  640. # Disable DIGEST challenges - disables this monkey
  641. DisableAuth = false
  642.  
  643. # Always use a specified realm name to challenge
  644. # Default behavior (if StaticRealm not specified) is to challenge
  645. # using the hostname from the request URI as the realm
  646. StaticRealm =
  647.  
  648. # Enable RADIUS lookups (only works if DIGEST enabled)
  649. # Default: false
  650. #EnableRADIUS = true
  651.  
  652. # Specify the configuration file the RADIUS client should use
  653. # This is the file that specifies the name of the RADIUS server to
  654. # use and other essential parameters.
  655. # If different processes each have different RADIUS parameters,
  656. # they can copy the radiusclient.conf file to a non-standard location
  657. # and modify it as required.
  658. #
  659. # Note the following:
  660. # - the seqfile specified in the RADIUS configuration file
  661. # must be writeable by the user the repro process runs as.
  662. # It is a good idea to locate that file in a directory such as /var/run/repro
  663. # owned by repro
  664. # - the dictionary must include various elements such as Sip-Session,
  665. # copy these from the sample dictionary.sip file
  666. # Default: /etc/radiusclient/radiusclient.conf
  667. #RADIUSConfiguration =
  668.  
  669. # Http hostname for this server (used in Identity headers)
  670. HttpHostname =
  671.  
  672. # Disable adding identity headers
  673. DisableIdentity = false
  674.  
  675. # Enable addition and processing of P-Asserted-Identity headers
  676. EnablePAssertedIdentityProcessing = false
  677.  
  678. # Disable auth-int DIGEST challenges
  679. DisableAuthInt = true
  680.  
  681. # Send 403 if a client sends a bad nonce in their credentials (will send a new
  682. # challenge otherwise)
  683. RejectBadNonces = false
  684.  
  685. # allow To tag in registrations
  686. AllowBadReg = false
  687.  
  688. ########################################################
  689. # Cookie Authentication Settings
  690. ########################################################
  691.  
  692. # Shared secret for cookie HMAC validation. If there is no WSCookieAuthSharedSecret
  693. # there will be no cookie validation.
  694. #
  695. # See
  696. # http://www.resiprocate.org/SIP_Over_WebSocket_Cookies
  697. # for details of the cookie authentication scheme
  698. #
  699. # WSCookieAuthSharedSecret =
  700.  
  701. # Names of the cookies to use for the cookie authentication protocol
  702. # These are the default values:
  703. #WSCookieNameInfo = WSSessionInfo
  704. #WSCookieNameExtra = WSSessionExtra
  705. #WSCookieNameMAC = WSSessionMAC
  706.  
  707. # Name of the extension header that must match the content of
  708. # the authenticated WSSessionExtra cookie
  709. #WSCookieExtraHeaderName = X-WS-Session-Extra
  710.  
  711. ########################################################
  712. # RequestFilter Monkey Settings
  713. ########################################################
  714.  
  715. # Disable RequestFilter monkey processing
  716. DisableRequestFilterProcessor = false
  717.  
  718. # Default behavior for when no matching filter is found. Leave empty to allow
  719. # request processing to continue. Otherwise set to a SIP status error code
  720. # (400-699) that should be used to reject the request (ie. 500, Server Internal
  721. # Error).
  722. # The status code can optionally be followed by a , and SIP reason text.
  723. RequestFilterDefaultNoMatchBehavior =
  724.  
  725. # Default behavior for SQL Query db errors. Leave empty to allow request processing
  726. # to continue. Otherwise set to a SIP status error code (400-699) that should be
  727. # used to reject the request (ie. 500 - Server Internal Error).
  728. # The status code can optionally be followed by a , and SIP reason text.
  729. # Note: DB support for this action requires MySQL support.
  730. RequestFilterDefaultDBErrorBehavior = 500, Server Internal DB Error
  731.  
  732. # The hostname running MySQL server to connect to for any blocked entries
  733. # that are configured to used a SQL statement.
  734. # WARNING: repro must be compiled with the USE_MYSQL flag in order for this work.
  735. #
  736. # Note: If this setting is left blank then repro will fallback all remaining my sql
  737. # settings to use the global RuntimeMySQLServer or MySQLServer settings. See the
  738. # documentation on the global MySQLServer settings for more details on the following
  739. # individual settings.
  740. RequestFilterMySQLServer =
  741. RequestFilterMySQLUser = root
  742. RequestFilterMySQLPassword = secret
  743. RequestFilterMySQLDatabaseName =
  744. RequestFilterMySQLPort = 3306
  745.  
  746.  
  747. ########################################################
  748. # StaticRoute Monkey Settings
  749. ########################################################
  750.  
  751. # Specify where to route requests that are in this proxy's domain - disables the
  752. # routes in the web interface and uses a SimpleStaticRoute monkey instead.
  753. # A comma seperated list of routes can be specified here and each route will
  754. # be added to the outbound Requests with the RequestUri left in tact.
  755. Routes =
  756.  
  757. # Parallel fork to all matching static routes
  758. ParallelForkStaticRoutes = false
  759.  
  760. # By default (false) we will stop looking for more Targets if we have found
  761. # matching routes. Setting this value to true will allow the LocationServer Monkey
  762. # to run after StaticRoutes have been found. In this case the matching
  763. # StaticRoutes become fallback targets, processed only after all location server
  764. # targets fail.
  765. ContinueProcessingAfterRoutesFound = false
  766.  
  767. # Challenge calls from third-party domains to local domains
  768. # If certificate authentication is enabled and a
  769. # request arrives over TLS, they will still not be
  770. # challenged anyway if their domain certificate
  771. # validates their message.
  772. # Default: true if DIGEST challenge is enabled
  773. ChallengeThirdPartiesCallingLocalDomains = false
  774.  
  775.  
  776. ########################################################
  777. # Message Silo Monkey Settings
  778. ########################################################
  779.  
  780. # Specify where the Message Silo is enabled or not. If enabled,
  781. # then repro will store MESSAGE requests for users that are not online.
  782. # When the user is back online (ie. registers with repro), the stored
  783. # messages will be delivered.
  784. MessageSiloEnabled = false
  785.  
  786. # A regular expression that can be used to filter which URI's not to
  787. # do message storage (siloing) for. Destination/To URI's matching
  788. # this regular expression will not be silo'd.
  789. MessageSiloDestFilterRegex =
  790.  
  791. # A regular expression that can be used to filter which body/content/mime
  792. # types not to do message storage (siloing) for. Content-Type's matching
  793. # this regular expression will not be silo'd.
  794. MessageSiloMimeTypeFilterRegex = application\/im\-iscomposing\+xml
  795.  
  796. # The number of seconds a message request will be stored in the message silo.
  797. # Messages older than this time, are candidates for deletion.
  798. # Default (259200 seconds = 30 days)
  799. MessageSiloExpirationTime = 2592000
  800.  
  801. # Flag to indicate if a Date header should be added to replayed SIP
  802. # MESSAGEs from the silo, when a user registers.
  803. MessageSiloAddDateHeader = true
  804.  
  805. # Defines the maximum message content length (bytes) that will be stored in
  806. # the message silo. Messages with a Content-Length larger than this
  807. # value will be discarded.
  808. # WARNING: Do not increasing this value beyond the capabilities of the
  809. # database storage or internal buffers.
  810. # Note: AbstractDb uses a read buffer size of 8192 - do not exceed this size.
  811. MessageSiloMaxContentLength = 4096
  812.  
  813. # The status code returned to the sender when a messages is successfully
  814. # silo'd.
  815. MessageSiloSuccessStatusCode = 202
  816.  
  817. # The status code returned to the sender when a messages mime-type matches
  818. # the MessageSiloMimeTypeFilterRegex. Can be used to avoid sending errors
  819. # to isComposing mime bodies that don't need to be silod. Set to 0 to use
  820. # repro standard response (ie. 480).
  821. MessageSiloFilteredMimeTypeStatusCode = 200
  822.  
  823. # The status code returned to the sender when a messages is not silo'd due
  824. # to the MaxContentLength being exceeded.
  825. MessageSiloFailureStatusCode = 480
  826.  
  827.  
  828. ########################################################
  829. # Recursive Redirect Lemur Settings
  830. ########################################################
  831.  
  832. # Handle 3xx responses in the proxy - enables the Recursive Redirect Lemur
  833. RecursiveRedirect = false
  834.  
  835.  
  836. ########################################################
  837. # Geo Proximity Target Sorter Baboon Settings
  838. ########################################################
  839.  
  840. # If enabled, then this baboon can post-process the target list.
  841. # This includes targets from the StaticRoute monkey and/or targets
  842. # from the LocationServer monkey. Requests that meet the filter
  843. # criteria will have their Target list, flatened (serialized) and
  844. # ordered based on the proximity of the target to the client sending
  845. # the request. Proximity is determined by looking for a
  846. # x-repro-geolocation="<latitude>,<longitude>" parameter on the Contact
  847. # header of a received request, or the Contact headers of Registration
  848. # requests. If this parameter is not found, then this processor will
  849. # attempt to determine the public IP address closest to the client or
  850. # target and use the MaxMind Geo IP library to lookup the geo location.
  851. GeoProximityTargetSorting = false
  852.  
  853. # Specify the full path to the IPv4 Geo City database file
  854. # Note: A free version of the database can be downloaded from here:
  855. # http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
  856. # For a more accurate database, please see the details here:
  857. # http://www.maxmind.com/app/city
  858. GeoProximityIPv4CityDatabaseFile = GeoLiteCity.dat
  859.  
  860. # Specify the full path to the IPv6 Geo City database file
  861. # Note: A free version of the database can be downloaded from here:
  862. # http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/
  863. # For a more accurate database, please see the details here:
  864. # http://www.maxmind.com/app/city
  865. # Leave blank to disable V6 lookups. Saves memory (if not required).
  866. #GeoProximityIPv6CityDatabaseFile = GeoLiteCityv6.dat
  867. GeoProximityIPv6CityDatabaseFile =
  868.  
  869. # This setting specifies a PCRE compliant regular expression to attempt
  870. # to match against the request URI of inbound requests. Any requests
  871. # matching this expression, will have their targets sorted as described
  872. # above. Leave blank to match all requests.
  873. GeoProximityRequestUriFilter = ^sip:mediaserver.*@mydomain.com$
  874.  
  875. # The distance (in Kilometers) to use for proximity sorting, when the
  876. # Geo Location of a target cannot be determined.
  877. GeoProximityDefaultDistance = 0
  878.  
  879. # If enabled, then targets that are determined to be of equal distance
  880. # from the client, will be placed in a random order.
  881. LoadBalanceEqualDistantTargets = true
  882.  
  883.  
  884. ########################################################
  885. # Q-Value Target Handler Baboon Settings
  886. ########################################################
  887.  
  888. # Enable sequential q-value processing - enables the Baboon
  889. QValue = true
  890.  
  891. # Specify forking behavior for q-value targets: FULL_SEQUENTIAL, EQUAL_Q_PARALLEL,
  892. # or FULL_PARALLEL
  893. QValueBehavior = EQUAL_Q_PARALLEL
  894.  
  895. # Whether to cancel groups of parallel forks after the period specified by the
  896. # QValueMsBeforeCancel parameter.
  897. QValueCancelBetweenForkGroups = true
  898.  
  899. # msec to wait before cancelling parallel fork groups when QValueCancelBetweenForkGroups
  900. # is true
  901. QValueMsBeforeCancel = 30000
  902.  
  903. # Whether to wait for parallel fork groups to terminate before starting new fork-groups.
  904. QValueWaitForTerminateBetweenForkGroups = true
  905.  
  906. # msec to wait before starting new groups of parallel forks when
  907. # QValueWaitForTerminateBetweenForkGroups is false
  908. QValueMsBetweenForkGroups = 3000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement