Plexamp as remote

Yep, resources shows the same faulty address that plexamp was trying to connect to. Interestingly, plexamp also has a 10.x address

Does it have the correct address too? Or just the faulty one? Can you post the full entry for it? And what is the IP of the phone?

/api/v2/resources.xml 404’d for me so i hit /pms/resources.xml instead.

<MediaContainer size="8">
  ...
  <Device name="Matthew_s MacBook Pro" product="Plex Media Player" productVersion="3.35.2" platform="Konvergo" platformVersion="2.5.0.792-1bc7f225" device="OSX" clientIdentifier="r66j03a4e9wv8mrmj64wsif6" createdAt="1506470298" lastSeenAt="1519691465" provides="client,player,pubsub-player" owned="1" publicAddress="<>" publicAddressMatches="1" presence="1">
    <Connection protocol="http" address="192.168.1.6" port="32433" uri="http://192.168.1.6:32433" local="1"/>
  </Device>
  <Device name="Plex Web (Chrome)" product="Plex Web" productVersion="3.37.2" platform="Chrome" platformVersion="64.0" device="OSX" clientIdentifier="6tz00fu7dsmy4lgpd0riq1yx" createdAt="1513135789" lastSeenAt="1519686879" provides="client,player,pubsub-player" owned="1" publicAddress="<>" publicAddressMatches="1" presence="1" accessToken="<>">
    <Connection protocol="http" address="192.168.1.19" port="32400" uri="http://192.168.1.19:32400" local="1"/>
    <Connection protocol="http" address="<>" port="32400" uri="<>:32400" local="0"/>
    <Connection protocol="http" address="<>" port="32400" uri="http://<>:32400" local="0"/>
  </Device>
  ...
  <Device name="Pixel 2" product="Plex for Android" productVersion="6.13.7.3458" platform="Android" platformVersion="8.1.0" device="Pixel 2" clientIdentifier="0b67c53ce79dd5e5-com-plexapp-android" createdAt="1518074968" lastSeenAt="1519686529" provides="player,pubsub-player,controller,sync-target" owned="1" publicAddress="<>" publicAddressMatches="1" presence="0">
    <Connection protocol="http" address="10.212.122.24" port="32500" uri="http://10.212.122.24:32500" local="1"/>
  </Device>
  <Device name="Matthew's MBP Plexamp" product="Plexamp" productVersion="1.0.2" platform="Plexamp" platformVersion="v7.9.0" device="macOS" clientIdentifier="73878bdc-a6b5-4636-811b-374279e1e1cd" createdAt="1519437006" lastSeenAt="1519669081" provides="client,player,pubsub-player" owned="1" publicAddress="<>" publicAddressMatches="1" presence="1">
    <Connection protocol="http" address="192.168.1.6" port="20000" uri="http://192.168.1.6:20000" local="1"/>
  </Device>
</MediaContainer>

After signing out and signing in again, Plexamp shows the proper address. The same did not work for Pixel 2.

@matthewdias said:
After signing out and signing in again, Plexamp shows the proper address. The same did not work for Pixel 2.

Sorry, having trouble parsing this, might be the wine. Plexamp should ask for those resources details every time you launch the app, or select a player or a server. You’re eliding data from the response which might help me figure out what’s going on, also; a private IP address isn’t going to help me hack your network :sweat_smile:

I’m not sure what didn’t work on the Pixel.

Sorry, to be clear, the resources response was showing an incorrect connection address for Plexamp. After signing out and signing in again, the response showed the correct address. I attempted clearing data in the android app but that didn’t fix the issue. Here’s the full response lol

<MediaContainer size="8">
  <Device name="Google Drive" product="Plex Media Server" productVersion="1.9.1.263-f35a84dc4" platform="Cloud" platformVersion="0.1" device="PC" clientIdentifier="1db9c6ca0630483c9129f1065a7b6713" createdAt="1513885319" lastSeenAt="1519231303" provides="server" owned="1" accessToken="kgSQ----------h4dqBJP" publicAddress="40.84.45.212" presence="1" synced="0" relay="1" publicAddressMatches="0">
    <Connection protocol="https" address="757e378a4d054f86-1db9c6ca0630483c9129f1065a7b6713.ric.plex.services" port="443" uri="https://757e378a4d054f86-1db9c6ca0630483c9129f1065a7b6713.ric.plex.services" local="0"/>
  </Device>
  <Device name="Matthew’s Mac mini" product="Plex Media Server" productVersion="1.11.3.4803-c40bba82e" platform="MacOSX" platformVersion="10.13.2" device="Mac" clientIdentifier="7fd1792b555c65f938f71ad10a4c7f99bf8a40d9" createdAt="1434330046" lastSeenAt="1519825291" provides="server" owned="1" accessToken="kgSQ----------h4dqBJP" publicAddress="47.188.56.37" httpsRequired="0" synced="0" relay="1" publicAddressMatches="1" presence="1">
    <Connection protocol="http" address="192.168.1.19" port="32400" uri="http://192.168.1.19:32400" local="1"/>
    <Connection protocol="http" address="matthewdias.dynet.com" port="32400" uri="http://matthewdias.dynet.com:32400" local="0"/>
    <Connection protocol="http" address="47.188.56.37" port="32400" uri="http://47.188.56.37:32400" local="0"/>
  </Device>
  <Device name="Matthew_s MacBook Pro" product="Plex Media Player" productVersion="3.35.2" platform="Konvergo" platformVersion="2.5.0.792-1bc7f225" device="OSX" clientIdentifier="r66j03a4e9wv8mrmj64wsif6" createdAt="1506470298" lastSeenAt="1519765350" provides="client,player,pubsub-player" owned="1" publicAddress="47.188.56.37" publicAddressMatches="1" presence="0">
    <Connection protocol="http" address="192.168.1.6" port="32433" uri="http://192.168.1.6:32433" local="1"/>
  </Device>
  <Device name="Plex Web (Chrome)" product="Plex Web" productVersion="3.37.2" platform="Chrome" platformVersion="64.0" device="OSX" clientIdentifier="6tz00fu7dsmy4lgpd0riq1yx" createdAt="1513135789" lastSeenAt="1519835174" provides="client,player,pubsub-player" owned="1" publicAddress="47.188.56.37" publicAddressMatches="1" presence="0" accessToken="">
    <Connection protocol="http" address="192.168.1.19" port="32400" uri="http://192.168.1.19:32400" local="1"/>
    <Connection protocol="http" address="matthewdias.dynet.com" port="32400" uri="http://matthewdias.dynet.com:32400" local="0"/>
    <Connection protocol="http" address="47.188.56.37" port="32400" uri="http://47.188.56.37:32400" local="0"/>
  </Device>
  <Device name="BRAVIA 4K GB" product="Plex for Android" productVersion="6.13.7.3458" platform="Android" platformVersion="7.0" device="BRAVIA 4K GB" clientIdentifier="b695c6fb809951cf-com-plexapp-android" createdAt="1513317586" lastSeenAt="1519697369" provides="player,pubsub-player,controller" owned="1" publicAddress="47.188.56.37" publicAddressMatches="1" presence="0">
    <Connection protocol="http" address="192.168.1.23" port="36183" uri="http://192.168.1.23:36183" local="1"/>
  </Device>
  <Device name="Matthew's MBP.home" product="Plex SSO" productVersion="1.0.2" platform="Plexamp" platformVersion="v7.9.0" device="macOS" clientIdentifier="d9044408-6b9e-465a-a2f8-641af95732c6" createdAt="1517690260" lastSeenAt="1519687673" provides="client,player,pubsub-player" owned="1" publicAddress="47.188.56.37" publicAddressMatches="1" presence="0">
    <Connection protocol="http" address="192.168.1.6" port="20000" uri="http://192.168.1.6:20000" local="1"/>
  </Device>
  <Device name="Pixel 2" product="Plex for Android" productVersion="6.13.7.3458" platform="Android" platformVersion="8.1.0" device="Pixel 2" clientIdentifier="0b67c53ce79dd5e5-com-plexapp-android" createdAt="1518074968" lastSeenAt="1519776819" provides="player,pubsub-player,controller,sync-target" owned="1" publicAddress="47.188.56.37" publicAddressMatches="1" presence="0">
    <Connection protocol="http" address="10.212.122.24" port="42142" uri="http://10.212.122.24:42142" local="1"/>
  </Device>
  <Device name="Matthew's MBP Plexamp" product="Plexamp" productVersion="1.0.2" platform="Plexamp" platformVersion="v7.9.0" device="macOS" clientIdentifier="73878bdc-a6b5-4636-811b-374279e1e1cd" createdAt="1519437006" lastSeenAt="1519776307" provides="client,player,pubsub-player" owned="1" publicAddress="47.188.56.37" publicAddressMatches="1" presence="0">
    <Connection protocol="http" address="192.168.1.6" port="20000" uri="http://192.168.1.6:20000" local="1"/>
  </Device>
</MediaContainer>

So seems like there are two separate issues here.

  • resources.xml is getting the wrong ip, while /clients gets the right one
  • the android service that reports presence for /clients is getting killed when the app is backgrounded

@matthewdias said:
So seems like there are two separate issues here.

  • resources.xml is getting the wrong ip, while /clients gets the right one
  • the android service that reports presence for /clients is getting killed when the app is backgrounded

If you check your phone’s IP, does it not correspond to the entry in resources.xml? If not, I’m super confused.

It doesn’t, that’s the problem.

I’ve pinged the Android folk.

I’d take a guess that the resources.xml IP of 10.212.122.24 is the phones carrier grade NAT IP that it’s cell phone provider gives it over their network.

I’ve told the Android team, but the person who was looking at it is on vacation. I’ll ping once he returns :sweat_smile:

Hey @stedaniels, sorry for the delayed response. The team looked into it briefly, and then I disappeared on vacation!

Using the same device, we were unable to reproduce the issue. This makes me think that one of the following is happening:

  • As you suggested, the IP address of 10.212.122.24 is that provided by your cellular network (likely)
  • Alternatively, it could also be some other software running on your Android device that has added a virtual NIC for which that is the host address it advertises (unlikely)

A simple way for us to test would be for me to make a special build (and share it via a DM). If you’re happy to side load it, we could then test things a bit more thoroughly. My plan would be to publish all IP addresses (not just one) to Resources.xml to see if your device is aware of your other expected connection (the 192.168… one). This isn’t a full ā€œfixā€ though, as there are other scenarios where the app needs to be able to determine what LAN IP address it’s available on (e.g. flinging to Chromecast).

Let me know if you’re happy to test this build, and i’ll make the necessary changes and share with you.

Ian

@IanDBird sure, would be happy to give it a go. Feel free to DM me.

Hey @matthewdias,

After testing the code changes I planned on making, it appears that Android hides the two separate connections (cellular vs wifi) from us and really just exposes the ā€œactiveā€ connection - which in your case appears to be the 10.212… one. In the screenshot you posted earlier, it clearly showed the IP address of your wifi connection to be 192.168… However, would you mind checking what the IP address of your active connection is? This is accessible via Settings > About phone > Status?

Thanks in advance
Ian

@IanDBird my active connection shows as my local ip (192.168…) as well.

Disabling my cellular connection so that my phone can only connect over wifi makes it work. @IanDBird maybe you could use WifiManager to get the IP, and fall back to active connection when not connected to wifi?

After recent updates, these issues seem to be solved.

I’m having a similar problem, but with iOS. Plexamp will find other iterations of plexamp running on other computers, but will not find any iOS app players, when they’re connected to wifi (even with cellular data disabled). Both have the Advertise as remote player option turned on. Running current version of iOS app and Plexamp. Any ideas?