--- mgetty-1.1.30.orig/ring.c Thu Dec 5 21:29:10 2002 +++ mgetty-1.1.30/ring.c Mon Sep 29 20:30:23 2003 @@ -219,6 +219,8 @@ char buf[BUFSIZE], ch, *p; int i, w, r; int rc = SUCCESS; +boolean got_name = FALSE; +boolean got_nmbr = FALSE; boolean got_dle; /* for events (voice mode) */ lprintf( L_MESG, "wfr: waiting for ``RING''" ); @@ -321,7 +324,14 @@ * instead of waiting for the next "real" RING * (but don't do this for V253 DRON/DROF modems!) */ - if ( strncmp( buf, "NMBR", 4 ) == 0 && drox_count == 0 ) { break; } + if ( strncmp( buf, "NMBR", 4 ) == 0 && drox_count == 0 ) { got_nmbr = TRUE; } + if ( strncmp( buf, "NAME", 4 ) == 0 ) { got_name = TRUE; } + + if ( got_nmbr && got_name ) break; /* got both name & number */ + + /* special case -> break; do not expect caller name */ + if ( got_nmbr && CallerId[0] == 'P' ) break; /* private */ + if ( got_nmbr && CallerId[0] == 'O' ) break; /* out of area */ /* V.253 ring cadences */ if ( strncmp( buf, "DRON", 4 ) == 0 ||