Some people will teach a dog to jump up on command.....and only when given the command. Sometimes this actually helps with showing the dog a contrast between jumping and not. However, what I'd probably do with your dog is put a leash on him when people come over and have him sit always for any attention at all. Tell visitors to please ignore him when they first come. Only after a few minutes and when he is sitting nicely, do they pat him. Give him plenty of praise and a treat when he complies. When he is about to jump, just as he's getting ready, tell him, "sit." He can't do both. Praise and treat. If he jumps on you at home and you didn't see it coming, turn away and ignore him...not one speck of attention, good or bad. The second he is back on all fours or sitting (whichever you want to teach him) he gets a special treat and attention. If he jumps up again, turn away....nothing. (around guests, I'd keep a leash on him so you can enforce your "off.")
Start having him sit for most everything that he likes; food, toys, treats, going out the door, attention, going for a ride in the car, a walk....He has to earn it. This helps make you the leader, the one who controls his resources. Lots of obedience practice (frequent, but short sessions) helps that too, as well as the skills themselves. You can even do little things during the day which aren't during a specific session. Like when you're watching TV, during a commercial, have him do a long down. Give him a treat but make him stay a little longer. That shows him that he's doing it right. Gradually increase the time he must stay. Don't ask for a long stay if he can't do a short one first. Same with anything....set him up to succeed with small steps before asking for the whole thing.
You can work on his recall one of two ways or both. You can use a long line....30 ft or whatever you want. (a lightweight rope from a hardware store is fine) Let him trot around the yard and entice him to come. Don't use the word, "come" yet. Make goof noises and make it a game. When he comes, praise him like mad and give him a very special treat, not a dried up, yucky dog biscuit. Use tiny bits of hot dog or cheese. When he's coming readily, start adding the word come as he's coming. Later you can say, "come" before he comes. Just be sure to NEVER EVER give a command you can't enforce. The long line will enable you to enforce it. Always make coming to you the best thing ever....a party. Don't call him to come and do something rotten, like bring him inside when he loves it outside, at least not right away. Or if he comes and you put a leash on him, release him again a few times before ending all the fun. When you go inside, play some more so he won't hate coming back inside. Treats, fun, games, praise.
With anything, start out with no distractions and work your way up over time. Obeying in a distraction free zone is a whole different ball game than in a high distraction area....the skills might as well be something totally foreign to the dog. So don't rush into high distraction areas. When you're in places like that, forget it for now. Set the dog up so that when you give commands, he's likely to be able to comply, so he can be successful and rewarded. This makes him want to learn and be more responsive.
The other way if you don't want to use a long line is to just go in a fenced area and entice him to come, run the other way, make woooo hooooo noises and DON'T say, "Come." LOL. Wait till he's 2 ft away from you and obviously coming. Then say, "come." And "goooooood come." Treat. Did I mention this before? Don't say, "come" if you can't be 100% sure that he is coming. You'll lose the usefulness of that command and he will learn that he doesn't have to come if he doesn't want to. Be absolutely consistant and practice, practice, practice until his brain forms a rigid pathway for this behavior and it becomes habit. I practice on off leash walks with my dogs. My Doberman has a very, very reliable recall because I never gave him the freedom when he was a pup and never called him if I couldn't make him. The way his brain works, he almost doesn't think he has a choice anymore. It's automatic. He has chased deer and other animals and in mid chase, stopped, turned and come to me.
Anyhow, for behavior you like, when he's not jumping up on people or your couch, let him know how wonderful he is. Praise/treats. For any behavior you want, make sure there's a payoff for him. For behavior you don't want, be sure he's not getting a payoff, be it inadvertant on your part or self rewarding. Some behaviors in themselves are rewarding. Take that opportunity away. Besides removing a payoff for an undesireable behavior, give an alternative behavior which is incompatible with the unwanted behavior. Ie: jumping up....sit. He can't jump if he's sitting. Give an alternative which the dog can be rewarded for. So you're making the unwanted behavior of no value to the dog while right away giving a behavior which give a highly valued reward. The dog will figure out which behavior to choose soon enough. You always have to be thinking whenever you interact with your dog. It's a habit to get into. Every interaction with your dog is an opportunity to improve his manners and teach him something. If done with motivation and reward methods, it's also a great bonding experience, which is the best tool in training.
Hope that helps a little.