<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts" build number 1,245</shortDescription><upstreamBuild>1245</upstreamBuild><upstreamProject>gerrit-osmo-bts</upstreamProject><upstreamUrl>job/gerrit-osmo-bts/</upstreamUrl></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>7191875</blockedDurationMillis><blockedTimeMillis>7191875</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>568794</buildingDurationMillis><executingTimeMillis>568794</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>7197472</queuingDurationMillis><queuingTimeMillis>7197472</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>7766266</totalDurationMillis><waitingDurationMillis>5583</waitingDurationMillis><waitingTimeMillis>5583</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1243/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1243/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1243/testReport</testsUrl></action><building>false</building><displayName>#1243</displayName><duration>568794</duration><estimatedDuration>569962</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>106677</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1243/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName><id>dtv.comp</id></culprit><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>96624</buildableDurationMillis><buildableTimeMillis>96624</buildableTimeMillis><buildingDurationMillis>79899</buildingDurationMillis><executingTimeMillis>79899</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>1</waitingDurationMillis><waitingTimeMillis>1</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>79899</duration><estimatedDuration>78556</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=litecell15,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107046</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=litecell15,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>98226</buildingDurationMillis><executingTimeMillis>98226</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>98226</duration><estimatedDuration>104121</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107037</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>121786</buildingDurationMillis><executingTimeMillis>121786</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>121786</duration><estimatedDuration>125159</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=v2017.01,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107039</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=v2017.01,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>121789</buildingDurationMillis><executingTimeMillis>121789</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>121789</duration><estimatedDuration>125163</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107038</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>98221</buildingDurationMillis><executingTimeMillis>98221</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>98221</duration><estimatedDuration>102011</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107040</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>2861</buildableDurationMillis><buildableTimeMillis>2861</buildableTimeMillis><buildingDurationMillis>95967</buildingDurationMillis><executingTimeMillis>95967</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>1</waitingDurationMillis><waitingTimeMillis>1</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>95967</duration><estimatedDuration>101227</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g-next,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107045</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g-next,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>97996</buildingDurationMillis><executingTimeMillis>97996</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>97996</duration><estimatedDuration>99499</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107034</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oct,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>102795</buildingDurationMillis><executingTimeMillis>102795</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>102795</duration><estimatedDuration>118833</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct+trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107035</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oct+trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>113731</buildingDurationMillis><executingTimeMillis>113731</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>1</waitingDurationMillis><waitingTimeMillis>1</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>113731</duration><estimatedDuration>124500</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=femtobts_v2.7,1,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107044</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=femtobts_v2.7,WITH_MANUALS=1,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>121476</buildingDurationMillis><executingTimeMillis>121476</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>121476</duration><estimatedDuration>118963</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107036</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>96378</buildingDurationMillis><executingTimeMillis>96378</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>96378</duration><estimatedDuration>100658</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v2.4,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107041</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v2.4,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>121433</buildingDurationMillis><executingTimeMillis>121433</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>121433</duration><estimatedDuration>121615</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.0.1pre,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107042</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.0.1pre,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>121107</buildingDurationMillis><executingTimeMillis>121107</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>121107</duration><estimatedDuration>122254</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.1,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107043</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.1,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>98690</buildableDurationMillis><buildableTimeMillis>98690</buildableTimeMillis><buildingDurationMillis>78772</buildingDurationMillis><executingTimeMillis>78772</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>1</waitingDurationMillis><waitingTimeMillis>1</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>78772</duration><estimatedDuration>76656</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v5.1,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107048</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v5.1,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>98437</buildableDurationMillis><buildableTimeMillis>98437</buildableTimeMillis><buildingDurationMillis>77175</buildingDurationMillis><executingTimeMillis>77175</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>1</waitingDurationMillis><waitingTimeMillis>1</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>77175</duration><estimatedDuration>74672</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107047</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1243/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42703</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>2fa94fa2f579388da7acf5bcd68210261f4e7037</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/03/42703/9</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1245/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,243</shortDescription><upstreamBuild>1243</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>2</buildableDurationMillis><buildableTimeMillis>2</buildableTimeMillis><buildingDurationMillis>564571</buildingDurationMillis><executingTimeMillis>564571</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>1</waitingDurationMillis><waitingTimeMillis>1</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><master _class='hudson.plugins.git.util.Build'><buildNumber>1243</buildNumber><marked><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></marked><revision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><branch><SHA1>2fa94fa2f579388da7acf5bcd68210261f4e7037</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1243</displayName><duration>564571</duration><estimatedDuration>564905</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,raspbian #1243</fullDisplayName><id>1243</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1243</number><queueId>107049</queueId><result>SUCCESS</result><timestamp>1777660344928</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=raspbian/1243/</url><builtOn>rpi4-raspbian12build-ansible-2</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/common/main.c</affectedPath><affectedPath>doc/examples/trx/osmo-bts-trx-websdr.cfg</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/trx_vty.c</affectedPath><affectedPath>src/osmo-bts-trx/main.c</affectedPath><affectedPath>src/osmo-bts-trx/trx_if.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.h</affectedPath><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><affectedPath>src/common/osmux.c</affectedPath><commitId>2fa94fa2f579388da7acf5bcd68210261f4e7037</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
</comment><date>2026-05-01 20:07:51 +0400</date><id>2fa94fa2f579388da7acf5bcd68210261f4e7037</id><msg>trx, bts: add optional WebSDR backend (callback-based transport)</msg><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_vty.c</file></path><path><editType>add</editType><file>doc/examples/trx/osmo-bts-trx-websdr.cfg</file></path><path><editType>edit</editType><file>src/common/osmux.c</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path><path><editType>edit</editType><file>src/common/main.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/main.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/trx_if.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run></matrixBuild>