It seems that whenever a client connects to a stream from an iphone, either directly to the icecast port http://x.x.x.x:8000/stream or through web players, the iphone creates to identical connections to the icecast server, and keeps both active.
While this is not that bad, it does count toward the maximum connection limit. I have no idea if this is an icecast issue (perhaps specific headers or packets are being sent forcing the client to set up an additional connection) or an iPhone/safari/webkit issue, nor do I have the expertise to troubleshoot this.
Can you guys replicate this behaviour? For now, I'm assuming it's a bug in ios 17, any idea how to report this to apple??
edit: I'm not the only one: https://github.com/doublesymmetry/react-native-track-player/issues/2096
Thanks! I am now using authenticated access to /admin/stats, and parse the XML. That works, but the authentication part is a hassle.
So to summarize: the status-json.xsl was broken in 2.4, and will not be fixed in 2.5, but deprecated. You're building a new page at /admin/publicstats and /admin/publicstats.json that will show the stats without authentication.
Keep up the good work! It's really appreciated.
Hey guys and girls, I have an issue with the json status output. We rely heavily on it for getting the stats.
When we have a service with multiple sources, the json script isn't outputting correct json. Look at the following example. The json['icestats']['source'] key contains an array of 3 sources. The first one is correctly formatted, but the next to have a surplus comma at the end, and are missing the closing curly brace.
I've looked at the status-json.xsl and xml2json.xslt files, but I have no idea where this behaviour is coming from.
Any ideas? Fixes?
{
"icestats": {
"admin": "icemaster@localhost",
"host": "server.domain.nl",
"location": "Earth",
"server_id": "Icecast 2.4.4",
"server_start": "Wed, 19 May 2021 23:03:50 +0200",
"server_start_iso8601": "2021-05-19T23:03:50+0200",
"source": [{
"audio_info": "bitrate=192",
"bitrate": 192,
"genre": "Folk, Piraten",
"listener_peak": 124,
"listeners": 0,
"listenurl": "http://server.domain.nl:8123/autodj",
"server_description": "ZenderXXX Radio NL ",
"server_name": "ZenderXXX Radio NL ",
"server_type": "audio/mpeg",
"server_url": "https://www.ZenderXXX.nl",
"stream_start": "Wed, 19 May 2021 23:03:52 +0200",
"stream_start_iso8601": "2021-05-19T23:03:52+0200",
"title": "Walter Ostanek - Baby Doll Polka",
"dummy": null
}, {
"bitrate": 192,
"genre": "Folk, Piraten",
"listener_peak": 190,
"listeners": 0,
"listenurl": "http://server.domain.nl:8123/backup",
"server_description": "Internet Radiostation",
"server_name": "ZenderXXX Radio NL",
"server_type": "audio/mpeg",
"server_url": "https://www.ZenderXXX.nl",
"stream_start": "Sat, 19 Jun 2021 09:15:09 +0200",
"stream_start_iso8601": "2021-06-19T09:15:09+0200",
"title": "RECLAME - Adverteren Op ZenderXXX",
,
{
"bitrate": 192,
"genre": "Folk, Piraten",
"listener_peak": 136,
"listeners": 125,
"listenurl": "http://server.domain.nl:8123/stream",
"server_description": "Internetradio station",
"server_name": "ZenderXXX Radio NL",
"server_type": "audio/mpeg",
"server_url": "https://www.ZenderXXX.nl",
"stream_start": "Wed, 23 Jun 2021 09:47:27 +0200",
"stream_start_iso8601": "2021-06-23T09:47:27+0200",
"title": "STUDIO XXX",
]
}
}