2 things you need to do to acheive what you are looking at.
Firstly you need you need to restrict what you are receiving from your peers to just the local. You can do this in oscam.server entry for each peer
the above will restrict what you are receiving from your peer as just his local.
secondly, you need to create an entry in oscam.services for each set of channels you want to receive from each of your peers. There is only one oscam.services file and the trick is to add a separate entry with a different title for each set of channels you wish to receive. You then define this in the reader entry in oscam.server for each peer.
for example - i create different entries in oscam.services
[boxnation]
caid = 0963
provid = 000000
srvid = C5CB
[ftv]
caid = 0963
provid = 000000
srvid = 13EF,13F3,CB25,D435,0F12,C5C1,2F03,2F08,128F
Display More
above is 2 entries - first is for boxnation and second is for free to air channels - inside the [] is the title i have given for each channel set
if for peer 1 - i only want to accept boxnation on his local card and nothing else, i add the following to his reader entry
ccmaxhops = 0
services = boxnation
for peer 2 I only want to accept free to air channels on his local and his hop 1 - i add
ccmaxhops = 1
services = ftv
of course you need to find the caid of the channels you need to put in each definition in your oscam.services, but as I understand - the above is the basis of the easiest way to do what you want to acheive.
use the ! flag if you want to accept everything apart from the defined services, and don't use the ! flag if you only want to accept the defined services, but never use them together.