<commit_before><drachtio>

    <!-- udp port to listen on for client connections (default 8022), and shared secret used to authenticate clients -->
	<admin port="9022" secret="cymru">localhost</admin>
  
    <!-- sip configuration -->
    <sip>
        <contacts>
            <contact>sip:*;transport=udp,tcp</contact>
        </contacts>

        <!-- if you want to change the sip timers
            <timers>
                <t1>500</t1>
                <t2>4000</t2>
                <t4>5000</t4>
                <t1x64>32000</t1x64>
            </timers>
        -->

        <!-- uncommenting this will cause all new requests (i.e. requests outside of a dialog) to go through the specified proxy -->
        <!--
        <outbound-proxy>sip:10.10.10.1</outbound-proxy>
        -->

        <!-- optional list of header values which, if encountered in a message will trigger an action
             [tcp-]action="reject|discard"
             reject means send a sip non-success response immediately
             discard means sliently discard the request, generating no response
        -->
        <spammers action="reject" tcp-action="discard">
            <header name="User-Agent">
                <value>sip-cli</value>
                <value>sipcli</value>
                <value>friendly-scanner</value>
            </header>
            <header name="To">
                <value>sipvicious</value>
            </header>
        </spammers>
    </sip>

    <redis>
        <address>127.0.0.1</address>
    </redis>

    <cdrs>true</cdrs>
            
    <!-- logging configuration -->
    <logging>

        <!--
        <syslog>
            <address>my.syslog.serve</address>
            <port>514</port>
            <facility>local6</facility>
        </syslog>
        -->

        <file>
            <!-- file name pattern for log file -->
            <name>/tmp/drachtioLogs//drachtio_%Y%m%d_%H%M%S-%N.log</name>

            <!-- location to collect rotated files (collected each night at midnight) -->
            <archive>/tmp/drachtioLogs/archive</archive>

            <!-- limit rotated files collection when total size in the archive dir reaches this size (in MB) -->
            <maxSize>5120</maxSize> 

            <!-- limit rotated files collection when free space at or below this size (in MB) -->
            <minSize>10240</minSize>

            <auto-flush>true</auto-flush>
        </file>

        <!-- sofia internal log level, from 0 (minimal) to 9 (verbose) -->
        <sofia-loglevel>9</sofia-loglevel>
        
        <!-- notice, warning, error, info, debug.  Default: info -->
        <loglevel>info</loglevel>
    </logging>
        
</drachtio><commit_msg>[Fix] Drachtio config XML<commit_after><drachtio>

    <!-- udp port to listen on for client connections (default 9022), and shared secret used to authenticate clients -->
	<admin port="9022" secret="cymru">127.0.0.1</admin>

    <!-- the server can either accept inbound connections from node apps, or make outbound requests
        to node apps.  You must globally choose one or the other approach but not both.

        Inbound connections requires no configuration other than the <admin/> tag above, and are useful
        when a server is hosting a single application, or has one primary function.

        If, on the other hand, you want a server to support multiple applications, then we have the issue
        of determining how to route an incoming request (INVITE, REGISTER, etc) to the appropriate application.
        This is what outbound connections are designed for.

        By uncommenting the <request-handlers/> configuration below, you are placing the server into outbound mode, and
        providing an HTTP URL that the server will hit to determine how to route an incoming request.
        The following parameters will be passed to the http service as query string parameters in an HTTP GET:

            callingNumber - the user part of the From header
            calledNumber - the user part of the To header
            contentType - the Content-Type header (if any)
            domain - the domain in the request uri
            method - the sip method
            protocol - the transport protocol
            source_address - the sending address
            uriUser - the user part of the sip uri
            uri - the complete sip uri

        It is the responsibility of the HTTP server that receives the request to return a json response
        with a top-level "action" of either "reject", "redirect", "proxy", or "route".

            reject - reject the call with a specified status code
            redirect = redirect the call to one or more specified sip uris
            proxy - proxy the call to one or more specified sip uris
            route - connect to a nodejs application that is listening on the specified host:port

            example responses:

            {
                "action": "reject":
                "data": {
                    "status": 503,
                    "reason": "Max Calls Exceeded"
                }
            }

            {
                "action": "redirect":
                "data": {
                    "contacts": [
                        "sip:<EMAIL>"
                    ]
                }
            }

            {
                "action": "proxy":
                "data": {
                    "destination": [
                        "sip:<EMAIL>"
                    ],
                    recordRoute: true
                }
            }

            {
                "action": "route":
                "data": {
                    "url": "call-recording.default.svc.cluster.local:4000"
                }
            }

            {
                "action": "route":
                "data": {
                    "tag": "my-conferencing-app"
                }
            }

    -->

    <!-- comment this in and edit http url to use outbound connections
         Note: currently only HTTP GET is supported as an HTTP METHOD
    <request-handlers>
        <request-handler sip-method="INVITE" http-method="GET">http://35.187.89.96:80</request-handler>
    </request-handlers>
    -->
    <!-- sip configuration -->
    <sip>
        <contacts>
            <contact>sip:*;transport=udp,tcp</contact>
            <!-- local sip address to bind to.  Default: 'sip:*', which means listens on port 5060 on all interfaces and transports -->
            <!--
                    Other examples:
                        sip:192.168.1.100        listen on a specific address
                        sip:*;transport=tcp      tcp connections only
                        sip:*:5061               listen on port 5061
            -->


            <!-- here's how to listen for every protocol on their default ports -->
<!--
            <contact>sip:*:80;transport=ws</contact>
            <contact>sips:*;transport=tls</contact>
            <contact>sips:*:443;transport=wss</contact>
-->

        </contacts>

        <!-- uncomment and modify these if you want to change the sip stack timers (globally)
            <timers>
                <t1>500</t1>
                <t2>4000</t2>
                <t4>5000</t4>
                <t1x64>32000</t1x64>
            </timers>
        -->

        <!-- uncomment this if you send encapsulated SIP messages to homer
        <capture-server port="9060" hep-version="3" id="101">127.0.0.1</capture-server>
        -->

        <!-- if you want to terminate SIP over TLS connections (example shows letsencrypt.org typical file locations, but use any CA)
        <tls>
                <key-file>/etc/letsencrypt/live/yourdomain/privkey.pem</key-file>
                <cert-file>/etc/letsencrypt/live/yourdomain/cert.pem</cert-file>
                <chain-file>/etc/letsencrypt/live/yourdomain/chain.pem</chain-file>
                <dh-param>/var/local/dh4096.pem</dh-param>
        </tls>
        -->

        <!-- if you want to increase the default mtu size for udp packets; stack will force tcp when sending larger packets
        <mtu-size>4096</mtu-size>
        -->

        <!-- uncommenting this will cause all outbound new requests (i.e. requests outside of a dialog) to go through the specified proxy -->
        <!--
        <outbound-proxy>sip:10.10.10.1</outbound-proxy>
        -->

        <!-- optional list of header values which, if encountered in a message will trigger an action
             [tcp-]action="reject|discard"
             reject means send a sip non-success response immediately
             discard means sliently discard the request, generating no response
        -->
        <spammers action="reject" tcp-action="discard">
            <header name="User-Agent">
                <value>sip-cli</value>
                <value>sipcli</value>
                <value>friendly-scanner</value>
            </header>
            <header name="To">
                <value>sipvicious</value>
            </header>
        </spammers>
    </sip>

    <!-- set to true if you want the server to cdr events to a connected client -->
    <cdrs>false</cdrs>

    <monitoring>
        <prometheus port="8088">127.0.0.1</prometheus>
    </monitoring>

    <!-- logging configuration -->
    <logging>

        <!-- uncomment this if you want logging dumped to console, in addition to any other log destinations
        <console/>
    -->

        <!-- uncomment if you want logging sent to syslog (over UDP) -->
        <!--
        <syslog>
            <address>my.syslog.serve</address>
            <port>514</port>
            <facility>local6</facility>
        </syslog>
        -->

        <!-- file-based logging -->
        <file>
            <name>/var/log/drachtio/drachtio.log</name>
            <archive>/var/log/drachtio/archive</archive>
            <size>100</size>
            <maxFiles>20</maxFiles>
            <auto-flush>true</auto-flush>
        </file>

        <!-- sofia (internal sip library) log level, from 0 (minimal) to 9 (verbose) -->
        <sofia-loglevel>3</sofia-loglevel>

        <!-- general process log level: notice, warning, error, info, debug.  Default: info -->
        <loglevel>info</loglevel>
    </logging>

</drachtio>
{'fraction_non_alphanumeric': 0.11096988658584278, 'fraction_numerical': 0.019847477512710206, 'mean_word_length': 1.630239136024685, 'pattern_counts': {'":': 21, '<': 205, '<?xml version=': 0, '>': 205, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 8, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '461484', 'n_tokens_mistral': 2876, 'n_tokens_neox': 2649, 'n_words': 847}