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 befalse
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 SituationSituationNumber
: Situation identifierVersionedAtTime
: Update time of the Situation (must be changed when the Situation is updated)Progress
: Status of the Perturbation (mainlyopen
orclosed
)ValidityPeriod
: Period during which the disturbance has impactSummary
: Summary or titleDescription
: Text descriptionAffects
: list the network parts affected by/associated with this Situationat least a Stop or a Line must be associated
StopPointRef
: associated Stop identifiersLineRef
: 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 disruptiongeneral
: 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.