Vom Empfang über die Soundkarte wird ausdrücklich abgeraten. Anstelledessen soll ein RTL-SDR-Stick genommen werden.

Das Problem beim Testen der ZABOS-Systeme ist, dass man auf Feldstärke-RICs oder einen externen Transmitter angewiesen ist. Mit dem folgenden Script kann ein POCSAG-Sample direkt auf das interne Loopback-Device abgespielt werden.

yum install sox alsa-utils
  
wget http://www.qsl.net/kd7rto/utah/poc1200.wav
modprobe snd_aloop
alsamixer # Ich musste den Master hochstellen, damit monitord das Sample empfangen hat

./monitord& # Konfiguration siehe unten
sox -v 50 -t wav poc1200.wav -r 48000 -t alsa plughw:Loopback,1,0

monitord.xml:

<?xml version="1.0" encoding="ISO-8859-1">
<monitordconfig version="1.0">
        <name>monitord</name>
        <logfile>/var/log/monitord.log</logfile>
        <loglevel>DEBUG</loglevel>
        <soundcard num="1">
                <device>plughw:Loopback,0,0</device>
                <status>1</status>
                <baud>48000</baud>
                <name>Loopback</name>
                <channel part="left">
                        <name>Kanal links</name>
                        <module type="poc1200">
                                <algorithm> 1 </algorithm>
                                <crc-check> 1 </crc-check>
                                <ecc> 0 </ecc>
                                <maxerrors> 3 </maxerrors>
                        </module>
                </channel>
                        <channel part="right">
                        <name>Kanal rechts</name>
                        <module type="poc1200">
                                <algorithm> 1 </algorithm>
                                <crc-check> 1 </crc-check>
                                <ecc> 0 </ecc>
                                <maxerrors> 3 </maxerrors>
                        </module>
                </channel>
        </soundcard>
 
        <dataplugins>
                <plugin name="activemq">
                        <file>/root/dist/libmplugin_activemq.so</file>
                        <parameters>
                                <logfile>/var/log/activemq.log</logfile>
                                <loglevel>DEBUG</loglevel>
                                <brokerUri>tcp://127.0.0.1:61616</brokerUri>
                                <clientId>monitord</clientId>
                                <sendTimeout>10</sendTimeout>
                                <closeTimeout>10</closeTimeout>
                                <producerWindowSize>5</producerWindowSize>
                                <useCompression>0</useCompression>
                                <clientAck>0</clientAck>
                                <useTopic>1</useTopic>
                                <deliveryModePersistent>0</deliveryModePersistent>
                                <destUri>zabos</destUri>
                                <topic type="zvei">
                                        <destUri>zabos.zvei</destUri>
                                </topic>
                                <topic type="pocsag">
                                        <destUri>zabos.pocsag</destUri>
                                </topic>
                        </parameters>
                </plugin>
        </dataplugins>
</monitordconfig>

Alternativ kann die Konfiguration auch direkt herunterlgeaden werden:

wget https://gist.githubusercontent.com/schakko/1a3f4997efbf7f243b04/raw/09730b535c0568c70bec0cc80cb27451345994d9/monitord.xml
# oder
wget http://bit.ly/1QjBHFp

Log-Ausgabe von monitord:

16:25:41.936 DEBUG: monitord/MonitorSignals.cpp(61) Waiting for signal
16:26:01.626 DEBUG: monitord/MonitorModulePocsag.cpp(165) Sync gefunden
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) channelnamehex = "4b616e616c206c696e6b73"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) channelnum = "2"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) datum = "15.09.15"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) ric = "0123456"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) servernamehex = "6d6f6e69746f7264"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) sub = "0"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) subhex = ""
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) text = "!<ACK><NAK>;<CAN><SOH>3f"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) timestamp = "1442327161"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) typ = "pocsag"
16:26:01.626 DEBUG: monitord/MonitorModulesResults.cpp(39) uhrzeit = "16:26:01"
16:26:01.626 DEBUG: monitord/MonitorSignals.cpp(48) Signal wird gesetzt
16:26:01.627 DEBUG: monitord/MonitorModulePocsag.cpp(165) Sync gefunden
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) channelnamehex = "4b616e616c20726563687473"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) channelnum = "3"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) datum = "15.09.15"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) ric = "0123456"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) servernamehex = "6d6f6e69746f7264"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) sub = "0"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) subhex = ""
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) text = "!<ACK><NAK>;<CAN><SOH>3f"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) timestamp = "1442327161"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) typ = "pocsag"
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(39) uhrzeit = "16:26:01"
16:26:01.627 DEBUG: monitord/MonitorSignals.cpp(48) Signal wird gesetzt
16:26:01.627 DEBUG: monitord/MonitorSignals.cpp(70) Waiting for signal beendet
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(93) Dispatcher running
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(101) bearbeite ResultSet aus GlobalDispatcher Queue
16:26:01.627 DEBUG: monitord/MonitorSignals.cpp(48) Signal wird gesetzt
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(115) loesche ResultSet aus GlobalDispatcher Queue
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(117) delete pRes
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(119) delete pRes:done
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(101) bearbeite ResultSet aus GlobalDispatcher Queue
16:26:01.627 DEBUG: monitord/MonitorSignals.cpp(48) Signal wird gesetzt
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(115) loesche ResultSet aus GlobalDispatcher Queue
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(117) delete pRes
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(119) delete pRes:done
16:26:01.627 DEBUG: monitord/MonitorModulesResults.cpp(91) Dispatcher waiting
16:26:01.627 DEBUG: monitord/MonitorSignals.cpp(61) Waiting for signal
16:26:01.627 DEBUG: monitord/MonitorSignals.cpp(70) Waiting for signal beendet
16:26:01.627 DEBUG: monitord/PluginThread.cpp(90) plugin processing - size=2
16:26:01.627 INFO: monitord/plugins/libmplugin_activemq.cpp(67) apachemq: processing Result...
16:26:01.627 INFO: monitord/plugins/libmplugin_activemq.cpp(79) Preparing Ping message
16:26:01.627 INFO: monitord/plugins/libmplugin_activemq.cpp(192) Initializing new ActiveMQ connection
16:26:01.628 ERROR: monitord/plugins/libmplugin_activemq.cpp(211) Could not connect to message queue "tcp://127.0.0.1:61616" with username=""
16:26:01.628 INFO: monitord/plugins/libmplugin_activemq.cpp(215) Connection initialized
16:26:01.628 ERROR: monitord/plugins/libmplugin_activemq.cpp(83) Connection could not be established, discarding this message
16:26:01.628 DEBUG: monitord/PluginThread.cpp(90) plugin processing - size=1
16:26:01.628 INFO: monitord/plugins/libmplugin_activemq.cpp(67) apachemq: processing Result...
16:26:01.628 INFO: monitord/plugins/libmplugin_activemq.cpp(79) Preparing Ping message
16:26:01.628 INFO: monitord/plugins/libmplugin_activemq.cpp(192) Initializing new ActiveMQ connection
16:26:01.629 ERROR: monitord/plugins/libmplugin_activemq.cpp(211) Could not connect to message queue "tcp://127.0.0.1:61616" with username=""
16:26:01.629 INFO: monitord/plugins/libmplugin_activemq.cpp(215) Connection initialized
16:26:01.629 ERROR: monitord/plugins/libmplugin_activemq.cpp(83) Connection could not be established, discarding this message