contrib: Move the shared code into a new file
diff --git a/openbsc/contrib/rtp/rtp_replay.st b/openbsc/contrib/rtp/rtp_replay.st
index 7e73e93..a281570 100644
--- a/openbsc/contrib/rtp/rtp_replay.st
+++ b/openbsc/contrib/rtp/rtp_replay.st
@@ -3,73 +3,13 @@
 "
 
 PackageLoader fileInPackage: #Sockets.
+FileStream fileIn: 'rtp_replay_shared.st'.
 
-Object subclass: RTPReplay [
-    | filename |
-    RTPReplay class >> on: aFile [
-        ^ self new
-            file: aFile; yourself
-    ]
-
-    file: aFile [ 
-        filename := aFile
-    ]
-
-    streamAudio: aHost port: aPort [
-        | file last_time last_image udp_send socket dest |
-
-        last_time := nil.
-        last_image := nil.
-        file := FileStream open: filename.
-
-        "Send the payload"
-        dest := Sockets.SocketAddress byName: aHost.
-        socket := Sockets.DatagramSocket new.
-        udp_send := [:payload | | datagram |
-            datagram := Sockets.Datagram data: payload contents address: dest port: aPort.
-            socket nextPut: datagram
-        ].
-
-        [file atEnd] whileFalse: [
-            | lineStream time data now_image |
-            lineStream := file nextLine readStream.
-
-            "Read the time, skip the blank, parse the data"
-            time := Number readFrom: lineStream.
-            lineStream skip: 1.
-
-            data := WriteStream on: (ByteArray new: 30).
-            [lineStream atEnd] whileFalse: [
-                | hex |
-                hex := lineStream next: 2.
-                data nextPut: (Number readFrom: hex readStream radix: 16).
-            ].
-
-            last_time isNil
-                ifTrue: [
-                    "First time, send it right now"
-                    last_time := time.
-                    last_image := Time millisecondClockValue.
-                    udp_send value: data.
-                ]
-                ifFalse: [
-                    | wait_image new_image_time |
-
-                    "How long to wait?"
-                    wait_image := last_image + ((time - last_time) * 1000).
-                    [ wait_image > Time millisecondClockValue ] whileTrue: [].
-
-                    udp_send value: data.
-                    last_time := time.
-                    last_image := wait_image.
-                ]
-        ]
-    ]
-]
 
 Eval [
     | replay |
 
+
     replay := RTPReplay on: 'rtp_ssrc6976010.240.240.1_to_10.240.240.50.state'.
 
     Transcript nextPutAll: 'Going to stream now'; nl.
diff --git a/openbsc/contrib/rtp/rtp_replay_shared.st b/openbsc/contrib/rtp/rtp_replay_shared.st
new file mode 100644
index 0000000..cfb66bb
--- /dev/null
+++ b/openbsc/contrib/rtp/rtp_replay_shared.st
@@ -0,0 +1,69 @@
+"
+Simple UDP replay from the state files
+"
+
+PackageLoader fileInPackage: #Sockets.
+
+Object subclass: RTPReplay [
+    | filename |
+    RTPReplay class >> on: aFile [
+        ^ self new
+            file: aFile; yourself
+    ]
+
+    file: aFile [ 
+        filename := aFile
+    ]
+
+    streamAudio: aHost port: aPort [
+        | file last_time last_image udp_send socket dest |
+
+        last_time := nil.
+        last_image := nil.
+        file := FileStream open: filename.
+
+        "Send the payload"
+        dest := Sockets.SocketAddress byName: aHost.
+        socket := Sockets.DatagramSocket new.
+        udp_send := [:payload | | datagram |
+            datagram := Sockets.Datagram data: payload contents address: dest port: aPort.
+            socket nextPut: datagram
+        ].
+
+        [file atEnd] whileFalse: [
+            | lineStream time data now_image |
+            lineStream := file nextLine readStream.
+
+            "Read the time, skip the blank, parse the data"
+            time := Number readFrom: lineStream.
+            lineStream skip: 1.
+
+            data := WriteStream on: (ByteArray new: 30).
+            [lineStream atEnd] whileFalse: [
+                | hex |
+                hex := lineStream next: 2.
+                data nextPut: (Number readFrom: hex readStream radix: 16).
+            ].
+
+            last_time isNil
+                ifTrue: [
+                    "First time, send it right now"
+                    last_time := time.
+                    last_image := Time millisecondClockValue.
+                    udp_send value: data.
+                ]
+                ifFalse: [
+                    | wait_image new_image_time |
+
+                    "How long to wait?"
+                    wait_image := last_image + ((time - last_time) * 1000).
+                    [ wait_image > Time millisecondClockValue ] whileTrue: [].
+
+                    udp_send value: data.
+                    last_time := time.
+                    last_image := wait_image.
+                ]
+        ]
+    ]
+]
+