aboutsummaryrefslogtreecommitdiffstats
path: root/src/mgcp_ss7.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mgcp_ss7.c')
-rw-r--r--src/mgcp_ss7.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mgcp_ss7.c b/src/mgcp_ss7.c
index 3490a9a..017bb8e 100644
--- a/src/mgcp_ss7.c
+++ b/src/mgcp_ss7.c
@@ -97,7 +97,7 @@ static void send_dtmf(struct mgcp_endpoint *mgw_endp, int ascii_tone)
{
int rc;
rc = dtmf_state_add(&mgw_endp->dtmf_state, ascii_tone);
- if (rc != 0) {
+ if (rc == -1) {
fprintf(stderr, "DTMF queue too long on 0x%x with %u tones\n",
ENDPOINT_NUMBER(mgw_endp),
dtmf_tones_queued(&mgw_endp->dtmf_state));
@@ -106,6 +106,20 @@ static void send_dtmf(struct mgcp_endpoint *mgw_endp, int ascii_tone)
dtmf_tones_queued(&mgw_endp->dtmf_state));
return;
}
+ if (rc == -2) {
+ fprintf(stderr, "DTMF illegal tone %d on 0x%x\n",
+ ascii_tone, ENDPOINT_NUMBER(mgw_endp));
+ syslog(LOG_ERR, "DTMF illegal tone %d on 0x%x\n",
+ ascii_tone, ENDPOINT_NUMBER(mgw_endp));
+ return;
+ }
+ if (rc < 0) {
+ fprintf(stderr, "DTMF unknown error %d on 0x%x\n",
+ rc, ENDPOINT_NUMBER(mgw_endp));
+ syslog(LOG_ERR, "DTMF unknown error %d on 0x%x\n",
+ rc, ENDPOINT_NUMBER(mgw_endp));
+ return;
+ }
if (!mgw_endp->dtmf_state.playing)
play_pending_tones(mgw_endp);