diff --git a/protos/generate-protos.sh b/protos/generate-protos.sh
index 48ed3f3e..fd0dbb12 100755
--- a/protos/generate-protos.sh
+++ b/protos/generate-protos.sh
@@ -4,6 +4,8 @@
protoc gtfs-realtime.proto --java_out=../src/main/java/
+protoc gtfs-realtime-extension.proto --java_out=../src/main/java/
+
protoc pubtrans-tables.proto --java_out=../src/main/java/
protoc internal-messages.proto --java_out=../src/main/java/
@@ -17,3 +19,4 @@ protoc metro-ats.proto --java_out=../src/main/java/
protoc passenger-count.proto --java_out=../src/main/java/
protoc eke.proto --java_out=../src/main/java/
+
diff --git a/protos/gtfs-realtime-extension.proto b/protos/gtfs-realtime-extension.proto
new file mode 100644
index 00000000..a8a84cc4
--- /dev/null
+++ b/protos/gtfs-realtime-extension.proto
@@ -0,0 +1,11 @@
+syntax = "proto2";
+package proto;
+
+option java_package = "fi.hsl.common.gtfsrt.proto";
+option java_outer_classname = "AlternativeStops";
+
+import public "gtfs-realtime.proto";
+
+extend transit_realtime.TripUpdate.StopTimeUpdate {
+ repeated string alternative_stop_ids = 1999;
+}
\ No newline at end of file
diff --git a/src/main/java/fi/hsl/common/gtfsrt/proto/AlternativeStops.java b/src/main/java/fi/hsl/common/gtfsrt/proto/AlternativeStops.java
new file mode 100644
index 00000000..239d9126
--- /dev/null
+++ b/src/main/java/fi/hsl/common/gtfsrt/proto/AlternativeStops.java
@@ -0,0 +1,54 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: gtfs-realtime-extension.proto
+
+package fi.hsl.common.gtfsrt.proto;
+
+public final class AlternativeStops {
+ private AlternativeStops() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ registry.add(fi.hsl.common.gtfsrt.proto.AlternativeStops.alternativeStopIds);
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public static final int ALTERNATIVE_STOP_IDS_FIELD_NUMBER = 1999;
+ /**
+ * extend .transit_realtime.TripUpdate.StopTimeUpdate { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessage.GeneratedExtension<
+ com.google.transit.realtime.GtfsRealtime.TripUpdate.StopTimeUpdate,
+ java.util.List> alternativeStopIds = com.google.protobuf.GeneratedMessage
+ .newFileScopedGeneratedExtension(
+ java.lang.String.class,
+ null);
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\035gtfs-realtime-extension.proto\022\005proto\032\023" +
+ "gtfs-realtime.proto:J\n\024alternative_stop_" +
+ "ids\022+.transit_realtime.TripUpdate.StopTi" +
+ "meUpdate\030\317\017 \003(\tB.\n\032fi.hsl.common.gtfsrt." +
+ "protoB\020AlternativeStopsP\000"
+ };
+ descriptor = com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.google.transit.realtime.GtfsRealtime.getDescriptor(),
+ });
+ alternativeStopIds.internalInit(descriptor.getExtensions().get(0));
+ com.google.transit.realtime.GtfsRealtime.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}