tacs(1)
π NAME π
okay so bestie, welcome to the tacs manual π and I need you to know that the entire official name section is a URL. That's it. That's the whole thing. It's giving minimalism, it's giving "go read the docs", it's lowkey iconic:
tacs - http://osmocom-analog.eversberg.eu/docs/
so yeah, tacs lives in the General Commands Manual, and the name section just points you at http://osmocom-analog.eversberg.eu/docs/ π¦ go read it, iykyk.
π SYNOPSIS π
here's the shape of a call, fr fr:
tacs -k <kanal/channel> -p -d -F yes | no [-S aid=<aid>] [options]
[station_id]
β¨ Global options β¨
-h,--helpβ the classic. it shows you This help. that's it, that's the whole job π«Ά--config [~/]<path to config file>β hand over a config file to use. if the path starts with~/, the path is at your home dir π . Each line in the config file is one option, and-or--must not be given! Default:~/.osmocom/analog/tacs.conf--no-configβ even if a config file exists, don't use it. respectfully declining π-v --verbose <level> | <level>,<category>[,<category>[,...]] | listβ uselistto get a list of all levels and categories. For the verbose level: it's a digit of debug level (default ='3'). For level+category: the level digit followed by one or more categories -> if no category is specified, all categories are selected πΈ-v --verbose dateβ shows the date with debug output ποΈ-k --kanal <channel>/-k --channel <channel>β the channel (German = Kanal) number of the "Sender" (German = Transceiver). same flag, two spellings, bilingual queen π-a --audio-device hw:<card>,<device>[/hw:<card>.<rec-device>]β sound card and device number (default ='hw:0,0'). you may specify a different recording device by using/. Don't set it for SDR! π«-s --samplerate <rate>β sample rate of the sound device (default ='96000') β¨-i --interval 0.1..25β interval of the processing loop in ms (default ='1.0'ms). use10to drastically reduce CPU usage π§. in case of buffer underrun, increase the buffer accordingly.-b --buffer <ms>β how many milliseconds are processed in advance (default ='50'). a buffer below 10 ms requires a low interval like 0.1 ms β±οΈ-p --pre-emphasisβ enable pre-emphasis if you directly connect to the oscillator of the transmitter. (No pre-emphasis done by the transmitter.) π‘-d --de-emphasisβ enable de-emphasis if you directly connect to the discriminator of the receiver. (No de-emphasis done by the receiver.) π»--rx-gain <dB>β raise/lower the receiver's RX level by the given gain in dB. (Works with sound card only.) π--tx-gain <dB>β raise/lower transmitters's RX level by the given gain in dB. (Works with sound card only.) π-e --echo-testβ use echo test, to send back audio from the mobile phone's microphone to the speaker. (German:'Blasprobe'.) π€-c --call-device hw:<card>,<device>[/hw:<card>.<rec-device>]β sound card and device number for the headset (default =''). you may specify a different recording device by using/. π§--call-samplerate <rate>β sample rate of the sound device for the headset (default ='48000') π--call-buffer <ms>β how many milliseconds are processed in advance (default ='50') β³-x --osmocc-crossβ enable built-in call forwarding between mobiles. be sure to have at least one control channel and two voice channels. alternatively use one combined control+voice channel and one voice channel. βοΈ-o --osmocc-sockβ disable built-in call control and offer a socket π--cc "<osmo-cc arg>" [--cc ...]β pass arguments to the Osmo-CC endpoint. use-cc helpfor a description. π«Ά--no-l16β disable the L16 (linear 16 bit) codec. bye codec π-t --tones 0 | 1β connect the call on setup/release to provide classic tones towards the fixed network (default ='1') π΅-l --loopback <type>β loopback test:1= internal |2= external |3= echo π-r --realtime <prio>β set prio:0to disable,99for maximum (default =0) β‘--fast-mathβ use fast math approximation for slow CPU / ARM based systems πβ‘οΈπ--write-rx-wave <file>β write received audio to the given wave file π--write-tx-wave <file>β write transmitted audio to the given wave file π--read-rx-wave <file>β replace received audio by the given wave file π--read-tx-wave <file>β replace transmitted audio by the given wave file π--limesdrβ auto-select several required options for LimeSDR π--limesdr-miniβ auto-select several required options for LimeSDR Mini πβ¨
π» SDR options π»
--sdr-soapyβ force the SoapySDR driver π§Ό--sdr-channel <channel #>β give the channel number for a multi channel SDR device (default =0) π’--sdr-device-args <args>β optional SDR device arguments, separated by comma, e.g.--sdr-device-args <key>=<value>[,<key>=<value>[,...]]π οΈ--sdr-stream-args <args>β optional SDR device arguments, separated by comma, e.g.--sdr-device-args <key>=<value>[,<key>=<value>[,...]]π οΈ--sdr-tune-args <args>β optional SDR device arguments, separated by comma, e.g.--sdr-device-args <key>=<value>[,<key>=<value>[,...]]π οΈ--sdr-samplerate <samplerate>β sample rate to use with SDR. by default it equals the regular sample rate π«--sdr-lo-offset <Hz>β give a frequency offset in Hz to move the local oscillator away from the target frequency. (default =-1000000) π―--sdr-bandwidth <bandwidth>β give the IF filter bandwidth to use. if not, the sample rate is used. π--sdr-rx-antenna <name>β the SDR device's RX antenna name, use'list'to get a list π--sdr-tx-antenna <name>β the SDR device's TX antenna name, use'list'to get a list π--sdr-clock-source <name>β the SDR device's clock sourc name, use'list'to get a list β°--sdr-rx-gain <gain>β the SDR device's RX gain in dB (default =0.0) π--sdr-tx-gain <gain>β the SDR device's TX gain in dB (default =0.0) π--write-iq-rx-wave <file>β write received IQ data to the given wave file πΎ--write-iq-tx-wave <file>β write transmitted IQ data to the given wave file πΎ--read-iq-rx-wave <file>β replace received IQ data by the given wave file π₯--read-iq-tx-wave <file>β replace transmitted IQ data by the given wave file π₯--sdr-swap-linksβ swap RX and TX frequencies for loopback tests over the air π--sdr-timestamps 1 | 0β use TX timestamps on a UHD device. (default =1) β²οΈ
π°οΈ Network specific options π°οΈ
-T --channel-type <channel type> | listβ give the channel type, use'list'to get a list. (default ='CC/PC/VC') πΆ-F --flip-polarity no | yesβ flip the polarity of the transmitted FSK signal. ifyes, the sound card generates a negative signal rather than a positive one. be sure that a positive signal causes a positive deviation on your transmitter. if the phone shows'NoSrv', try the other way π-P --ms-power <power level>β give the power level of the mobile station0..7. (default ='4'):0= 2.28 W;1= 1.12 W;2= 447 mW;3= 178 mW;4= 70.8 mW;5= 28.2 mW;6= 11.2 mW;7= 4.5 mW π-D --dtx <parameter>β give the DTX parameter for Discontinuous Transmission. (default ='0'):0= disable DTX;1= reserved;2= 8 dB attenuation in low state;3= transmitter off π-I --caller-id 1 | 0β if set, the caller ID is sent while ringing the phone. (default ='0'). Note that this does not work as documented in the specs. If the phone does not support caller ID, it will abort the connection on receiving caller ID for some unknown reason. Therefore use caller ID only with phones that support it π-S --sysinfo aid=<System ID> | aid=listβ give the area ID of cell broadcast (default ='0'). if it changes, the phone re-registers. use'aid=list'to get a full list πΊοΈ-S --sysinfo dcc=<digital color code>β give the digital color code0..3(default ='0') π¨-S --sysinfo scc=<SAT color code>β give the supervisor tone color code0..2(default ='0') ποΈ-S --sysinfo regincrβ the amount to add to REGID after successful registration (default ='300'). since REGID is incremented every second, this value defines after how many seconds the phone waits before it re-registers. β±οΈ-S --sysinfo pureg=0 | pureg=1β if1, the phone registers on every power on (default ='0'). Warning: older phones may not like this and show'No Service'! Note: this feature was added in 1995 to the standard, it might not work. π«£-S --sysinfo pdreg=0 | pdreg=1β if1, the phone de-registers on every power down (default ='0'). Warning: older phones may not like this and show'No Service'! Note: this feature was added in 1995 to the standard, it might not work. π«£-S --sysinfo locaid=<location area ID > | locaid=-1 to disableβ (default ='-1'). if it changes, the phone re-registers. Warning: older phones may not like this and show'No Service'! Note: this feature was added in 1995 to the standard, it might not work. π«£-S --sysinfo regh=0 | regh=1β if1, the phone registers only if the System ID matches (default ='1') β-S --sysinfo regr=0 | regr=1β if1, the phone registers only if the System ID is different (default ='1') π-S --sysinfo bis=0 | bis=1β if0, the phone ignores the BUSY/IDLE bit on FOCC (default ='0'). if1, be sure to have a round-trip delay (latency) of not more than 5 ms β‘-O --tolerantβ be more tolerant when hunting for the sync sequence π΅οΈ
π± station_id π±
give 10 digits of station ID, so you don't need to enter it for every start of this application. give 10 digits for the TACS number (AREA-XXXXXXX). you may use '0xxxxxxxxxx' as a prefix. you may use '+44xxxxxxxxxx' as a prefix. π
β¨οΈ the keys, bestie β¨οΈ
- press digits
'0'..'9'and then the'd'key to dial towards the mobile station π - press the
'h'key to hangup π - press the
'w'key to toggle display of the RX wave form π - press the
'c'key to toggle display of channel status π - press the
'm'key to toggle display of measurement value π - press the
'q'key to toggle display of the RX I/Q vector π - press the
's'key to toggle display of the RX spectrum π - press the
'b'key to remove the DC level π§Ή
and that's the whole page, babe. the footer just says tacs(1) β no version number, no date, nothing, it's giving mystery β¨ β from the General Commands Manual. periodt. go make some calls π
ππ¦
π¦ where this page comes from
- debian trixie: osmocom-analog 0.0~git20250208.4ebf64f-1 Β· GPL-3.0-or-later
- ubuntu questing: osmocom-analog 0.0~git20250208.4ebf64f-1build1
- ubuntu resolute: osmocom-analog 0.0~git20250208.4ebf64f-1build2 Β· GPL-3.0-or-later
- ubuntu stonking: osmocom-analog 0.0~git20251206.0c72677-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms