--- src/at_interpreter.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) Index: spandsp-3.0.0.g15/src/at_interpreter.c =================================================================== --- spandsp-3.0.0.g15.orig/src/at_interpreter.c +++ spandsp-3.0.0.g15/src/at_interpreter.c @@ -921,6 +921,7 @@ static const char *at_cmd_A(at_state_t * static const char *at_cmd_D(at_state_t *s, const char *t) { + int first = true; char *u; char num[100 + 1]; char ch; @@ -940,6 +941,7 @@ static const char *at_cmd_D(at_state_t * { /* V.250 6.3.1.1 Basic digit set */ *u++ = ch; + first = false; } else { @@ -953,7 +955,10 @@ static const char *at_cmd_D(at_state_t * case '#': /* V.250 6.3.1.1 Full DTMF repertoire */ if (!s->p.pulse_dial) + { *u++ = ch; + first = false; + } break; case ' ': case '-': @@ -963,7 +968,10 @@ static const char *at_cmd_D(at_state_t * break; case '+': /* V.250 6.3.1.1 International access code */ - /* TODO: */ + /* Allow + as first symbol in a dial string. */ + if (first) + *u++ = ch; + first = false; break; case ',': /* V.250 6.3.1.2 Pause */