435 lines
19 KiB
Plaintext
435 lines
19 KiB
Plaintext
osmo-mgw (1.6.0) unstable; urgency=medium
|
|
|
|
[ Oliver Smith ]
|
|
* Cosmetic: fix spaces/tabs in mgcp_requests[]
|
|
* Inactive connection cleanup (disabled by default)
|
|
* debian: create -doc subpackage with pdf manuals
|
|
* vty: allow 0 as conn-timeout to disable it
|
|
* vty: update desc of conn-timeout
|
|
* manuals: update VTY documentation
|
|
* "make dist" fix for: no rule to make mgcp_common.h
|
|
* contrib/jenkins.sh: run "make maintainer-clean"
|
|
|
|
[ Philipp Maier ]
|
|
* Add option to GSM HR frames to RFC5593 representation
|
|
* mgcp_sdp: cosmetic: correct typo in comment
|
|
* mgco_client: cosmetic: remove excess whitespace
|
|
* mgcp_sdp: mgcp_sdp.c does not include own header file
|
|
* mgcp_sdp: untangle parsing of a= parameters
|
|
* mgcp_network: use mgcp_rtp_codec in downlink format callback
|
|
* AMR: Add function to convert between bw-effient and octet aligned mode
|
|
|
|
[ Neels Hofmeyr ]
|
|
* log: don't spam with "can not patch PT" messages
|
|
* mgcp client: allow setting conn mode for CRCX and MDCX
|
|
* make codec_table public as osmo_mgcpc_codec_names
|
|
* move MGW endpoint FSM from osmo-bsc to here
|
|
* fix: multiple initial CRCX
|
|
* constify map_codec_to_pt() ptmap arg
|
|
|
|
[ Pau Espin Pedrol ]
|
|
* mgcp-client: whitespace cleanup in mgcp_client.c
|
|
* mgcp-client: Sanitize implementation of mgcp_client_rtpbridge_wildcard
|
|
* libosmo-mgcp: Use trunk type during endpoint allocation
|
|
* cosmetic: Fix typos in comment
|
|
* cosmetic: tests: mgcp_client_test: clean trailing whitespace
|
|
* mgcp_msg: Log faulty line on Osmux parsing error
|
|
* cosmetic: handle_modify_con: Fix indentation level
|
|
* Introduce log fmt helpers LOGPENDP and LOGPCONN
|
|
* create_response_with_sdp: Fix inclusion of X-Osmux
|
|
* osmux: Cleanup of CID alloc pool APIs
|
|
* mgcp_osmux.c: osmux_enable_endpoint: Fix incorrect return check
|
|
* osmux: Log osmux socket during osmux_init
|
|
* mgcp-cli: Change osmo_mgcpc_ep_fsm name to avoid collision with old osmo-bsc
|
|
* osmux: Document func and return different rc upon osmux init failure
|
|
* osmux: Fix reception of legacy dummy payloads
|
|
* osmux: Use LOGPCONN in several log calls
|
|
* cosmetic: mgcp_udp_send: Document port param is in network byte order
|
|
* cosmetic: osmux: Document network byte order in port variable
|
|
* vty: Allow enabling Osmux
|
|
* osmux: Allocate CID during CRCX
|
|
* osmux: Introduce mgcp_conn_rtp_is_osmux() helper
|
|
* osmux: Mark conn_rtp->type as osmux during CRCX
|
|
* mgcp-cli: Allow submitting X-Osmux on CRCX request
|
|
* mgcp-cli: Parse X-Osmux on CRCX response
|
|
* osmux: Handle Osmux MGCP extension in MDCX messages
|
|
* mgcp-cli: Allow submitting X-Osmux on MDCX request
|
|
* mgcp-cli: Parse X-Osmux on MDCX response
|
|
* osmux: Drop unneeded OSMUX_STATE_NEGOTIATING
|
|
* mgcp-cli: endpoint_fsm: Add API to retrieve Osmux CID from MGW
|
|
* osmux: Provide correct local port during mgcp resp
|
|
* osmux: Use remote port to send osmux frames
|
|
* osmux: Improve logging around osmux enabling events
|
|
* osmux: Delay osmux enable of conn until remote addr is configured by MDCX
|
|
* osmux: Redo read/write osmux glue code to have data routed correctly
|
|
* mgw, mgcp-li: Handle X-Osmux param name as case insensitive
|
|
* osmux: Use DUMMY ft msg as per Osmux spec
|
|
* osmux: Fix loopback for Osmux connections
|
|
* osmux: Fix CID release for non-enabled connections
|
|
* osmux: Fix hardcoded rtp payload_type 98 in osmux conn
|
|
* mgcp-cli: Validate osmux cid value during mgcp_msg_gen
|
|
* mgw: Support uppercase LCO options
|
|
* mgw: Support lowercase header parameters
|
|
* mgcp-cli: Support lowercase header parameters
|
|
* mgw: Support receiving uppercase connection mode
|
|
* mgw: Support receiving lowercase LCO codec
|
|
* mgw: Make check of duplicated LCO fields case insensitive
|
|
* mgw: Allow receiving lowercase MGCP header keyword
|
|
* mgw: Allow receiving lowercase X-Osmo-Ign Callid field
|
|
* mgw: Allow receiving uppercase noanswer keyword
|
|
* doc: X-Osmo-IGN: small formatting and typo fixes
|
|
* doc: Add Osmux documentation to OsmoMGW User Manual
|
|
* Catch unsigned integer MGCP parsing errors with strtoul
|
|
* Fix return variable of strtoul()
|
|
* Remove undefined param passed to {logging,osmo_stats}_vty_add_cmds
|
|
* configure.ac: Require libosmo-netif 0.6.0
|
|
|
|
[ Alexander Couzens ]
|
|
* mgcp_internal: LOGPENDP: ensure *endp is not NULL
|
|
|
|
[ Harald Welte ]
|
|
* handle NULL return of rate_ctr_group_alloc()
|
|
* update .gitignore
|
|
* mgcp_sdp: Don't check if an unsigned int is below 0
|
|
|
|
[ Vadim Yanitskiy ]
|
|
* configure.ac: drop useless check for -fvisibility=hidden
|
|
|
|
[ Daniel Willmann ]
|
|
* manuals: Add script to regenerate vty/counter documentation
|
|
* manuals: Update vty/counter documentation
|
|
|
|
[ Hoernchen ]
|
|
* turn -Werror=null-dereference into a warning
|
|
|
|
-- Pau Espin Pedrol <pespin@sysmocom.de> Wed, 07 Aug 2019 16:52:58 +0200
|
|
|
|
osmo-mgw (1.5.0) unstable; urgency=medium
|
|
|
|
[ Pau Espin Pedrol ]
|
|
* gitignore: Filter *.pc
|
|
* configure: Find correct libgsm's gsm.h header
|
|
* vty: Fix typo writing bts-jitter-buffer-delay-{min,max}
|
|
* Remove libosmo-legacy-mgcp and osmo-bsc-mgcp
|
|
* debian: Remove dangling symlink to osmo-bsc-mgcp.service
|
|
* Install systemd services with autotools
|
|
* Install sample cfg file to /etc/osmocom
|
|
* mgcp: Fix osmux_cid_bitmap static array size calculation
|
|
* mgcp_osmux: Use define to calculate rtp_ssrc_winlen
|
|
* osmux: Avoid initing output without enabling osmux
|
|
* mgcp: Log endpoint nr consistently as hex
|
|
* osmux_send_dummy: Avoid logging incorrectly and sending if osmux not enabled
|
|
* osmux: Don't process regular osmux frames if disabled by cfg
|
|
* osmux: Move parse_cid of legacy dummy frames to own function
|
|
* osmux: Make func handling dummy frames independent of endp type
|
|
* osmux: allow enabling osmux only on correct activating state
|
|
* osmux: Improve checks around activating and using enabled osmux
|
|
* osmux.h: Document enum osmux_state
|
|
* osmux: Avoid processing further frames if conn not found
|
|
|
|
[ Philipp Maier ]
|
|
* mgcp_client_fsm: allow ptmap in mgcp_client_fsm as well
|
|
* mgcp_network: translate payload type numbers in RTP packets
|
|
* mgcp_client: use IETF source port as for MGCP
|
|
* mgcp_client: increment local port number when port is in use
|
|
* mgcp_test: release endpoints after use
|
|
* network: do not patch PT of RTCP packets
|
|
* network: check packets before further processing
|
|
* Cosmetic: remove misplaced line break
|
|
* mgcp_sdp: restructure mgcp_write_response_sdp() (rtpmap)
|
|
* mgcp_sdp: restructure mgcp_write_response_sdp() (audio)
|
|
* mgcp_client: check local port only once
|
|
* mgcp_client_fsm: switch to MGCP_CONN_RECV_SEND in add_audio()
|
|
* mgcp_protocol: increase buffer space for codec name in LCO
|
|
* osmo-mgw: Add vty reference manual
|
|
|
|
[ Neels Hofmeyr ]
|
|
* fix handling of "Wrong domain name" error
|
|
* interpret domain '*' as 'allow any domain'
|
|
* cosmetic: log: fix "CallIDs does not match"
|
|
* fix 3G hack: allow any IP for loopback and 0.0.0.0
|
|
* cosmetic: drop code dup in mgcp_client_fsm.c CRCX
|
|
* add X-Osmo-IGN MGCP header to ignore CallID
|
|
* X-Osmo-IGN: rather parse items by token, not char
|
|
* mgcp_test: fix log of conn_id presence
|
|
* mgcp_test: fix get_conn_id_from_response() CI length
|
|
* mgcp_client_test: cosmetically re-arrange reply_to() args
|
|
* mgcp_client_test: use "\r\n\r\n" instead of "\n\n"
|
|
* mgcp_client_test: also verify received conn_id
|
|
* mgcp_client_test: test long conn_id
|
|
* mgcp_client: error on too long conn id
|
|
* mgcp_common: rename to MGCP_CONN_ID_MAXLEN
|
|
* doc: fix mgcp_verify_ci() return val doc
|
|
* mgcp_verify_ci(): return meaningful error codes
|
|
* fix mgcp_verify_ci(): off-by-one in max len check
|
|
* generate shorter 'I:' conn IDs
|
|
* mgcp_conn_get(): compare conn Id ('I:') case insensitively
|
|
* mgcp_conn_get(): match conn Id ('I:') despite leading zeros
|
|
* cosmetic: mgcp_test: fix get_conn_id_from_response()
|
|
* comment: indicate struct type for mgcp_endpoint.conns
|
|
* log: avoid logging early media as error
|
|
* fix osmo-mgw -s; fixes osmo-mgw.service using -s
|
|
* Importing history from osmo-gsm-manuals.git
|
|
* OsmoMGW: update VTY reference
|
|
* OsmoMGW: document the 'X-Osmo-IGN' MGCP extension
|
|
* mgw: update vty reference
|
|
* drop/replace very weird logging in mgcp_client.c
|
|
* check_rtp: on IP:port errors, log the IP and port
|
|
* osmo-mgw: err-log: include expected domain name
|
|
* mgcp_client_vty: fix missing talloc_free
|
|
* mgcp_client: drop a bunch of dead code
|
|
* mgcp_client: logging tweaks
|
|
* mgcp_client: make domain part of endpoint configurable
|
|
* mgcp_client: tweak some log levels INFO -> {DEBUG,ERROR}
|
|
|
|
[ Stefan Sperling ]
|
|
* add VTY commands which show specific mgcp endpoints
|
|
* add MGCP CRCX command statistics to osmo-mgw
|
|
* show RTP TX/RX stats in 'mgcp show stats' output
|
|
* use local variable for rate counters in handle_create_con()
|
|
* add more mgcp crxc error counters
|
|
* add MDCX command statistics to osmo-mgw
|
|
* add aggregated rtp connection stats to osmo-mgw
|
|
* add DLCX command statistics to osmo-mgw
|
|
|
|
[ Harald Welte ]
|
|
* debian/rules: Don't overwrite .tarball-version
|
|
* check_rtp_origin(): Don't memcmp sockadd_in and in_addr
|
|
* check_rtp_origin(): Avoid using memcmp for comparing integer types
|
|
* vty-ref: Update URI of docbook 5.0 schema
|
|
|
|
[ Daniel Willmann ]
|
|
* mgw: Add new VTY reference
|
|
* Add initial OsmoMGW manual
|
|
|
|
[ Oliver Smith ]
|
|
* build manuals moved here from osmo-gsm-manuals.git
|
|
* jenkins.sh: remove leftover MGCP env variable
|
|
* Fix DISTCHECK_CONFIGURE_FLAGS override
|
|
* contrib/jenkins.sh: build and publish manuals
|
|
* contrib: fix makedistcheck with disabled systemd
|
|
|
|
-- Harald Welte <laforge@gnumonks.org> Sun, 20 Jan 2019 15:02:18 +0100
|
|
|
|
osmo-mgw (1.4.0) unstable; urgency=medium
|
|
|
|
[ Philipp Maier ]
|
|
* network: independently initalize state->out_stream
|
|
* stats: use libosmocore rate counter for in/out_stream.err_ts_counter
|
|
* mgcp_sdp: correct apidoc of mgcp_parse_sdp_data
|
|
* vty: clean up rtp port-range command
|
|
* sdp: remove unused alt_codec field from struct mgcp_rtp_end
|
|
* sdp: remove circular inclusion
|
|
* protocol: Try whole port range on port allocation
|
|
* client: do not start connections in loopback mode
|
|
* mgcp_network: do not log destination invalid ip/port as error
|
|
* cosmetic: fix log output
|
|
* conn: call talloc_free before setting the pointer to NULL
|
|
* protocol: do not change LCO, when no LCO are present
|
|
* protocol: reject illegal lco options
|
|
* cosmetic: fix typo
|
|
* mgw: clean up codec negotiation (sdp)
|
|
* client: add features to generate and parse codec information
|
|
* mgcp_internal: remove unused struct member
|
|
* stats: replace packet statistic counters with libosmocore rate counters
|
|
* stat+vty: fix printing of rate counter values
|
|
* protocol: prevent unnecessary null pointer deref
|
|
|
|
[ Pau Espin Pedrol ]
|
|
* legacy-mgcp: Add jitter buffer on the uplink receiver
|
|
* legacy-mgcp: switch to new osmux output APIs
|
|
* mgcp: mgcp_osmux: use conn_bts when forwarding pkts from bsc_nat
|
|
* mgcp: switch to new osmux output APIs
|
|
* debian: Package installed example doc files
|
|
* gitignore: Add m4 scripts from m4 subdir
|
|
|
|
[ Neels Hofmeyr ]
|
|
* api doc: fix parameter name for mgcp_conn_create()
|
|
* mgcp-client: add mgcp_conn_get_ci()
|
|
* mgcp_client_fsm: improve error logging
|
|
* cosmetic: fix doxygen comment markers
|
|
* cosmetic: mgcp_network.c: merge one LOGPC to its preceding LOGP
|
|
* IuUP hack: make RTP patching less general
|
|
|
|
[ Harald Welte ]
|
|
* cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt'
|
|
|
|
[ Daniel Willmann ]
|
|
* git-version-gen: Don't check for .git directory
|
|
|
|
-- Pau Espin Pedrol <pespin@sysmocom.de> Fri, 27 Jul 2018 19:05:22 +0200
|
|
|
|
osmo-mgw (1.3.0) unstable; urgency=medium
|
|
|
|
[ Pau Espin Pedrol ]
|
|
* contrib: Add osmo-mgw systemd service
|
|
* legacy: mgcp_protocol: Don't print osmux stats if it is off
|
|
* mgcp_stat: Don't print osmux stats if it is off
|
|
|
|
[ Neels Hofmeyr ]
|
|
* fix segfault: DLCX for unknown endpoint: dont try to log NULL endpoint
|
|
* MGCP endpoints: parse as decimal, not hex
|
|
* add --enable-sanitize config option
|
|
* legacy_mgcp: mgcp_test: sanitize: free msgb_ctx
|
|
* mgcp_test: test_packet_error_detection: sanitize: free all conns
|
|
* mgcp_test: test_no_cycle: sanitize: free endp
|
|
* mgcp_test: sanitize: free msgb_ctx
|
|
* mgcp_client: don't configure "bts base"
|
|
* Revert "mgcp_client: don't configure "bts base"" until osmo-msc is ready
|
|
* mgcp_client: add transaction cleanup
|
|
* mgcp_client_test makefile: add update_exp target
|
|
* cosmetic: mgcp_network: typo in log
|
|
* osmo-mgw: Add talloc context introspection via VTY
|
|
* mgcp_client: show failure by MGCP SDP section parsing test
|
|
* mgcp_client: cosmetic: clean up SDP params parsing
|
|
* mgcp_client: detect SDP section-start parsing errors
|
|
* compiler warning: ignore deprecated in mgcp_client_test.c
|
|
* configure: add --enable-werror
|
|
* jenkins.sh: add --enable-werror to configure flags
|
|
* cosmetic: mgcp, legacy_mgcp: drop unused vty.h definitions
|
|
* use osmo_init_logging2() with proper talloc ctx
|
|
|
|
[ Philipp Maier ]
|
|
* osmux: fix nullpointer dereference
|
|
* cosmetic: guard dead osmux vty code with ifdef
|
|
* cosmetic: remove prefix "net" from rtp related vty commands
|
|
* doc: update sample config file
|
|
* cosmetic: use correct VTY port number constant
|
|
* vty: simplify endpoint allocation
|
|
* vty: do not change number_endpoints at runtime
|
|
* MGCP: Connection Identifiers are hex strings
|
|
* libosmo-mgcp: Connection Identifiers are allocated by MGW, not CA
|
|
* client: use osmo_strlcpy instead of strncpy
|
|
* cosmetic: fix sourcecode formatting
|
|
* cosmetic: clearly mark endpoint numbers as hex
|
|
* client: use string as connection identifier
|
|
* conn: remove assertions
|
|
* mgcp_test: fix wrong strcmp() parameters
|
|
* mgcp_test: fix nullpointer dereference
|
|
* mgcp_test: add returncode check
|
|
* mgcp_test: fix possible double free
|
|
* mcgp_client: mgcp_msg_gen(): add checks to verify params
|
|
* network: use originating RTP packet address for loopback
|
|
* client: mgcp_response_parse_params: check rtp port
|
|
* mgcp: allow endpoints beginning from zero
|
|
* client/common: move constant MGCP_ENDPOINT_MAXLEN
|
|
* mgcp: make domain name configurable
|
|
* cosmetic: protocol: remove unnecessary nul termination
|
|
* client: do not insist on \n\n when parsing MGCP messages
|
|
* main: display mgcp ip/port
|
|
* client: make callid in MDCX mandatory
|
|
* client: add missing mandatory SDP fields
|
|
* mgcp: permit wildcarded endpoint assignment (CRCX)
|
|
* mgcp: add prefix to virtual trunk
|
|
* client: eliminate destructive parameter parsing
|
|
* client: eliminate destructive head parsing
|
|
* cosmetic: client: add doxygen comments
|
|
* protocol: fix problem with line break and OSMUX
|
|
* protocol: fix missing carriage return
|
|
* client: fix sdp parameter ordering
|
|
* protocol: check the packetization in local cx options
|
|
* cosmetic: remove spaces from pointer symbol
|
|
* client: Do not accept endpoint ids with wildcards in responses
|
|
* client: do not accept endpoint ids without @ character in responses
|
|
* client: prohibit endpoint ids without @ character
|
|
* protocol: on wildcarded CRCX return endpoint number as hex
|
|
* msg: fix response code on exhausted endp resources
|
|
* cosmetic: move mgcp_release_endp() to mgcp_ep.c
|
|
* client: use heap to store mgcp_response
|
|
* ep: move endpoint struct and define to mgcp_ep.h
|
|
* cosmetic: rename mgcp_release_endp to mgcp_endp_release
|
|
* cosmetic: rename mgcp_ep.c/h to mgcp_endp.c/h
|
|
* protocol: reject DLCX/CRCX/MDCX on unsupported parameters
|
|
* protocol: exit cleanly when local cx options check fails
|
|
* cosmetic: Add missing \n on log line
|
|
* protocol: check requested connection mode
|
|
* protocol: fix tagging of wildcarded requests
|
|
* protocol: prohibit wildcarded requests for MDCX and DLCX
|
|
* mgcp: fix use-after-free and add callback for endpoint cleanup
|
|
* client: add an optional FSM interface
|
|
* mgcp_client_fsm: Add FSM event names
|
|
* cosmetic: mgcp_client_fsm: rename enums
|
|
* cosmetic: rename function .._conn_reset() to .._conn_init()
|
|
* mgcp_conn: do not touch u.rtp in mgcp_conn_alloc()
|
|
* cosmetic: rename .._codec_reset() to .._codec_init()
|
|
* mgcp_conn: add function mgcp_rtp_conn_cleanup()
|
|
* stats: use libosmocore rate counter for in/out_stream.err_ts_counter
|
|
|
|
[ Alexander Couzens ]
|
|
* debian/control: correct library dependency of osmo-mgw against libosmo-mgcp1
|
|
* debian: include systemd service osmo-mgw.service
|
|
* Revert "stats: use libosmocore rate counter for in/out_stream.err_ts_counter"
|
|
|
|
[ Harald Welte ]
|
|
* cosmetic: fix whitespaces; we use tabs for indentation
|
|
* Fix possible buffer overflow in mgcp_conn_dump()
|
|
* osmo-mgw: Update copyright statement
|
|
* osmo-mgw: Config file is osmo-mgw.cfg, and not mgcp.cfg
|
|
* osmo-mgw: Fix copyright notice
|
|
* strct mgcp_rtp_state: Group + document struct members related to patching
|
|
* mgcp_rtp_state: grup 'stats' members into sub-structure
|
|
* mgcp_rtp_end: Group statistics members into 'stats' sub-struct
|
|
* libosmo-mgcp: Cosmetic spelling fixes in comments
|
|
* mgcp_msg: We must parse endpoint numbers as hex, not decimal!
|
|
* mgcp_internal.h: document more struct members with comments
|
|
* centralize handling of common errors like "endpoint not found"
|
|
* Return proper MGCP Error codes, as per spec
|
|
* osmo-mgw: Use libosmocore socket abstraction
|
|
* osmo-bsc_mgcp: Add LIBOSMONETIF_{CFLAGS,LIBS}
|
|
* libosmo-mgcp-client is GPLv2+, not AGPLv3+
|
|
* Turn libosmo-mgcp into local, non-installed library
|
|
|
|
[ Stefan Sperling ]
|
|
* enable osmo_fsm vty commands in libosmo-mgcp-client vty
|
|
|
|
-- Pau Espin Pedrol <pespin@sysmocom.de> Thu, 03 May 2018 17:40:35 +0200
|
|
|
|
osmo-mgw (1.2.0) unstable; urgency=medium
|
|
|
|
[ Neels Hofmeyr ]
|
|
* jenkins: use osmo-clean-workspace.sh before and after build
|
|
* vty: skip installing cmds now always installed by default
|
|
* mgcp-client vty: use name 'mgw' instead of 'mgcpgw'
|
|
* mgcp client: vty: tweak doc strings
|
|
|
|
[ Philipp Maier ]
|
|
* sdp: refactoring sdp parser/generator
|
|
* cosmetic: rename bts_codec to codec_str
|
|
* cosmetic: fix coding style for mgcp_parse_sdp_data()
|
|
* cosmetic: fix commenting style
|
|
* cosmetic: correct whitespaces
|
|
* client: fix stderror logging in unit-test
|
|
* client: add unified function to generate MGCP messages
|
|
* client: add ip address parsing to the client
|
|
* protocol: allow wildcarded DLCX
|
|
* mgcp: remove port/timeslot calculator functions from mgcp.h
|
|
* network: add separate log category
|
|
* cosmetic: make dummy packet handling more explicit
|
|
* network: autdetect rtp bind ip-address
|
|
* network: fix rtp packet length
|
|
* network: remove unused return code
|
|
|
|
[ Pau Espin Pedrol ]
|
|
* mgcp_client_vty.c: Fix VTY compatibility with 'mgcpgw bts-base'
|
|
|
|
-- Harald Welte <laforge@gnumonks.org> Fri, 10 Nov 2017 11:10:23 +0900
|
|
|
|
osmo-mgw (1.1.0) unstable; urgency=medium
|
|
|
|
* New upstream release
|
|
|
|
-- Harald Welte <lafore@gnumonks.org> Sat, 28 Oct 2017 12:48:41 +0200
|
|
|
|
osmo-mgw (1.0.2) unstable; urgency=low
|
|
|
|
* First release after major rename.
|
|
|
|
-- Max Suraev <msuraev@sysmocom.de> Thu, 14 Sep 2017 18:41:05 +0200
|
|
|
|
|
|
osmo-mgw (0.1.0) unstable; urgency=low
|
|
|
|
* Initial release.
|
|
|
|
-- Alexander Couzens <lynxis@fe80.eu> Tue, 08 Aug 2017 01:12:53 +0000
|