I'll give your questions a shot (disclaimer, I am by no means a jtapi expert
)
1) Hard to say, certainly no indications from the code, but if I were to take a guess, it looks like it picks up immediately (maybe if you dig deeper, there is a props file or attribute you can set somewhere to determine how many rinsgs before a pick up)
2) I would assume some sort of autodetection, kind of like the java.net.* classes, they seem to autodetect your NIC.
3) Looks like the entity Terminal can fire a whole bunch of telephony related events.
The class MachineCallObserver is doing something sensible with these events, and in the for loop, it's just determining which type of event to act on, be it: "answer phone", "start playing recorded greeting", "record message" etc.