As the others say, 'didn't' is the correct answer. Let's look a little more closely at the grammar.
Often in English we use the auxilary verb to stand in for the complete phrase. Think of some basic examples that you learnt when you began to study English. For example:
"Do you like oranges?" "No, I don't."
In this example you understand automatically that 'I don't' is a shortened version of 'I don't like oranges'. Because we have the context, we don't have to repeat the full verb phrase.
The example you have given is exactly the same, just at a higher level. Grammatically, it would be completely correct to say 'Jack was supposed to call me last night. I wonder why he didn't call me.' However, this is an unnecessarily long way to express it, and so we drop off the final verb phrase and only keep the auxilary verb, 'didn't'.