I'm from the USA, working in southern California. I've never interviewed or worked outside the U.S., so take my thoughts for what they're worth.
On the very first phone call, I clarify the responsibilities of the job (Will I have to be on call? Will I be expected to travel?), and then make sure they're offering a salary that works for me. If not, I politely end the call. I say something like, "Thanks very much for your time, but I think we're too far apart on salary."
Like Jorin pointed out, the salary you discuss during the first phone call will be the maximum they will offer you. So pick a number you'd happily agree to, and insist that they offer something concrete in return for a lower salary. (More vacation time, bigger bonus, etc.)
Don't worry too much about offending the interviewer. If you're negotiating in good faith, that is more important than having perfect etiquette.
And here's something I wish I'd done early in my career: take a few interviews for jobs you honestly don't care if you get. (Don't waste anyone's time. But go through the interview process knowing you can walk away without a second thought.) It will sharpen your interview skills and make you more comfortable with the process.
Best of luck!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.