How do you tell the modem that an out-bound call should be in data mode, instead of voice? Does it just autodetect if it hears a modem start the negotiation sequence on the other end?

To establish an outbound voice call use the dialing string ATD<number>;

To estbablish an outbound data call use the dialing string 'ATD<number>

Note: For a voice call there is a semicolon after the number.