Hello YETI-Switch Community,
I am installing YETI-Switch on a new server and I am currently blocked by a SEMS configuration parsing error. My installation environment is Debian GNU/Linux 13 (trixie) amd64. The installed YETI/SEMS packages are: sems 1.201.2, libsems1 1.201.2, sems-modules-base 1.201.2, sems-modules-yeti 1.14.47core201, yeti-web 1.14.79-1, and postgresql-18-yeti 1.14.1. The SEMS binary is /usr/bin/sems and the systemd service uses ExecStart=/usr/bin/sems -f /etc/sems/sems.conf.
The package information was obtained with:
$ dpkg -l | grep -Ei ‘sems|yeti’
ii libsems1 1.201.2 amd64 SIP Express Media Server, shared library
ii postgresql-18-yeti 1.14.1 amd64 provides YETI extension for PostgreSQL
ii sems 1.201.2 amd64 SIP Express Media Server, very fast and flexible SIP media server
ii sems-modules-base 1.201.2 amd64 SIP Express Media Server, base applications, plugins and codecs
ii sems-modules-yeti 1.14.47core201 amd64 YETI SBC application module for SEMS
ii yeti-web 1.14.79-1 amd64 UI for YETI project
When I run SEMS directly in debug mode with:
$ sems -E -D3 -f /etc/sems/sems.conf
I receive:
1787561161.830797 [#2b5f7080/496754] [cfg_error_callback, AmLcConfig.cpp:662] ERROR: /etc/sems/sems.conf:193 [module/yeti]: unexpected token ‘}’
1787561161.830831 [#2b5f7080/496754] [readConfiguration, AmLcConfig.cpp:994] ERROR: failed to parse configuration file: /etc/sems/sems.conf
1787561161.830836 [#2b5f7080/496754] [main, sems.cpp:496] ERROR: configuration errors. exiting.
The systemd service is currently failed with exit code 255:
$ systemctl status sems --no-pager
sems.service - SEMS for YETI project
Loaded: loaded (/usr/lib/systemd/system/sems.service; enabled; preset: enabled)
Active: failed (Result: exit-code)
Main PID: 14424 (code=exited, status=255/EXCEPTION)
The relevant section of /etc/sems/sems.conf is:
routing {
schema = switch22
function = route_release
init = init
pass_input_interface_name = true
new_codec_groups = true
headers {
header(x-yeti-auth)
header(diversion, json, uri_json_array)
header(x-orig-ip, inet)
header(x-orig-port, integer)
header(x-orig-proto, smallint)
header(p-asserted-identity, json, uri_json_array)
header(p-preferred-identity, json, uri_json)
header(privacy)
header(remote-party-id, json, uri_json_array)
header(rpid-privacy)
}
master_pool {
host = 127.0.0.1
port = 5432
name = yeti
user = yeti
pass = \[REDACTED\]
size = 4
}
failover_to_slave = false
slave_pool {
host = 127.0.0.1
port = 5432
name = yeti
user = yeti
pass = \[REDACTED\]
size = 4
}
}
The parser specifically reports the closing brace of master_pool at line 193:
186 master_pool {
187 host = 127.0.0.1
188 port = 5432
189 name = yeti
190 user = yeti
191 pass = [REDACTED]
192 size = 4
193 }
I have checked the configuration file for formatting problems. It has no CRLF/DOS line endings, it is ASCII text, and no suspicious non-printable characters were detected. The SEMS binary executes correctly and the YETI module package is installed.
I also searched the installed /usr/share, /usr/lib and /opt/yeti-web directories for references to master_pool, slave_pool and failover_to_slave, but did not find a usable configuration template.
Could you please confirm: (1) whether the master_pool/slave_pool syntax above is correct for sems-modules-yeti 1.14.47core201; (2) whether sems 1.201.2 is compatible with this YETI module version; (3) whether there is a specific YETI sems.conf template/configuration for this exact package combination; (4) whether size = 4 or another parameter is causing the parser to reject the master_pool block; and (5) if possible, provide the correct routing database-pool configuration for this exact YETI version.
I would prefer to correct the configuration rather than reinstall or randomly modify the YETI installation. I can provide the complete sanitized /etc/sems/sems.conf, additional package information, and further debug output if required.
Thank you for your help.