"one line" Gstreamer Commands for both Transmit & Receive - from a REMOTE OP using a LINUX LAPTOP to a homebase RIG using a Raspberry PI - connecting to each other over IP
In this example, the RASPBERRY PI 2b is acting as the TCP OPUS AUDIO server for both TRANSMIT and RECEIVE audio going to the RIG and from the RIG to the REMOTE OP...this might be useful to have the PI being the only one that needs port forwarding...at the homebase router...the remote OP does not need port forwarding on the router that the REMOTE OP is using with these PI TCP audio server scripts
NOTE: this example uses the LAN, but the OPUS CODEC works well over WAN too
the rig is keyed by AUDIO ACTIVATION VOX ptt CIRCUITS - from incoming audio at its internal USB SOUND CARD's LINE INPUT
HERE ARE THE GSTREAMER SCRIPTS used:
LAPTOP TCP
qrq@qrq:~$ gst-launch-1.0 -v jackaudiosrc ! "audio/x-raw,channels=1,rate=48000,payload=96" ! audioconvert ! opusenc bitrate=512000 frame-size=10 ! rtpopuspay ! rtpstreampay ! tcpclientsink host=192.168.1.130 port=6003 tcpclientsrc host=192.168.1.130 port=6002 ! "application/x-rtp-stream, media=(string)audio, clock-rate=(int)48000, encoding-name=(string)OPUS, payload=(int)96,sprop-stereo=(string)0, ssrc=(uint)3839170915, timestamp-offset=(uint)2073047696, seqnum-offset=(uint)20185" ! rtpstreamdepay ! rtpjitterbuffer latency=60 ! rtpopusdepay ! opusdec ! audioconvert ! jackaudiosink buffer-time=60000 sync=false
PI TCP
pi@raspberrypi ~ $ gst-launch-1.0 -v alsasrc ! "audio/x-raw,channels=1,rate=4800 ! audioconvert ! opusenc bitrate=512000 frame-size=10 ! rtpopuspay ! rtpstreampay ! tcpserversink host=192.168.1.130 port=6002 | gst-launch-1.0 -v tcpserversrc port=6003 host=192.168.1.130 do-timestamp=true ! "application/x-rtp-stream, media=(string)audio, clock-rate=(int)48000, encoding-name=(string)X-GST-OPUS-DRAFT-SPITTKA-00, sprop-maxcapturerate=(string)48000, sprop-stereo=(string)0, payload=(int)96, encoding-params=(string)2, ssrc=(uint)2790831607, timestamp-offset=(uint)505251092, sprop-stereo=(string)0, seqnum-offset=(uint)17627" ! rtpstreamdepay ! rtpjitterbuffer latency=60 ! rtpopusdepay ! opusdec ! audioconvert ! alsasink buffer-time=60000