I find doing this difficult. If on some evenings I have just arrived home and the phone rings, I usually say "I have just arrived home and I need to get some dinner on the move for both of us - but yeah, is everything OK, are you having a crisis" ? If the answer is "no, no problem" I expect that the caller take the hint, or put themselves in my position. I expect the caller to say "oh didn't realise you had been out - get on with the dinner and I'll ring another time". But, that never seems to happen to me, I can end up eating dinner at 9.30 - 10 pm.
Do people not have any antennae ?
If I ring someone been the hours of say 5.30 pm and 8.30 pm, I give them the opportunity of getting rid of me. I say "I'm only ringing for a chat, there's no problems this end, so if you have not yet had your meal or if you have someone over, just tell me and I'll ring another time. I think that is the best I can do to plant the seed in their head.
It depends upon what time it is. I might say I have to get dinner. I could say that one of the kids have just called over and I would like to talk to them. I could say that I'm tired and want to go to bed. I could say that I need to go to the toilet, and after a really long conversation, is likely to be true.
I tell the truth. Firstly I take over the conversation and without a break, I finish my sentence and move right into "I'll have to get going now but we can catch up again another time, bye". I say it naturally, wait for them to say bye and hang up. It helps to work in a call centre and have learned call control.