diff --git a/openbsc/contrib/rtp/gen_rtp_header.erl b/openbsc/contrib/rtp/gen_rtp_header.erl
index cc4c61c..47839c1 100755
--- a/openbsc/contrib/rtp/gen_rtp_header.erl
+++ b/openbsc/contrib/rtp/gen_rtp_header.erl
@@ -28,6 +28,7 @@
 main(Args) ->
     DefaultOpts = [{format, state},
                    {ssrc, 16#11223344},
+                   {rate, 8000},
                    {pt, 98}],
     {PosArgs, Opts} = getopts_checked(Args, DefaultOpts),
     log(debug, fun (Dev) ->
@@ -144,7 +145,8 @@
               "Options:~n" ++
 	      "  -h, --help             this text~n" ++
 	      "      --version          show version info~n" ++
-	      "  -i, --file=FILE        reads payload from state file~n" ++
+	      "  -i, --file=FILE        reads payload from file (state format by default)~n" ++
+	      "  -f, --frame-size=N     read payload as binary frames of size N instead~n" ++
 	      "  -p, --payload=HEX      set constant payload~n" ++
 	      "      --verbose=N        set verbosity~n" ++
 	      "  -v                     increase verbosity~n" ++
@@ -153,6 +155,8 @@
 	      "      --format=carray    use a C array for output~n" ++
 	      "  -s, --ssrc=SSRC        set the SSRC~n" ++
 	      "  -t, --type=N           set the payload type~n" ++
+	      "  -r, --rate=N           set the RTP rate [8000]~n" ++
+	      "  -D, --duration=N       set the packet duration in RTP time units [160]~n" ++
 	      "  -d, --delay=FLOAT      add offset to playout timestamp~n" ++
 	      "~n" ++
 	      "Arguments:~n" ++
@@ -165,6 +169,21 @@
         getopts(R, [{file, File} | Opts]);
 getopts([ "-i" ++ T | R], Opts) ->
         getopts_alias_arg("--file", T, R, Opts);
+getopts([ "--frame-size=" ++ N | R], Opts) ->
+        Size = list_to_integer(N),
+        getopts(R, [{frame_size, Size}, {in_format, bin} | Opts]);
+getopts([ "-f" ++ T | R], Opts) ->
+        getopts_alias_arg("--frame-size", T, R, Opts);
+getopts([ "--duration=" ++ N | R], Opts) ->
+        Duration = list_to_integer(N),
+        getopts(R, [{duration, Duration} | Opts]);
+getopts([ "-D" ++ T | R], Opts) ->
+        getopts_alias_arg("--duration", T, R, Opts);
+getopts([ "--rate=" ++ N | R], Opts) ->
+        Rate = list_to_integer(N),
+        getopts(R, [{rate, Rate} | Opts]);
+getopts([ "-r" ++ T | R], Opts) ->
+        getopts_alias_arg("--rate", T, R, Opts);
 getopts([ "--version" | _], _Opts) ->
 	show_version(),
         halt(0);
@@ -328,9 +347,10 @@
     Format = proplists:get_value(format, Opts, state),
     Ptime = proplists:get_value(duration, Opts, 160),
     Delay = proplists:get_value(delay, Opts, 0),
+    Rate = proplists:get_value(rate, Opts, 8000),
     case next_payload(DataSource) of
         {Payload, DataSource2} ->
-            write_packet(Dev, 0.020 * F + Delay,
+            write_packet(Dev, Ptime * F / Rate + Delay,
                          P#rtp_packet{seqno = F, timestamp = F*Ptime+O,
 			              payload = Payload},
                          Format),
@@ -376,12 +396,18 @@
     read_packets(Dev, Opts, Format).
 
 read_packets(Dev, Opts, Format) ->
-    case read_packet(Dev, Format) of
+    case read_packet(Dev, Opts, Format) of
         eof -> [];
         Tuple -> [Tuple | read_packets(Dev, Opts, Format)]
     end.
 
-read_packet(Dev, Format) ->
+read_packet(Dev, Opts, bin) ->
+    Size = proplists:get_value(frame_size, Opts),
+    case file:read(Dev, Size) of
+        {ok, Data} -> {0, #rtp_packet{payload = iolist_to_binary(Data)}};
+	eof -> eof
+    end;
+read_packet(Dev, _Opts, Format) ->
     case read_packet_line(Dev, Format) of
         {Time, Bin} -> {Time, parse_rtp_packet(Bin)};
 	eof -> eof
