masmu / pulseaudio-dlna

A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux
GNU General Public License v3.0
1.25k stars 162 forks source link

Using pulseaudio-dlna with soundmate m1 #87

Closed alfredopalhares closed 8 years ago

alfredopalhares commented 9 years ago

Hello,

I am trying to stream to a soundmate m11, and as its turn out its running openwrt on it.

I has ushare , version 1.1.a running on:

root@airmusic:~# netstat -lpn | grep ushare
tcp        0      0 0.0.0.0:49152           0.0.0.0:*               LISTEN      1531/ushare
udp        0      0 0.0.0.0:1900            0.0.0.0:*                           1531/ushare
udp        0      0 127.0.0.1:59264         0.0.0.0:*                           1531/ushare

I am on a archlinux box, updated system, runing pulseaudio-dlna from the AUR version 0.4.4.

I just start pulseaudio-dlna from the command line:

$ pulseaudio-dlna 
09-15 23:17:52 pulseaudio_dlna.application                    INFO     Using localhost: 46.50.30.77:8080
09-15 23:17:52 pulseaudio_dlna.application                    INFO     Loaded encoders:
09-15 23:17:52 pulseaudio_dlna.application                    INFO     <LameEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/mpeg,audio/mp3">
09-15 23:17:52 pulseaudio_dlna.application                    INFO     <WavEncoder bit-rate="None" state="False" enabled="True" mime-types="audio/wav,audio/x-wav">
09-15 23:17:52 pulseaudio_dlna.application                    INFO     <AacEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/aac,audio/x-aac">
09-15 23:17:52 pulseaudio_dlna.application                    INFO     <FlacEncoder bit-rate="None" state="True" enabled="True" mime-types="audio/flac,audio/x-flac">
09-15 23:17:52 pulseaudio_dlna.application                    INFO     <OggEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/ogg,audio/x-ogg,application/ogg">
09-15 23:17:52 pulseaudio_dlna.application                    INFO     <OpusEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/opus,audio/x-opus">
09-15 23:17:57 pulseaudio_dlna.listener                       INFO     Discovery complete.
09-15 23:18:48 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream121"
09-15 23:18:48 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1

I am on the same network as the device, but opening pavucontrol, does not show any new output device.

Any suggestions?

masmu commented 9 years ago

ushare looks fine. Did you try it a few times? Broadcasting is not reliable by nature, especially in complex network setups. But normally this is not an issue in home LANs. For myself it works always.

Network troubleshooting If your MediaServer doesn't show up on your client most of the time networking issue are responsible for that.

  • Add a multicast route, pointing to the proper network interface: route add -net 239.0.0.0 netmask 255.0.0.0 eth0
  • Any firewall on your system?
alfredopalhares commented 9 years ago

Hello @masmu , thanks for the reply.

I add the 239 and also the 224 route. and got no luck finding the ushare server.

Here are the logs:

09-29 00:26:48 pulseaudio_dlna.application                    INFO     Using localhost: 192.168.222.189:8080
09-29 00:26:48 pulseaudio_dlna.application                    INFO     Loaded encoders:
09-29 00:26:48 pulseaudio_dlna.application                    INFO     <LameEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/mpeg,audio/mp3">
09-29 00:26:48 pulseaudio_dlna.application                    INFO     <WavEncoder bit-rate="None" state="False" enabled="True" mime-types="audio/wav,audio/x-wav">
09-29 00:26:48 pulseaudio_dlna.application                    INFO     <AacEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/aac,audio/x-aac">
09-29 00:26:48 pulseaudio_dlna.application                    INFO     <FlacEncoder bit-rate="None" state="True" enabled="True" mime-types="audio/flac,audio/x-flac">
09-29 00:26:48 pulseaudio_dlna.application                    INFO     <OggEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/ogg,audio/x-ogg,application/ogg">
09-29 00:26:48 pulseaudio_dlna.application                    INFO     <OpusEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/opus,audio/x-opus">
09-29 00:26:54 pulseaudio_dlna.listener                       INFO     Discovery complete.
09-29 00:28:28 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream55"
09-29 00:28:28 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1
09-29 00:28:30 pulseaudio_dlna.pulseaudio                     INFO     on_playback_stream_removed "/org/pulseaudio/core1/playback_stream55"
09-29 00:28:30 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream56"
09-29 00:28:31 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1
09-29 00:28:32 pulseaudio_dlna.pulseaudio                     INFO     on_playback_stream_removed "/org/pulseaudio/core1/playback_stream56"
09-29 00:28:33 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1
09-29 00:31:12 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream57"
09-29 00:31:12 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1
09-29 00:31:14 pulseaudio_dlna.pulseaudio                     INFO     on_playback_stream_removed "/org/pulseaudio/core1/playback_stream57"
09-29 00:31:14 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1
09-29 00:31:16 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream58"
09-29 00:31:17 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1
09-29 00:31:18 pulseaudio_dlna.pulseaudio                     INFO     on_playback_stream_removed "/org/pulseaudio/core1/playback_stream58"
09-29 00:31:19 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink1

Any ideas?

masmu commented 9 years ago

It does not find your device at all. Normally the discovery is known to be very robust. If it finds your device, there is a line like the following: Added device "XXX" ...

Could you provide an full debug.log to make sure it is not some kind of parsing error? The following command will create one in the current directory.

pulseaudio-dlna --debug 2>&1 | tee -a debug.log

Besides that, could you give me some information about your network configuration? Interesting would be the IPs of the devices and computers and if those are connected via wifi or cable.

alfredopalhares commented 9 years ago

Hello @masmu

With the debug output its exactly the same, after several minutes:

$ pulseaudio-dlna --host=192.168.222.189 -p 8080 --debug
09-29 01:17:33 pulseaudio_dlna.application                    INFO     Using localhost: 192.168.222.189:8080
09-29 01:17:33 pulseaudio_dlna.application                    INFO     Loaded encoders:
09-29 01:17:33 pulseaudio_dlna.application                    INFO     <LameEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/mpeg,audio/mp3">
09-29 01:17:33 pulseaudio_dlna.application                    INFO     <WavEncoder bit-rate="None" state="False" enabled="True" mime-types="audio/wav,audio/x-wav">
09-29 01:17:33 pulseaudio_dlna.application                    INFO     <AacEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/aac,audio/x-aac">
09-29 01:17:33 pulseaudio_dlna.application                    INFO     <FlacEncoder bit-rate="None" state="True" enabled="True" mime-types="audio/flac,audio/x-flac">
09-29 01:17:33 pulseaudio_dlna.application                    INFO     <OggEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/ogg,audio/x-ogg,application/ogg">
09-29 01:17:33 pulseaudio_dlna.application                    INFO     <OpusEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/opus,audio/x-opus">
09-29 01:17:38 pulseaudio_dlna.listener                       INFO     Discovery complete.

I telnet'd onto the router and started ushare manually:

root@airmusic:~# /usr/bin/ushare -n airmusic-DMS -i br-lan -c /tmp/mnt -v --dlna
Interface br-lan is down.
Recheck uShare's configuration and try again !
uShare (version 1.1a), a lightweight UPnP A/V and DLNA Media Server.
Benjamin Zores (C) 2005-2007, for GeeXboX Team.
See http://ushare.geexbox.org/ for updates.
Listening on telnet port 1337
Initializing UPnP subsystem ...
Starting in DLNA compliant profile ...
UPnP MediaServer listening on 192.168.222.254:49152
Sending UPnP advertisement for device ...
Listening for control point connections ...
Building Metadata List ...
Looking for files in content directory : /tmp/mnt
scandir: No such file or directory
Found 2 files and subdirectories.
http_get_info, filename : /web/cds.xml
http_open, filename : /web/cds.xml
http_read
Read file from memory.
Read 5513 bytes.
http_close
http_get_info, filename : /web/cds.xml
http_open, filename : /web/cds.xml
http_read
Read file from memory.
Read 5513 bytes.
http_close
http_get_info, filename : /web/cds.xml
http_open, filename : /web/cds.xml
http_read
Read file from memory.
Read 5513 bytes.
http_close
http_get_info, filename : /web/cds.xml
http_open, filename : /web/cds.xml
http_read
Read file from memory.
Read 5513 bytes.
http_close

Also tried to force the renderer url explicitly:

$ pulseaudio-dlna --host=192.168.222.189 -p 8080 --debug --renderer-url http://192.168.222.254:49152/web/cds.xml  
09-29 01:22:11 pulseaudio_dlna.application                    INFO     Using localhost: 192.168.222.189:8080
09-29 01:22:11 pulseaudio_dlna.application                    INFO     Loaded encoders:
09-29 01:22:11 pulseaudio_dlna.application                    INFO     <LameEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/mpeg,audio/mp3">
09-29 01:22:11 pulseaudio_dlna.application                    INFO     <WavEncoder bit-rate="None" state="False" enabled="True" mime-types="audio/wav,audio/x-wav">
09-29 01:22:11 pulseaudio_dlna.application                    INFO     <AacEncoder bit-rate="192" state="True" enabled="True" mime-types="audio/aac,audio/x-aac">
09-29 01:22:11 pulseaudio_dlna.application                    INFO     <FlacEncoder bit-rate="None" state="True" enabled="True" mime-types="audio/flac,audio/x-flac">
09-29 01:22:11 pulseaudio_dlna.application                    INFO     <OggEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/ogg,audio/x-ogg,application/ogg">
09-29 01:22:11 pulseaudio_dlna.application                    INFO     <OpusEncoder bit-rate="192" state="False" enabled="True" mime-types="audio/opus,audio/x-opus">
09-29 01:22:11 requests.packages.urllib3.connectionpool       INFO     Starting new HTTP connection (1): 192.168.222.254
09-29 01:22:11 requests.packages.urllib3.connectionpool       DEBUG    "GET /web/cds.xml HTTP/1.1" 200 5513
09-29 01:22:11 pulseaudio_dlna.plugins.chromecast.renderer    DEBUG    Response from chromecast device (http://192.168.222.254:49152/web/cds.xml)
<?xml version="1.0" encoding="utf-8"?><scpd xmlns="urn:schemas-upnp-org:service-1-0">  <specVersion>    <major>1</major>    <minor>0</minor>  </specVersion>  <actionList>    <action>      <name>Browse</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>        <argument>          <name>BrowseFlag</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_BrowseFlag</relatedStateVariable>       </argument>        <argument>          <name>Filter</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Filter</relatedStateVariable>        </argument>        <argument>          <name>StartingIndex</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Index</relatedStateVariable>        </argument>        <argument>          <name>RequestedCount</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>SortCriteria</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_SortCriteria</relatedStateVariable>       </argument>        <argument>          <name>Result</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Result</relatedStateVariable>        </argument>        <argument>          <name>NumberReturned</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>TotalMatches</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>UpdateID</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_UpdateID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>DestroyObject</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSystemUpdateID</name>      <argumentList>        <argument>          <name>Id</name>          <direction>out</direction>          <relatedStateVariable>SystemUpdateID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSearchCapabilities</name>      <argumentList>        <argument>          <name>SearchCaps</name>          <direction>out</direction>          <relatedStateVariable>SearchCapabilities</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSortCapabilities</name>      <argumentList>        <argument>          <name>SortCaps</name>          <direction>out</direction>          <relatedStateVariable>SortCapabilities</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>UpdateObject</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>        <argument>          <name>CurrentTagValue</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_TagValueList</relatedStateVariable>        </argument>        <argument>          <name>NewTagValue</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_TagValueList</relatedStateVariable>        </argument>      </argumentList>    </action>  </actionList>  <serviceStateTable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_BrowseFlag</name>      <dataType>string</dataType>      <allowedValueList>        <allowedValue>BrowseMetadata</allowedValue>        <allowedValue>BrowseDirectChildren</allowedValue>      </allowedValueList>    </stateVariable>    <stateVariable sendEvents="yes">      <name>SystemUpdateID</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Count</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_SortCriteria</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>SortCapabilities</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Index</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_ObjectID</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_UpdateID</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_TagValueList</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Result</name>      <dataType>string</dataType>    </stateVariable>   <stateVariable sendEvents="no">      <name>SearchCapabilities</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Filter</name>      <dataType>string</dataType>    </stateVariable>  </serviceStateTable></scpd>
09-29 01:22:11 pulseaudio_dlna.plugins.chromecast.renderer    ERROR    No valid XML returned from http://192.168.222.254:49152/web/cds.xml.
09-29 01:22:11 requests.packages.urllib3.connectionpool       INFO     Starting new HTTP connection (1): 192.168.222.254
09-29 01:22:11 requests.packages.urllib3.connectionpool       DEBUG    "GET /web/cds.xml HTTP/1.1" 200 5513
09-29 01:22:11 pulseaudio_dlna.plugins.upnp.renderer          DEBUG    Response from UPNP device (http://192.168.222.254:49152/web/cds.xml)
<?xml version="1.0" encoding="utf-8"?><scpd xmlns="urn:schemas-upnp-org:service-1-0">  <specVersion>    <major>1</major>    <minor>0</minor>  </specVersion>  <actionList>    <action>      <name>Browse</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>        <argument>          <name>BrowseFlag</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_BrowseFlag</relatedStateVariable>       </argument>        <argument>          <name>Filter</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Filter</relatedStateVariable>        </argument>        <argument>          <name>StartingIndex</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Index</relatedStateVariable>        </argument>        <argument>          <name>RequestedCount</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>SortCriteria</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_SortCriteria</relatedStateVariable>       </argument>        <argument>          <name>Result</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Result</relatedStateVariable>        </argument>        <argument>          <name>NumberReturned</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>TotalMatches</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>UpdateID</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_UpdateID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>DestroyObject</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSystemUpdateID</name>      <argumentList>        <argument>          <name>Id</name>          <direction>out</direction>          <relatedStateVariable>SystemUpdateID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSearchCapabilities</name>      <argumentList>        <argument>          <name>SearchCaps</name>          <direction>out</direction>          <relatedStateVariable>SearchCapabilities</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSortCapabilities</name>      <argumentList>        <argument>          <name>SortCaps</name>          <direction>out</direction>          <relatedStateVariable>SortCapabilities</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>UpdateObject</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>        <argument>          <name>CurrentTagValue</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_TagValueList</relatedStateVariable>        </argument>        <argument>          <name>NewTagValue</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_TagValueList</relatedStateVariable>        </argument>      </argumentList>    </action>  </actionList>  <serviceStateTable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_BrowseFlag</name>      <dataType>string</dataType>      <allowedValueList>        <allowedValue>BrowseMetadata</allowedValue>        <allowedValue>BrowseDirectChildren</allowedValue>      </allowedValueList>    </stateVariable>    <stateVariable sendEvents="yes">      <name>SystemUpdateID</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Count</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_SortCriteria</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>SortCapabilities</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Index</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_ObjectID</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_UpdateID</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_TagValueList</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Result</name>      <dataType>string</dataType>    </stateVariable>   <stateVariable sendEvents="no">      <name>SearchCapabilities</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Filter</name>      <dataType>string</dataType>    </stateVariable>  </serviceStateTable></scpd>
09-29 01:22:11 pulseaudio_dlna.plugins.upnp.renderer          ERROR    No valid XML returned from http://192.168.222.254:49152/web/cds.xml.

The network is very simple, the airmusic device is runing hostapd, and only the test laptop is connected to it.

I can successfully visit the ushare web page.

The cds.xml file:

<?xml version="1.0" encoding="utf-8"?><scpd xmlns="urn:schemas-upnp-org:service-1-0">  <specVersion>    <major>1</major>    <minor>0</minor>  </specVersion>  <actionList>    <action>      <name>Browse</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>        <argument>          <name>BrowseFlag</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_BrowseFlag</relatedStateVariable>       </argument>        <argument>          <name>Filter</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Filter</relatedStateVariable>        </argument>        <argument>          <name>StartingIndex</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Index</relatedStateVariable>        </argument>        <argument>          <name>RequestedCount</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>SortCriteria</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_SortCriteria</relatedStateVariable>       </argument>        <argument>          <name>Result</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Result</relatedStateVariable>        </argument>        <argument>          <name>NumberReturned</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>TotalMatches</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_Count</relatedStateVariable>        </argument>        <argument>          <name>UpdateID</name>          <direction>out</direction>          <relatedStateVariable>A_ARG_TYPE_UpdateID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>DestroyObject</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSystemUpdateID</name>      <argumentList>        <argument>          <name>Id</name>          <direction>out</direction>          <relatedStateVariable>SystemUpdateID</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSearchCapabilities</name>      <argumentList>        <argument>          <name>SearchCaps</name>          <direction>out</direction>          <relatedStateVariable>SearchCapabilities</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>GetSortCapabilities</name>      <argumentList>        <argument>          <name>SortCaps</name>          <direction>out</direction>          <relatedStateVariable>SortCapabilities</relatedStateVariable>        </argument>      </argumentList>    </action>    <action>      <name>UpdateObject</name>      <argumentList>        <argument>          <name>ObjectID</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>        </argument>        <argument>          <name>CurrentTagValue</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_TagValueList</relatedStateVariable>        </argument>        <argument>          <name>NewTagValue</name>          <direction>in</direction>          <relatedStateVariable>A_ARG_TYPE_TagValueList</relatedStateVariable>        </argument>      </argumentList>    </action>  </actionList>  <serviceStateTable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_BrowseFlag</name>      <dataType>string</dataType>      <allowedValueList>        <allowedValue>BrowseMetadata</allowedValue>        <allowedValue>BrowseDirectChildren</allowedValue>      </allowedValueList>    </stateVariable>    <stateVariable sendEvents="yes">      <name>SystemUpdateID</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Count</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_SortCriteria</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>SortCapabilities</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Index</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_ObjectID</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_UpdateID</name>      <dataType>ui4</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_TagValueList</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Result</name>      <dataType>string</dataType>    </stateVariable>   <stateVariable sendEvents="no">      <name>SearchCapabilities</name>      <dataType>string</dataType>    </stateVariable>    <stateVariable sendEvents="no">      <name>A_ARG_TYPE_Filter</name>      <dataType>string</dataType>    </stateVariable>  </serviceStateTable></scpd>

Thank you for your help so far!

masmu commented 9 years ago

You are welcome!

Good idea to query the renderer yourself. But that's the wrong url. Are there other applications on your computer which are able to find the renderer? If so, you could start wireshark and look for SSDP packages. They look like:

HTTP/1.1 200 OK
Cache-Control: max-age=1800
Date: Tue, 29 Sep 2015 00:57:57 GMT
Ext:
Location: http://192.168.1.23:40897/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/description.xml
Server: Linux/3.1.1 UPnP/1.1 CoCy/0.1
ST: urn:schemas-upnp-org:device:MediaRenderer:1
USN: uuid:8fd2dff8-b3b5-3a84-2b02-2d9113e68f32::urn:schemas-upnp-org:device:MediaRenderer:1
BOOTID.UPNP.ORG: 1444592141
CONFIGID.UPNP.ORG: 1

The URL you are looking for is the Location entry. In that case: http://192.168.1.23:40897/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/description.xml. The ST header has to be: urn:schemas-upnp-org:device:MediaRenderer:1 The URL content is something like the following content:

<?xml version='1.0' encoding='utf-8'?>
<root configId="1" xmlns="urn:schemas-upnp-org:device-1-0">
    <specVersion>
        <major>1</major>
        <minor>1</minor>
    </specVersion>
    <device>
        <deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
        <friendlyName>Wohnzimmer</friendlyName>
        <manufacturer>cocy</manufacturer>
        <modelName>Wohnzimmer</modelName>
        <UDN>uuid:8fd2dff8-b3b5-3a84-2b02-2d9113e68f32</UDN>
        <serviceList>
            <service>
                <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
                <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
                <SCPDURL>/RenderingControl_1/service.xml</SCPDURL>
                <controlURL>/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/RenderingControl/control</controlURL>
                <eventSubURL>/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/RenderingControl/sub</eventSubURL>
            </service>
            <service>
                <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
                <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
                <SCPDURL>/ConnectionManager_1/service.xml</SCPDURL>
                <controlURL>/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/ConnectionManager/control</controlURL>
                <eventSubURL>/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/ConnectionManager/sub</eventSubURL>
            </service>
            <service>
                <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
                <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
                <SCPDURL>/AVTransport_1/service.xml</SCPDURL>
                <controlURL>/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/AVTransport/control</controlURL>
                <eventSubURL>/8fd2dff8-b3b5-3a84-2b02-2d9113e68f32/AVTransport/sub</eventSubURL>
            </service>
        </serviceList>
    </device>
</root>

It can vary quite a bit, but the basic structure is always the same.

If you have an Android phone on your wifi, you could try to install BubbleUPnP to ensure your network setup is not the problem. But as far I could see, everything is fine. 192.168.222.254 is on the same network as 192.168.222.189.

alfredopalhares commented 9 years ago

Hello @masmu , thanks for the detailed answer.

So I have tried to use BubbleUPnP, I connected to the same "airmusic network" and the only devices in that connection were, my laptop, the soundmate m1 (serving the network) and an android device with BubbleUPnP.

With BubbleUPNP, pulseaudio-dlna worked immediately, and I was able stream music properly.

I tried to sniff the traffic before, but all i see (with the soundmate m1) is IGMP traffic.

2015-09-30-234625_1001x78_scrot

I have run out of ideas to get this device to do anything.

Any suggestion would be welcome!

Regards,

masmu commented 9 years ago

I am pretty sure your network setup is not the problem, since BubbleUPnP and pulseaudio-dlna work flawlessly together.

There are basically 3 different roles in DLNA.

Many devices (or applications) have one or more roles. Kodi for example is a DMS and a DMR. It serves media and can get instructed to play from other DMS. BubbleUPnP is everything, since it does serve files, plays media and can instruct other DMRs to do so. You have to consider one thing with DMRs: Normally they can be remote controlled (by DMCs) to play media or you can instruct them yourself (e.g. via a remote control, integrated touchpad, whatever) to play media. But there are manufacturers who do not implement the full DMR protocol stack. Those devices implement the methods to play media from other DMS, but do not implement the protocol for being remote controlled. Those devices can just play media from DMS when you use something like a remote control or the buttons at the device. pulseaudio-dlna needs a full DMR protocol stack to remote control the device. So, some devices cannot work.

I took a look at the device on amazon. It is not a DMC that's for sure and it does not have to be. It may be a DMS (because of the USB port), which is unimportant for your case. Since it is missing a display and control buttons at the devices surface it should be a full stack DMR. That's what we want. Other people reported it to be an DMR. So, there is hope.

As I understood, BubbleUPnP and pulseaudio-dlna are both not able to find the device. I have a D-Link DCH-M225/E which also supports Airplay and DLNA. But I needed to enable DLNA in the web panel. I can just assume it is something like that. BubbleUPnP is a very mature and reliable piece of software. If it does not find your device, it is normally the fault of the devices firmware implementation or you have a problem with your network setup. So, I recommend you to look for UPnP or DLNA in the web panel and make sure it is enabled.

masmu commented 8 years ago

Closed due to inactivity.