I know there are threads about streaming XM through Sonos, but they seem to be dead ends. I have been able to stream XM through my Sonos system for a while, and figured I would post how I did so in case others were interested.
I use Pocket Tunes to listen to XM on my iPhone, which uses the MusicDock service to facilitate streaming. So I figured, why not try the same thing on my home computer, and then, when that worked, I decided to try the link and luckily, it streams just fine, with some caveats. Here's what I do...
First, you do need an XM online account which costs $2.99/month. Once you have one, and the accompanying username and password, open up your browser and go to http://mobile.musicdock.com
Once there, fill in your XM online info to log in. You will be presented with a list of stations. Click on the station you want to listen to, and a page will load showing the station name, logo, artist, song, an ad most likely, and a "Click Here if Media Player does not open" line. You want to right-click (or control-click for Mac one buttoners) on the "Click Here" and choose your browser's option for copying the link.
At this point, it should begin streaming the station in your browser. It USED to for me, but for some reason, now after a few seconds, my browser will hang and it won't stream. I don't know what changed, but the rest of the process still works. You want to take the link you copied and paste it into your Sonos' Radio Stations.
I opened my Sonos Desktop Controller ----> Radio -----> Radio Stations -----> Add New. When the dialog opens, paste your streaming link into the Streaming URL space, and give it a name. Click Add, and then just double-click on your new station and it should start streaming.
That's it. It is by no means an elegant solution, but it works. I don't know why the MusicDock site is giving my browser (latest Safari and even Firefox on my Mac) a problem all the sudden, but as long as you can copy the streaming link before it hangs, you're OK. The other caveat is the streaming link seems to be disposable, i.e. it will stream continuously for as long you want (or at least for a few hours, which is as long as I've had it going) but once you stop it, it will most likely give you an error when you try to restart it, and you will need to go to MusicDock and get a new link, edit your station with the new Streaming URL, and then start the stream again.
It's not perfect, but it works. I hope it helps someone out there.