I got my implementation working and here's what I learned along the way:
- since name of service is defined in the contract, client implementation sends it and server should implement actions upon receiving. It's just the WCF paradigm.
- it was wrong to use manual method sending message to the queue, server side does not recognize it as valid input. Letting contract do its job does the trick.