Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

SIRI Request

A SIRI Request is simply an HTTP POST request with an XML body:

For example:

$ curl -d@- -s -X POST https://ara-api.enroute.mobi/bibus/siri <<EOF
<?xml version='1.0' encoding='utf-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <!-- Type de requete -->
    <sw:CheckStatus xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
      <Request>
        <siri:RequestTimestamp>2030-01-01T12:00:30.000Z</siri:RequestTimestamp>
        <siri:RequestorRef>opendata</siri:RequestorRef>
        <siri:MessageIdentifier>1</siri:MessageIdentifier>
      </Request>
      <RequestExtension />
    </sw:CheckStatus>
  </S:Body>
</S:Envelope>
EOF

Check Status

Allows Ara:

  • to check the communication with the SIRI Pseudo Server

  • to check the SIRI Pseudo Server operating status

  • for more complex use case, to detect a reboot of SIRI Server (via ServiceStartedTime)

Request

<?xml version='1.0' encoding='utf-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <sw:CheckStatus xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
      <Request>
        <siri:RequestTimestamp>2030-01-01T12:00:30.000Z</siri:RequestTimestamp>
        <siri:RequestorRef>Ara</siri:RequestorRef> <!-- Valeur paramétrée dans Ara -->
        <siri:MessageIdentifier>6ba7b814-9dad-11d1-2-00c04fd430c8</siri:MessageIdentifier>
      </Request>
      <RequestExtension/>
    </sw:CheckStatus>
  </S:Body>
</S:Envelope>

Response

Important elements:

  • Status: true (can be false in case of problem)

  • ServiceStartedTime: Should be the time of the latest data reload. Most of SIRI server reload daily to manage only one-day real-time data. if you need to craft a time, use the current day at midnight

<?xml version='1.0' encoding='utf-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <sw:CheckStatusResponse xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
      <CheckStatusAnswerInfo>
        <siri:ResponseTimestamp>2030-01-01T12:00:00.000Z</siri:ResponseTimestamp>
        <siri:ProducerRef>DKBUS</siri:ProducerRef>
        <siri:ResponseMessageIdentifier>4df001d4-f2fa-11ed-839a-9b941adcadcc</siri:ResponseMessageIdentifier>
        <siri:RequestMessageRef>6ba7b814-9dad-11d1-2-00c04fd430c8</siri:RequestMessageRef>
      </CheckStatusAnswerInfo>
      <Answer>
        <siri:Status>true</siri:Status> <!-- Peut-être false en cas de problème -->
        <siri:ServiceStartedTime>2017-01-01T04:05:00.000+01:00</siri:ServiceStartedTime> <!-- Heure de rédemarrage du SAE -->
      </Answer>
      <AnswerExtension />
    </sw:CheckStatusResponse>
  </S:Body>
</S:Envelope>

Stop Points Discovery

Available soon

Stop Monitoring

Available soon

Vehicle Monitoring

Available soon

Situation Exchange

Allows Ara to know about current situations, especially associated to line(s) or stop(s). Ara will periodically send a global request.

More details about SIRI Situations:

Request

By default, Ara requests all defined situations:

<?xml version='1.0' encoding='utf-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
  <soap:Body>
    <sw:GetSituationExchange>
      <ServiceRequestInfo>
        <siri:RequestTimestamp>2030-01-01T12:01:10.000Z</siri:RequestTimestamp>
        <siri:RequestorRef>Ara</siri:RequestorRef>
        <siri:MessageIdentifier>6ba7b814-9dad-11d1-4-00c04fd430c8</siri:MessageIdentifier>
      </ServiceRequestInfo>
      <Request>
        <siri:RequestTimestamp>2030-01-01T12:01:10.000Z</siri:RequestTimestamp>
      </Request>
      <RequestExtension/>
    </sw:GetSituationExchange>
  </soap:Body>
</soap:Envelope>

Response
Important elements, for each Situation:

  • CreationTime: Creation time of the Situation

  • SituationNumber: Situation identifier

  • VersionedAtTime: Update time of the Situation (must be changed when the Situation is updated)

  • Progress: Status of the Perturbation (mainly open or closed)

  • ValidityPeriod: Period during which the disturbance has impact

  • Summary: Summary or title

  • Description: Text description

  • Affects: list the network parts affected by/associated with this Situation

    • at least a Stop or a Line must be associated

    • StopPointRef: associated Stop identifiers

    • LineRef: associated Line identifiers

  • AlertCause: Situation cause (optional)

    • unknown

    • congestion

    • technicalProblem

    • vehicleFailure

    • serviceDisruption

    • etc. (all other valid SIRI values are accepted)

  • Severity: Situation severity (optional), among these values:

    • slight

    • normal 

    • severe

  • ReportType: (optional)

    • incident: for a disruption

    • general: for a commercial message

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <wsdl:GetSituationExchangeResponse xmlns:wsdl="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
      <ServiceDeliveryInfo>
        <siri:ResponseTimestamp>2030-01-01T15:00:00.000Z</siri:ResponseTimestamp>
        <siri:RequestMessageRef>3a452efc-d611-11ee-812a-dfca6abd58a4</siri:RequestMessageRef>
      </ServiceDeliveryInfo>
      <Answer>
        <siri:SituationExchangeDelivery version="2.0">
          <siri:ResponseTimestamp>2030-01-01T15:00:00.000Z</siri:ResponseTimestamp>
          <siri:Situations>
            <siri:PtSituationElement>
              <siri:CreationTime>2030-01-01T10:00:00.000Z</siri:CreationTime>
              <siri:SituationNumber>36926</siri:SituationNumber>

              <siri:Source>
                <!-- Mandatory -->
                <siri:SourceType>directReport</siri:SourceType>
              </siri:Source>

              <siri:VersionedAtTime>2030-01-01T11:00:00.000Z</siri:VersionedAtTime>
              <siri:Progress>open</siri:Progress>

              <siri:ValidityPeriod>
                <siri:StartTime>2030-01-01T10:00:00.000Z</siri:StartTime>
                <siri:EndTime>2030-01-01T18:00:00.000Z</siri:EndTime>
              </siri:ValidityPeriod>

              <siri:AlertCause>awaitingOncomingVehicle</siri:AlertCause>

              <siri:Severity>normal</siri:Severity>

              <siri:ReportType>incident</siri:ReportType>

              <siri:Summary>Arrêt Michel non desservi</siri:Summary>
              <siri:Description>L'arrêt La Poitevine n'est pas desservi en direction de Paul Fort.</siri:Description>

              <siri:Affects>
                <!-- Associated lines -->
                <siri:Networks>
                  <siri:AffectedNetwork>
                    <siri:AffectedLine>
                      <siri:LineRef>Line:673</siri:LineRef>
                      <siri:LineRef>Line:123</siri:LineRef>
                    </siri:AffectedLine>
                  </siri:AffectedNetwork>
                </siri:Networks>

                <!-- Associated Stops -->
                <siri:StopPoints>
                  <siri:AffectedStopPoint>
                    <siri:StopPointRef>Quay:3534</siri:StopPointRef>
                    <siri:StopPointRef>Quay:2913</siri:StopPointRef>
                  </siri:AffectedStopPoint>
                </siri:StopPoints>
              </siri:Affects>
            </siri:PtSituationElement>
            <siri:PtSituationElement>
              <!-- ... -->
            </siri:PtSituationElement>
          </siri:Situations>
        </siri:SituationExchangeDelivery>
      </Answer>
      <AnswerExtension></AnswerExtension>
    </wsdl:GetSituationExchangeResponse>
  </soap:Body>
</soap:Envelope>

Facility Monitoring

Allow Ara to know the real-time status of facilities (for example: station equipments like lifts, escalators, etc.). Ara sent periodically a request per facility.

Request

Each request contains a FacilityRef with the Facility identifier:

<?xml version='1.0' encoding='utf-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <sw:GetFacilityMonitoring xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
      <ServiceRequestInfo>
        <siri:RequestTimestamp>2030-01-01T12:01:10.000Z</siri:RequestTimestamp>
        <siri:RequestorRef>Ara</siri:RequestorRef>
        <siri:MessageIdentifier>6ba7b814-9dad-11d1-4-00c04fd430c8</siri:MessageIdentifier>
      </ServiceRequestInfo>

      <Request>
        <siri:RequestTimestamp>2030-01-01T12:01:10.000Z</siri:RequestTimestamp>
        <siri:FacilityRef>ABC1234</siri:FacilityRef> <!-- Facility Identifier -->
      </Request>
      <RequestExtension/>
    </sw:GetFacilityMonitoring>
  </soap:Body>
</soap:Envelope>

Response

The Response gives the Status of the requested Facility:

<?xml version='1.0' encoding='utf-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <sw:GetFacilityMonitoringResponse xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
      <ServiceDeliveryInfo>
        <siri:ResponseTimestamp>2030-01-01T12:01:10.000Z</siri:ResponseTimestamp>
      </ServiceDeliveryInfo>

      <Answer>
        <siri:FacilityMonitoringDelivery>
          <siri:ResponseTimestamp>2030-01-01T15:00:00.000Z</siri:ResponseTimestamp>

          <siri:FacilityCondition>
            <siri:FacilityRef>ABC1234</siri:FacilityRef>
            <siri:FacilityStatus>
              <!-- Can be one of these values: unknown, available, notAvailable, partiallyAvailable, removed -->
              <siri:Status>available</siri:Status>
            </siri:FacilityStatus>
          </siri:FacilityCondition>
        </siri:FacilityMonitoringDelivery>
      </Answer>
      <AnswerExtension/>
    </sw:GetFacilityMonitoringResponse>
  </soap:Body>
</soap:Envelope>

Much other information can be returned in this response, but only mandatory attributes are described.

  • No labels