I have a similar problem. and I also gave Hangouts all 7 permissions on Android 7.0. In Hangouts, I changed the "Incoming calls" "Sound" to a ringtone I desire for junk calls (those calls from people not in my Contacts). I then went to the SMS conversation for a particular Contact, and changed the "Call ringtone" to a ringtone different from the ringtone I use for junk calls. That ringtone for the Contact played fine when I chose it, and the name of the ringtone shows written under "Call ringtone" in the Options menu for that Contact. However, whenever that Contact calls, I get the ringtone for junk calls, not the ringtone shown as the one for that Contact. Is there a way to make Hangouts actually use the ringtone set for a specific Contact? It should be noted that my contacts don't use Hangouts to call me, they just use a regular phone dial out, so maybe if they were using Hangouts it would work. It should also be noted that when I choose a Contact-specific ringtone in Contacts for my carrier phone number (rather than my Google Voice number for Hangouts), that Contact-specific ringtone works fine (it doesn't use the ringtone it would use had I not chosen a different one for that Contact.)