Settings.xml

The SIPIS configuration file is an XML file defined by the following schema.

<xs:element name="Sipis">
 <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Server" minOccurs="1" maxOccurs="1"><xs:element name="HttpServer" minOccurs="1" maxOccurs="1"><xs:element name="Administrator" minOccurs="1" maxOccurs="1"><xs:element name="Database" minOccurs="1" maxOccurs="1"><xs:element name="Lock" minOccurs="1" maxOccurs="1"><xs:element name="Log" minOccurs="1" maxOccurs="1"><xs:element name="NotificationServers" minOccurs="1" maxOccurs="1"><xs:element name="IgnoredAppIds" minOccurs="0" maxOccurs="1"><xs:element name="TlsClientCertificates" minOccurs="0" maxOccurs="1"><xs:element name="TrustedCertificates" minOccurs="0" maxOccurs="1">
        <xs:element name="Instance" minOccurs="1" maxOccurs="1"><xs:element name="IncomingCall" minOccurs="0" maxOccurs="1"><xs:element name="PushTest" minOccurs="0" maxOccurs="1"></xs:choice>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Sipis/Server

This element defines properties of the UDP server that processes SIPIS messages coming from softphones and also common properties of SIP clients running inside SIPIS.

<xs:element name="Server" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="Address" type="xs:string" use="required" />
    <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
    <xs:attribute name="PublicAddress" type="xs:string" default="" use="optional" />
    <xs:attribute name="PrivateAddress" type="xs:string" default="" use="optional" />
  </xs:complexType>
</xs:element>
Sipis/Server[Name]
Each SIPIS must be assigned a unique name. This name is used in a few SQL queries.
Sipis/Server[Address]
This attribute specifies an IPv4 address the UDP server binds to. This address is used by softphone to communicate with SIPIS. Use 0.0.0.0 as a “don’t care” value.
Sipis/Server[Port]
This attribute specifies a port number the UDP server binds to. This port number is used by softphone to communicate with SIPIS.
Sipis/Server[PublicAddress]
When specified, this address is used instead of a socket’s local address in the Via and Contact SIP headers if a VoIP provider prohibits local addresses in those headers (DiscoverGlobalIP=Yes).
Sipis/Server[PrivateAddress]
When specified, this address is used instead of a socket’s local address in the Via and Contact SIP headers if a VoIP provider permits local addresses in those headers (DiscoverGlobalIP=No).

Note

In case SIPIS is hosted on a machine with only a public interface it is advisable to specify an arbitrary private address in the Sipis/Server[PrivateAddress] attribute. This allows sipis to properly simulate being behind NAT, which helps interoperability with certain service providers.

Sipis/HttpServer

The HTTP server, built into SIPIS, can be used to display various server statistics in a web browser.

Use http://<SIPIS Host Name>:<SIPIS HTTP Server Port>/stats URI to access these statistics.

<xs:element name="HttpServer" minOccurs="1" maxOccurs="1">
<xs:complexType>
    <xs:attribute name="Address" type="xs:string" use="required" />
    <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
  </xs:complexType>
</xs:element>
Sipis/HttpServer[Address]
This attribute specifies an IPv4 address the HTTP server binds to. Use 0.0.0.0 as a “don’t care” value.
Sipis/HttpServer[Port]
This attribute specifies a port number the HTTP server binds to.

Sipis/Administrator

This element specifies administrator’s credentials required to perform actions via the built-in HTTP server.

Note that some (most) web browsers will cache the entered credentials and will use these cached values whenever a server issues another challenge — in other words, they will not ask the user for the credentials ever again. It is therefore advisable not to leave the administrator’s workstation unattended.

<xs:element name="Administrator" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:attribute name="UserName" type="xs:string" use="required" />
    <xs:attribute name="Password" type="xs:string" use="required" />
  </xs:complexType>
</xs:element>
Sipis/Administrator[UserName]
This attribute specifies administrator’s user name.
Sipis/Administrator[Password]
This attribute specifies administrator’s password in plain text.

Sipis/Database

This element provides information about the backend PostgreSQL database.

When a connection to database fails, SIPIS waits one second before trying to establish a new connection to the same database. If the new connection cannot be established, SIPIS tries to connect to alternative databases in a round robin fashion, waiting one second before each connection attempt. If no database can be contacted, SIPIS retries this entire cycle ten times before it finally gives up and shuts itself down.

<xs:element name="Database" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
    <xs:choice maxOccurs="unbounded">
        <xs:element name="Alternatives" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Alternative" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                <xs:attribute name="OpenString" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="OpenString" type="xs:string" use="required" />
  </xs:complexType>
</xs:element>
Sipis/Database[OpenString]
This attribute specifies a database connection string which is passed directly to the PQconnectdb function.
Sipis/Database/Alternatives/Alternative[OpenString]
This attribute specifies an alternative database connection string which is passed directly to the PQconnectdb function.

Sipis/Lock

<xs:element name="Lock" minOccurs="1" maxOccurs="1">
<xs:complexType>
    <xs:attribute name="FileName" type="xs:string" use="required" />
  </xs:complexType>
</xs:element>
Sipis/Lock[FileName]
This attribute specifies a path and a file name of the lock file which is used to prevent multiple SIPIS binaries running with the same settings on the same machine. For easy identification, the file name should include the server’s name as specified in Sipis/Server[Name].

Sipis/Log

This element specifies where SIPIS is supposed to store its diagnostic logs and what to include in them.

<xs:element name="Log" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Email" minOccurs="0" maxOccurs="1"><xs:element name="Http" minOccurs="0" maxOccurs="1"><xs:element name="Instance" minOccurs="0" maxOccurs="unbounded"></xs:choice>
    </xs:sequence>
    <xs:attribute name="Level" type="LogLevelType" use="optional" default="Warning" />
    <xs:attribute name="Stdio" type="StdioType" use="optional" default="Stdout" />
    <xs:attribute name="FileName" type="xs:string" use="optional" />
    <xs:attribute name="InstanceFileName" type="xs:string" use="required" />
    <xs:attribute name="ProblematicInstancesAutomatically" type="YesNoType" use="required" />
  </xs:complexType>
</xs:element>
Sipis/Log[Level] (since 3.20)

This attribute specifies the verbosity of the diagnostic log. There are three levels defined: Info, Warning and Error.

Default value: Warning.

Sipis/Log[Stdio] (since 3.20)

This attribute specifies the standard stream to write the diagnostic log to. Supported values are: None, Stdout and Stderr.

Default value: Stdout.

Sipis/Log[FileName] (required upto 3.19; optional since 3.20)
This attribute specifies a path and a file name of the main log file.
Sipis/Log[InstanceFileName]
This attribute specifies a path and a file name of an instance specific log file. The path or file name should include the $SELECTOR$ placeholder which will be replaced by the actual instance selector.
Sipis/Log[ProblematicInstancesAutomatically]
This attribute specifies whether or not SIPIS should turn instance logging on automatically, when it detects problems with a particular instance.

Sipis/Log/Email

SIPIS is able to send e-mails supplying an administrator with a periodically generated summary information about its logging activity or notifying an administrator about predetermined logging events.

<xs:element name="Email" minOccurs="0" maxOccurs="1">
<xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Summary" minOccurs="0" maxOccurs="1"><xs:element name="Excerpt" minOccurs="0" maxOccurs="1"></xs:choice>
    </xs:sequence>
    <xs:attribute name="To" type="xs:string" use="required" />
    <xs:attribute name="From" type="xs:string" use="required" />
  </xs:complexType>
</xs:element>
Sipis/Log/Email[To]
This attribute specifies an e-mail address SIPIS sends its e-mails to.
Sipis/Log/Email[From]
This attribute specifies an e-mail address SIPIS places in the From header field of its e-mail messages.

Sipis/Log/Email/Summary

This element specifies information about periodic summary e-mails.

<xs:element name="Summary" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Period" type="DurationType" minOccurs="1" maxOccurs="1" />
        <xs:element name="StartingAt" type="DayTimeType" minOccurs="1" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Enabled" type="YesNoType"  use="required"/>
  </xs:complexType>
</xs:element>
Sipis/Log/Email/Summary[Enabled]
This attribute specifies whether or not SIPIS generates periodic summary e-mails.
Sipis/Log/Email/Summary/Period[Days, Hours, Minutes, Seconds]
These attributes specify a period with which SIPIS generates summary e-mails. Values in all specified attributes accumulate.
Sipis/Log/Email/Summary/StartingAt[Hour, Minute, Second]
These attributes specify at which time of day the period begins.

Sipis/Log/Email/Excerpt

This element specifies information about specific logging events an administrator is interested in. SIPIS includes log excerpts of these events inside the generated e-mails.

<xs:element name="Excerpt" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="MinPeriod" type="DurationType" minOccurs="1" maxOccurs="1" />
        <xs:element name="MaxSize" type="ByteSizeType" minOccurs="0" maxOccurs="1" />
        <xs:element name="Filter" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:choice maxOccurs="unbounded">
                <xs:element name="Include" type="LogEmailExcerptFilterEntryType" />
                <xs:element name="Exclude" type="LogEmailExcerptFilterEntryType" />
              </xs:choice>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Enabled" type="YesNoType"  use="required"/>
  </xs:complexType>
</xs:element>
Sipis/Log/Email/Excerpt[Enabled]
This attribute specifies whether or not SIPIS pays attention to particular logging events.
Sipis/Log/Email/Excerpt/MinPeriod[Days, Hours, Minutes, Seconds]
These attributes specify the minimal period with which SIPIS will send notification e-mails. This period starts automatically whenever a logging event passes the filter for the first time after the previous notification e-mail was sent. Additional desired logging events are accumulated to be sent at once at the end of this period.
Sipis/Log/Email/Excerpt/MaxSize[MegaBytes, KiloBytes, Bytes]

These attributes specify the maximal size of the generated e-mail message. Values in all specified attributes accumulate.

SIPIS never generates notification e-mail larger than this specified maximum size, truncating the log excerpt if necessary.

Sipis/Log/Email/Excerpt/Filter

This element specifies sequence of tests all logging events pass through. These tests are performed in the same order as specified here. Each successful test overwrites a boolean variable with either true (Include rule) or false (Exclude rule) value. The starting value of this variable is true and its final value determines whether an event should be included in the log excerpt.

Sipis/Log/Email/Excerpt/Filter/Include and Sipis/Log/Email/Excerpt/Filter/Exclude

These elements define the result of a single test performed by the logging event filter. The test succeeds when all the specified attributes match.

<xs:complexType name="LogEmailExcerptFilterEntryType">
  <xs:attribute name="Severity" default="*" use="optional" >
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="*" />
        <xs:enumeration value="Debug" />    <!-- Since 3.29 -->
        <xs:enumeration value="Info" />
        <xs:enumeration value="Warning" />
        <xs:enumeration value="Error" />
        <xs:enumeration value="Bug" />      <!-- Since 3.29 -->
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="Source" type="xs:string" default="*" use="optional" />
  <xs:attribute name="Field" default="Message" use="optional" >
    <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Message" />
      <xs:enumeration value="Detail" />
      <xs:enumeration value="Data" />
    </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="DetailName" type="xs:string" default="" use="optional" />
  <xs:attribute name="StartsWith" type="xs:string" default="" use="optional" />
  <xs:attribute name="Contains" type="xs:string" default="" use="optional" />
  <xs:attribute name="Enabled" type="YesNoType" use="required" />
</xs:complexType>
Sipis/Log/Email/Excerpt/Filter/Include[Severity] and Sipis/Log/Email/Excerpt/Filter/Exclude[Severity]
This attribute matches the logging event’s severity. Possible values are Debug, Info, Warning, Error, Bug or *.
Sipis/Log/Email/Excerpt/Filter/Include[Source] and Sipis/Log/Email/Excerpt/Filter/Exclude[Source]
This attribute matches the logging event’s source. The matching is case insensitive.
Sipis/Log/Email/Excerpt/Filter/Include[Field] and Sipis/Log/Email/Excerpt/Filter/Exclude[Field] (Since 3.29)
This attribute selects the logging event’s field for subsequent matching.
Sipis/Log/Email/Excerpt/Filter/Include[DetailName] and Sipis/Log/Email/Excerpt/Filter/Exclude[DetailName] (Since 3.29)
This attribute selects the particular logging event’s detail (if Field=’Detail’) for subsequent matching.
Sipis/Log/Email/Excerpt/Filter/Include[StartsWith] and Sipis/Log/Email/Excerpt/Filter/Exclude[StartsWith]
This attribute matches if the selected logging event field starts with the specified string. The matching is case insensitive.
Sipis/Log/Email/Excerpt/Filter/Include[Contains] and Sipis/Log/Email/Excerpt/Filter/Exclude[Contains]
This attribute matches if the selected logging event field contains the specified string. The matching is case insensitive.
Sipis/Log/Email/Excerpt/Filter/Include[Enabled] and Sipis/Log/Email/Excerpt/Filter/Exclude[Enabled]
This attribute specifies whether or not this rule is skipped during the filtering process.

Sipis/Log/Http

<xs:element name="Http" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Filter" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:choice maxOccurs="unbounded">
                <xs:element name="Include" type="LogHttpFilterEntryType" />
                <xs:element name="Exclude" type="LogHttpFilterEntryType" />
              </xs:choice>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="RequestBody" type="YesNoType" use="optional" default="No" />
  </xs:complexType>
</xs:element>
Sipis/Log/Http[RequestBody]
This attribute specifies whether SIPIS should log HTTP request bodies.

Sipis/Log/Http/Filter

This element specifies sequence of tests all HTTP requests pass through. These tests are performed in the same order as specified here. Each successful test overwrites a boolean variable with either true (Include rule) or false (Exclude rule) value. The starting value of this variable is true and its final value determines whether an HTTP request should be written into the log.

Sipis/Log/Http/Filter/Include and Sipis/Log/Http/Filter/Exclude

These elements define the result of a single test performed by the HTTP request filter. The test succeeds when all the specified attributes match.

<xs:complexType name="LogHttpFilterEntryType">
  <xs:sequence>
    <xs:choice maxOccurs="unbounded">
      <xs:element name="Uri" minOccurs="0" maxOccurs="1">
        <xs:complexType>
          <xs:attribute name="StartsWith" type="xs:string" default="" use="optional" />
          <xs:attribute name="Contains" type="xs:string" default="" use="optional" />
          <xs:attribute name="EndsWith" type="xs:string" default="" use="optional" />
        </xs:complexType>
      </xs:element>
      <xs:element name="Header" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="Name" type="xs:string" use="required" />
          <xs:attribute name="StartsWith" type="xs:string" default="" use="optional" />
          <xs:attribute name="Contains" type="xs:string" default="" use="optional" />
          <xs:attribute name="EndsWith" type="xs:string" default="" use="optional" />
        </xs:complexType>
      </xs:element>
    </xs:choice>
  </xs:sequence>
  <xs:attribute name="Method" default="*" use="optional" />
  <xs:attribute name="Response" default="*" use="optional" />
  <xs:attribute name="Enabled" type="YesNoType" use="required" />
</xs:complexType>
Sipis/Log/Http/Filter/Include[Method] and Sipis/Log/Http/Filter/Exclude[Method]
This attribute matches the HTTP request method. The matching is case insensitive. Possible values are GET, POST or *.
Sipis/Log/Http/Filter/Include[Response] and Sipis/Log/Http/Filter/Exclude[Response]
This attribute matches the HTTP response code.
Sipis/Log/Http/Filter/Include[Enabled] and Sipis/Log/Http/Filter/Exclude[Enabled]
This attribute specifies whether or not this rule is skipped during the filtering process.
Sipis/Log/Http/Filter/Include/Header[Name] and Sipis/Log/Http/Filter/Exclude/Header[Name]
This attribute specifies the HTTP request header name whose value is to be tested.
Sipis/Log/Http/Filter/Include/Uri[StartsWith], Sipis/Log/Http/Filter/Exclude/Uri[StartsWith], Sipis/Log/Http/Filter/Include/Header[StartsWith] and Sipis/Log/Http/Filter/Exclude/Header[StartsWith]
This attribute matches if the HTTP request uri or a particular header value starts with the specified string. The matching is case insensitive.
Sipis/Log/Http/Filter/Include/Uri[Contains], Sipis/Log/Http/Filter/Exclude/Uri[Contains], Sipis/Log/Http/Filter/Include/Header[Contains] and Sipis/Log/Http/Filter/Exclude/Header[Contains]
This attribute matches if the HTTP request uri or a particular header value contains the specified string. The matching is case insensitive.
Sipis/Log/Http/Filter/Include/Uri[EndsWith], Sipis/Log/Http/Filter/Exclude/Uri[EndsWith], Sipis/Log/Http/Filter/Include/Header[EndsWith] and Sipis/Log/Http/Filter/Exclude/Header[EndsWith]
This attribute matches if the HTTP request uri or a particular header value ends with the specified string. The matching is case insensitive.

Sipis/Log/Instance

This element allows you to turn logging on for a specific instance based on its selector.

<xs:element name="Instance" minOccurs="0" maxOccurs="unbounded">
  <xs:complexType>
    <xs:attribute name="Selector" type="xs:string" use="required" />
  </xs:complexType>
</xs:element>
Sipis/Log/Instance[Selector]
You can also specify a single star character * to turn instance logging on for all instances managed by SIPIS.

Sipis/NotificationServers

This element provides information about all Push Notification Mediator servers that are available to process push notifications generated by SIPIS.

<xs:element name="NotificationServers" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="NotificationServer" minOccurs="1" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Alternatives" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Alternative" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:attribute name="Host" type="xs:string" use="required" />
                        <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
                        <xs:attribute name="RequiresTls" type="YesNoType" use="optional" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:choice>
          </xs:sequence>
          <xs:attribute name="Name" type="xs:string" use="required" />
          <xs:attribute name="Host" type="xs:string" use="required" />
          <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
          <xs:attribute name="RequiresTls" type="YesNoType" use="optional" />
          <xs:attribute name="Premium" type="YesNoType" use="optional" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Sipis/NotificationServers/NotificationServer[Name]
Each notification server must be assigned a unique name. Moreover, this name must be known to softphone. Note this attribute is also known as AppId.
Sipis/NotificationServers/NotificationServer[Host]
This attribute specifies a host address of the notification server. It can be FQDN.
Sipis/NotificationServers/NotificationServer/Alternatives/Alternative[Host]
This attribute specifies an alternative host address of the notification server. It can be FQDN.
Sipis/NotificationServers/NotificationServer[Port]
This attribute specifies a port number the notification server listens on.
Sipis/NotificationServers/NotificationServer/Alternatives/Alternative[Port]
This attribute specifies a port number the alternative notification server listens on.
Sipis/NotificationServers/NotificationServer[RequiresTls]
This attribute specifies whether SIPIS must use TLS to communicate with this notification server.
Sipis/NotificationServers/NotificationServer/Alternatives/Alternative[RequiresTls]
This attribute specifies whether SIPIS must use TLS to communicate with the alternative notification server. This attribute is optional for the alternative servers — when missing the value from the primary server is assumed.
Sipis/NotificationServers/NotificationServer[Premium]
This attribute specifies whether instances using this notification server should be treated as premium.

Sipis/IgnoredAppIds (Since 3.20)

This element provides information about applications whose requests will be ignored by SIPIS.

<xs:element name="IgnoredAppIds" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="AppId" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="Name" type="xs:string" use="required" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Sipis/IgnoredAppIds/AppId[Name]
This attribute specifies the banned application’s identifier (AppId).

Sipis/TlsClientCertificates

This element provides information about all installed client certificates used for TLS negotiation.

<xs:element name="TlsClientCertificates" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Certificate" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="Host" type="xs:string" use="required" />
          <xs:attribute name="FileName" type="xs:string" use="required" />
          <xs:attribute name="RsaPrivateKeyFileName" type="xs:string" use="required" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Sipis/TlsClientCertificates/Certificate[Host]
This attribute specifies FQDN of a server this certificate is intended for.
Sipis/TlsClientCertificates/Certificate[FileName]
This attribute specifies a path and a file name of a DER[+PEM] encoded X.509 certificate.
Sipis/TlsClientCertificates/Certificate[RsaPrivateKeyFileName]
This attribute specifies a path and a file name of a DER[+PEM] encoded RSA private key corresponding to this certificate.

Sipis/TrustedCertificates

This element provides information about trusted certificates. These are primarily used for verifying TLS server certificates.

Note

This element is optional; when absent, SIPIS doesn’t verify TLS server certificates.

<xs:element name="TrustedCertificates" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:attribute name="FileName" type="xs:string" use="required" />
  </xs:complexType>
</xs:element>
Sipis/TrustedCertificates[FileName]
This attribute specifies a path and a file name of a bundle of PEM encoded X.509 certificates. Individual certificates are expected to be delimited by
-----BEGIN CERTIFICATE-----
    ⋮
-----END CERTIFICATE-----

Sipis/Instance

<xs:element name="Instance" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="MaxAge" type="DurationType" minOccurs="1" maxOccurs="1" />
        <xs:element name="PremiumMaxAge" type="DurationType" minOccurs="1" maxOccurs="1" />
        <xs:element name="NotRegisteredMaxAge" type="DurationType" minOccurs="0" maxOccurs="1" />
        <xs:element name="AboutToExpireIn" minOccurs="1" maxOccurs="1">
        <xs:complexType>
          <xs:complexContent>
          <xs:extension base="DurationType">
            <xs:sequence>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Silent" type="DurationType" minOccurs="0" maxOccurs="1" />
              <xs:element name="Intrusive" type="DurationType" minOccurs="0" maxOccurs="1" />
            </xs:choice>
            </xs:sequence>
          </xs:extension>
          </xs:complexContent>
        </xs:complexType>
        </xs:element>
        <xs:element name="AboutToExpirePeriod" minOccurs="0" maxOccurs="1">
        <xs:complexType>
          <xs:complexContent>
          <xs:extension base="DurationType">
            <xs:sequence>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Silent" type="DurationType" minOccurs="0" maxOccurs="1" />
              <xs:element name="Intrusive" type="DurationType" minOccurs="0" maxOccurs="1" />
            </xs:choice>
            </xs:sequence>
          </xs:extension>
          </xs:complexContent>
        </xs:complexType>
        </xs:element>
        <xs:element name="KeepAlivePackets" minOccurs="0" maxOccurs="1"></xs:choice>
    </xs:sequence>
    <xs:attribute name="UserAgent" type="xs:string" use="optional" />
    <xs:attribute name="EnableToHeaderMismatch" type="YesNoType" use="optional" />
        <!-- When absent, the default value is taken form user's preferences. -->
    <xs:attribute name="AllowSipProxiesWithPrivateIpAddresses" type="YesNoType" use="optional" default="Yes" />
  </xs:complexType>
</xs:element>
Sipis/Instance[UserAgent]

This attribute specifies the string used by SIPIS to populate the SIP User-Agent header.

Default value: “Acrobits SIPIS; http://www.acrobits.net”.

Sipis/Instance[EnableToHeaderMismatch]

This attribute specifies global override of the “enable To header mismatch” option.

Default value: Supplied by clients during registration.

Sipis/Instance[AllowSipProxiesWithPrivateIpAddresses] (since 3.33)

This attribute specifies whether SIPIS should accept instances whose SIP proxy setting contain private IP address.

Default value: Yes

Note

Older versions of SIPIS don’t accept instances whose SIP proxy setting contain private IP address.

Sipis/Instance/MaxAge[Days, Hours, Minutes, Seconds]
This attribute specifies a period of softphone’s inactivity after which SIPIS will turn the corresponding SIP client instance off. Values in all specified attributes accumulate.
Sipis/Instance/PremiumMaxAge[Days, Hours, Minutes, Seconds]
This attribute specifies a period of softphone’s inactivity for premium instances after which SIPIS will turn the corresponding SIP client instance off. Values in all specified attributes accumulate.
Sipis/Instance/NotRegisteredMaxAge[Days, Hours, Minutes, Seconds]

This attribute specifies a period after which SIPIS will turn a SIP client instance off, if the SIP client instance was unable to register successfully at least once during that period. Values in all specified attributes accumulate.

Default value: 12 hours.

Sipis/Instance/AboutToExpireIn[Days, Hours, Minutes, Seconds], Sipis/Instance/AboutToExpireIn/Silent[Days, Hours, Minutes, Seconds] (since 3.20) and Sipis/Instance/AboutToExpireIn/Intrusive[Days, Hours, Minutes, Seconds] (since 3.20)

This attribute specifies how long in advance will SIPIS send the “About To Expire” push notification to clients. Values in all specified attributes accumulate.

(Since 3.20) SIPIS sends two versions of the “About To Expire” push notification: silent and intrusive. These can be sent on independent schedule.

Sipis/Instance/AboutToExpirePeriod[Days, Hours, Minutes, Seconds], Sipis/Instance/AboutToExpirePeriod/Silent[Days, Hours, Minutes, Seconds] (since 3.20) and Sipis/Instance/AboutToExpirePeriod/Intrusive[Days, Hours, Minutes, Seconds] (since 3.20)

This attribute specifies a period at which SIPIS resends the “About To Expire” push notification. Values in all specified attributes accumulate.

(Since 3.20) SIPIS sends two versions of the “About To Expire” push notification: silent and intrusive. These can be sent on independent schedule.

Default value: Is equal to AboutToExpireIn. I.e. by default, the “About To Expire” notification is sent just once.

Sipis/Instance/KeepAlivePackets

<xs:element name="KeepAlivePackets" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Period" type="DurationType" minOccurs="1" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Enabled" type="YesNoType" use="required" />
  </xs:complexType>
</xs:element>
Sipis/Instance/KeepAlivePackets[Enabled]
This attribute specifies whether or not SIP client instances running inside SIPIS will send keep alive packets.
Sipis/Instance/KeepAlivePackets/Period[Days, Hours, Minutes, Seconds]
These attributes specify a period between keep alive packets sent by SIP client instances running inside SIPIS. Values in all specified attributes accumulate.

Sipis/IncomingCall

<xs:element name="IncomingCall" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="NotAnsweredMaxAge" type="DurationType" minOccurs="0" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Sipis/IncomingCall/NotAnsweredMaxAge[Days, Hours, Minutes, Seconds]

These attributes specify a period after which SIPIS will hang up an incoming call automatically, if the call is not answered within that period. Values in all specified attributes accumulate.

Default value: 2 minutes.

Sipis/PushTest

<xs:element name="PushTest" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="MinAge" type="DurationType" minOccurs="0" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Sipis/PushTest/MinAge[Days, Hours, Minutes, Seconds]

These attributes specify a minimal period for which a push test information will be retained in the database. Values in all specified attributes accumulate.

Default value: 7 days.

Complete XML schema

<?xml version="1.0" encoding="utf-8"?>
<xs:schema
  xmlns="http://acrobits.net/SipisSettings.xsd"
  targetNamespace="http://acrobits.net/SipisSettings.xsd"
  elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:simpleType name="YesNoType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="HourType">
    <xs:restriction base="xs:unsignedInt">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="23" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="MinuteType">
    <xs:restriction base="xs:unsignedInt">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="59" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SecondType">
    <xs:restriction base="xs:unsignedInt">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="59" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="DurationType">
    <xs:attribute name="Days" type="xs:unsignedInt" use="optional" />
    <xs:attribute name="Hours" type="xs:unsignedInt" use="optional" />
    <xs:attribute name="Minutes" type="xs:unsignedInt" use="optional" />
    <xs:attribute name="Seconds" type="xs:unsignedInt" use="optional" />
  </xs:complexType>

  <xs:complexType name="DayTimeType">
    <xs:attribute name="Hour" type="HourType" use="optional" />
    <xs:attribute name="Minute" type="MinuteType" use="optional" />
    <xs:attribute name="Second" type="SecondType" use="optional" />
  </xs:complexType>

  <xs:complexType name="ByteSizeType">
    <xs:attribute name="MegaBytes" type="xs:unsignedInt" use="optional" />
    <xs:attribute name="KiloBytes" type="xs:unsignedInt" use="optional" />
    <xs:attribute name="Bytes" type="xs:unsignedInt" use="optional" />
  </xs:complexType>

  <xs:simpleType name="LogLevelType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Info" />
      <xs:enumeration value="Warning" />
      <xs:enumeration value="Error" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="StdioType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="Stdout" />
      <xs:enumeration value="Stderr" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="LogEmailExcerptFilterEntryType">
    <xs:attribute name="Severity" default="*" use="optional" >
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="*" />
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Bug" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="Source" type="xs:string" default="*" use="optional" />
    <xs:attribute name="Field" default="Message" use="optional" >
      <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="Message" />
        <xs:enumeration value="Detail" />
        <xs:enumeration value="Data" />
      </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="DetailName" type="xs:string" default="" use="optional" />
    <xs:attribute name="StartsWith" type="xs:string" default="" use="optional" />
    <xs:attribute name="Contains" type="xs:string" default="" use="optional" />
    <xs:attribute name="Enabled" type="YesNoType" use="required" />
  </xs:complexType>

  <xs:complexType name="LogHttpFilterEntryType">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Uri" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:attribute name="StartsWith" type="xs:string" default="" use="optional" />
            <xs:attribute name="Contains" type="xs:string" default="" use="optional" />
            <xs:attribute name="EndsWith" type="xs:string" default="" use="optional" />
          </xs:complexType>
        </xs:element>
        <xs:element name="Header" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="Name" type="xs:string" use="required" />
            <xs:attribute name="StartsWith" type="xs:string" default="" use="optional" />
            <xs:attribute name="Contains" type="xs:string" default="" use="optional" />
            <xs:attribute name="EndsWith" type="xs:string" default="" use="optional" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Method" default="*" use="optional" />
    <xs:attribute name="Response" default="*" use="optional" />
    <xs:attribute name="Enabled" type="YesNoType" use="required" />
  </xs:complexType>

  <xs:element name="Sipis">
    <xs:complexType>
      <xs:sequence>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="Server" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:attribute name="Name" type="xs:string" use="required" />
              <xs:attribute name="Address" type="xs:string" use="required" />
              <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
              <xs:attribute name="PublicAddress" type="xs:string" default="" use="optional" />
              <xs:attribute name="PrivateAddress" type="xs:string" default="" use="optional" />
            </xs:complexType>
          </xs:element>
          <xs:element name="HttpServer" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:attribute name="Address" type="xs:string" use="required" />
              <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
            </xs:complexType>
          </xs:element>
          <xs:element name="Administrator" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:attribute name="UserName" type="xs:string" use="required" />
              <xs:attribute name="Password" type="xs:string" use="required" />
            </xs:complexType>
          </xs:element>
          <xs:element name="Database" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:choice maxOccurs="unbounded">
                  <xs:element name="Alternatives" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Alternative" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:attribute name="OpenString" type="xs:string" use="required" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:choice>
              </xs:sequence>
              <xs:attribute name="OpenString" type="xs:string" use="required" />
            </xs:complexType>
          </xs:element>
          <xs:element name="Lock" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:attribute name="FileName" type="xs:string" use="required" />
            </xs:complexType>
          </xs:element>
          <xs:element name="Log" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:choice maxOccurs="unbounded">
                  <xs:element name="Email" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:choice maxOccurs="unbounded">
                          <xs:element name="Summary" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:choice maxOccurs="unbounded">
                                  <xs:element name="Period" type="DurationType" minOccurs="1" maxOccurs="1" />
                                  <xs:element name="StartingAt" type="DayTimeType" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                              </xs:sequence>
                              <xs:attribute name="Enabled" type="YesNoType"  use="required"/>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="Excerpt" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:choice maxOccurs="unbounded">
                                  <xs:element name="MinPeriod" type="DurationType" minOccurs="1" maxOccurs="1" />
                                  <xs:element name="MaxSize" type="ByteSizeType" minOccurs="0" maxOccurs="1" />
                                  <xs:element name="Filter" minOccurs="0" maxOccurs="1">
                                    <xs:complexType>
                                      <xs:sequence>
                                        <xs:choice maxOccurs="unbounded">
                                          <xs:element name="Include" type="LogEmailExcerptFilterEntryType" />
                                          <xs:element name="Exclude" type="LogEmailExcerptFilterEntryType" />
                                        </xs:choice>
                                      </xs:sequence>
                                    </xs:complexType>
                                  </xs:element>
                                </xs:choice>
                              </xs:sequence>
                              <xs:attribute name="Enabled" type="YesNoType"  use="required"/>
                            </xs:complexType>
                          </xs:element>
                        </xs:choice>
                      </xs:sequence>
                      <xs:attribute name="To" type="xs:string" use="required" />
                      <xs:attribute name="From" type="xs:string" use="required" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Http" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:choice maxOccurs="unbounded">
                          <xs:element name="Filter" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:choice maxOccurs="unbounded">
                                  <xs:element name="Include" type="LogHttpFilterEntryType" />
                                  <xs:element name="Exclude" type="LogHttpFilterEntryType" />
                                </xs:choice>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:choice>
                      </xs:sequence>
                      <xs:attribute name="RequestBody" type="YesNoType" use="optional" default="No" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Instance" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:attribute name="Selector" type="xs:string" use="required" />
                    </xs:complexType>
                  </xs:element>
                </xs:choice>
              </xs:sequence>
              <xs:attribute name="Level" type="LogLevelType" use="optional" default="Warning" />
              <xs:attribute name="Stdio" type="StdioType" use="optional" default="Stdout" />
              <xs:attribute name="FileName" type="xs:string" use="required" />
              <xs:attribute name="InstanceFileName" type="xs:string" use="required" />
              <xs:attribute name="ProblematicInstancesAutomatically" type="YesNoType" use="required" />
            </xs:complexType>
          </xs:element>
          <xs:element name="NotificationServers" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="NotificationServer" minOccurs="1" maxOccurs="unbounded">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:choice maxOccurs="unbounded">
                        <xs:element name="Alternatives" minOccurs="0" maxOccurs="1">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Alternative" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
                                  <xs:attribute name="Host" type="xs:string" use="required" />
                                  <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
                                  <xs:attribute name="RequiresTls" type="YesNoType" use="optional" />
                                </xs:complexType>
                              </xs:element>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:choice>
                    </xs:sequence>
                    <xs:attribute name="Name" type="xs:string" use="required" />
                    <xs:attribute name="Host" type="xs:string" use="required" />
                    <xs:attribute name="Port" type="xs:unsignedShort" use="required" />
                    <xs:attribute name="Premium" type="YesNoType" use="optional" />
                    <xs:attribute name="RequiresTls" type="YesNoType" use="optional" />
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="IgnoredAppIds" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="AppId" minOccurs="0" maxOccurs="unbounded">
                  <xs:complexType>
                    <xs:attribute name="Name" type="xs:string" use="required" />
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="TlsClientCertificates" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Certificate" minOccurs="0" maxOccurs="unbounded">
                  <xs:complexType>
                    <xs:attribute name="Host" type="xs:string" use="required" />
                    <xs:attribute name="FileName" type="xs:string" use="required" />
                    <xs:attribute name="RsaPrivateKeyFileName" type="xs:string" use="required" />
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="TrustedCertificates" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:attribute name="FileName" type="xs:string" use="required" />
            </xs:complexType>
          </xs:element>
          <xs:element name="Instance" minOccurs="1" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:choice maxOccurs="unbounded">
                  <xs:element name="MaxAge" type="DurationType" minOccurs="1" maxOccurs="1" />
                  <xs:element name="PremiumMaxAge" type="DurationType" minOccurs="1" maxOccurs="1" />
                  <xs:element name="NotRegisteredMaxAge" type="DurationType" minOccurs="0" maxOccurs="1" />
                  <xs:element name="AboutToExpireIn" minOccurs="1" maxOccurs="1">
                    <xs:complexType>
                      <xs:complexContent>
                        <xs:extension base="DurationType">
                          <xs:sequence>
                            <xs:choice maxOccurs="unbounded">
                              <xs:element name="Silent" type="DurationType" minOccurs="0" maxOccurs="1" />
                              <xs:element name="Intrusive" type="DurationType" minOccurs="0" maxOccurs="1" />
                            </xs:choice>
                          </xs:sequence>
                        </xs:extension>
                      </xs:complexContent>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="AboutToExpirePeriod" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                      <xs:complexContent>
                        <xs:extension base="DurationType">
                          <xs:sequence>
                            <xs:choice maxOccurs="unbounded">
                              <xs:element name="Silent" type="DurationType" minOccurs="0" maxOccurs="1" />
                              <xs:element name="Intrusive" type="DurationType" minOccurs="0" maxOccurs="1" />
                            </xs:choice>
                          </xs:sequence>
                        </xs:extension>
                      </xs:complexContent>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="KeepAlivePackets" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:choice maxOccurs="unbounded">
                          <xs:element name="Period" type="DurationType" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                      </xs:sequence>
                      <xs:attribute name="Enabled" type="YesNoType" use="required" />
                    </xs:complexType>
                  </xs:element>
                </xs:choice>
              </xs:sequence>
              <xs:attribute name="UserAgent" type="xs:string" use="optional" />
              <xs:attribute name="EnableToHeaderMismatch" type="YesNoType" use="optional" />
                  <!-- When absent, the default value is taken form user's preferences. -->
              <xs:attribute name="AllowSipProxiesWithPrivateIpAddresses" type="YesNoType" use="optional" default="Yes" />
            </xs:complexType>
          </xs:element>
          <xs:element name="IncomingCall" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:choice maxOccurs="unbounded">
                  <xs:element name="NotAnsweredMaxAge" type="DurationType" minOccurs="0" maxOccurs="1" />
                </xs:choice>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="PushTest" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:choice maxOccurs="unbounded">
                  <xs:element name="MinAge" type="DurationType" minOccurs="0" maxOccurs="1" />
                </xs:choice>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Sample Settings File

<Sipis>
  <Server
    Name="SipisOne"
    Address="0.0.0.0"
    Port="4999" />

  <HttpServer
    Address="0.0.0.0"
    Port="5000" />

  <Administrator
    UserName="Admin"
    Password="p9df35d" />

  <Database
    OpenString="host=db.example.com port=5432 dbname=sipis user=sipis password=unbreakable" />

  <Lock
    FileName="/var/lock/LCK..SipisOne"/>

  <Log
    FileName="/var/log/sipis/sipis.log"
    InstanceFileName="/var/log/sipis/$SELECTOR$.log"
    ProblematicInstancesAutomatically="Yes">

    <Instance Selector="15798A2A962EC466FBC18C58EBF4AF1372BDB943" />

  </Log>

  <NotificationServers>

    <NotificationServer
      Name="own"
      Host="localhost"
      Port="2195"
      RequiresTls="No"
      Premium="Yes" />

  </NotificationServers>

  <Instance>
    <MaxAge Days="3" Hours="0" Minutes="0" />
    <PremiumMaxAge Days="7" Hours="0" Minutes="0" />
    <NotRegisteredMaxAge Days="0" Hours="6" Minutes="0" />
    <AboutToExpireIn Hours="24" />
    <AboutToExpirePeriod Hours="11" />
  </Instance>

  <IncomingCall>
    <NotAnsweredMaxAge Days="0" Hours="0" Minutes="1" />
  </IncomingCall>

</Sipis>