I have a freepbx voip system which is connected to a goip-4 gsm gateway. The relevant freepbx configuration is:
host=dynamic
port=5060
context=from-trunk
insecure=port,invite
qualify=yes
secret=xxxxxx
type=peer
nat=no
canreinvite=no
defaultuser=goip-1
dtmfmode=rfc2833
99% of the time incoming calls which are routed to an IVR work correctly, however from time to time when the incoming calls are prompted to press 1 from the ivr this seems to be missed by the goip since looking at the asterisk log for one such call I can see:
/var/log/asterisk/full:[2018-11-16 10:49:35] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:10] Set("SIP/goip-1-000002ee", "TIMEOUT(digit)=3") in new stack
/var/log/asterisk/full:[2018-11-16 10:49:35] VERBOSE[11051][C-00000181] func_timeout.c: Digit timeout set to 3.000
/var/log/asterisk/full:[2018-11-16 10:49:35] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:11] ExecIf("SIP/goip-1-000002ee", "1?Background(custom/ivr-hello)") in new stack
/var/log/asterisk/full:[2018-11-16 10:49:35] VERBOSE[11051][C-00000181] file.c: <SIP/goip-1-000002ee> Playing 'custom/ivr-hello.slin' (language 'en')
/var/log/asterisk/full:[2018-11-16 10:49:41] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:12] WaitExten("SIP/goip-1-000002ee", "30,") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx_builtins.c: Timeout on SIP/goip-1-000002ee, going to 't'
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:1] Set("SIP/goip-1-000002ee", "TIMEOUT_LOOPCOUNT=1") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:2] GotoIf("SIP/goip-1-000002ee", "0?final") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:3] Set("SIP/goip-1-000002ee", "IVR_MSG=custom/ivr-hello") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:4] Goto("SIP/goip-1-000002ee", "s,start") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx_builtins.c: Goto (ivr-1,s,10)
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:10] Set("SIP/goip-1-000002ee", "TIMEOUT(digit)=3") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] func_timeout.c: Digit timeout set to 3.000
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:11] ExecIf("SIP/goip-1-000002ee", "1?Background(custom/ivr-hello)") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:11] VERBOSE[11051][C-00000181] file.c: <SIP/goip-1-000002ee> Playing 'custom/ivr-hello.slin' (language 'en')
/var/log/asterisk/full:[2018-11-16 10:50:16] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:12] WaitExten("SIP/goip-1-000002ee", "30,") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx_builtins.c: Timeout on SIP/goip-1-000002ee, going to 't'
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:1] Set("SIP/goip-1-000002ee", "TIMEOUT_LOOPCOUNT=2") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:2] GotoIf("SIP/goip-1-000002ee", "0?final") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:3] Set("SIP/goip-1-000002ee", "IVR_MSG=custom/ivr-hello") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:4] Goto("SIP/goip-1-000002ee", "s,start") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx_builtins.c: Goto (ivr-1,s,10)
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:10] Set("SIP/goip-1-000002ee", "TIMEOUT(digit)=3") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] func_timeout.c: Digit timeout set to 3.000
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:11] ExecIf("SIP/goip-1-000002ee", "1?Background(custom/ivr-hello)") in new stack
/var/log/asterisk/full:[2018-11-16 10:50:46] VERBOSE[11051][C-00000181] file.c: <SIP/goip-1-000002ee> Playing 'custom/ivr-hello.slin' (language 'en')
/var/log/asterisk/full:[2018-11-16 10:50:52] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:12] WaitExten("SIP/goip-1-000002ee", "30,") in new stack
/var/log/asterisk/full:[2018-11-16 10:51:22] VERBOSE[11051][C-00000181] pbx_builtins.c: Timeout on SIP/goip-1-000002ee, going to 't'
/var/log/asterisk/full:[2018-11-16 10:51:22] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:1] Set("SIP/goip-1-000002ee", "TIMEOUT_LOOPCOUNT=3") in new stack
/var/log/asterisk/full:[2018-11-16 10:51:22] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:2] GotoIf("SIP/goip-1-000002ee", "1?final") in new stack
/var/log/asterisk/full:[2018-11-16 10:51:22] VERBOSE[11051][C-00000181] pbx_builtins.c: Goto (ivr-1,t,5)
/var/log/asterisk/full:[2018-11-16 10:51:22] VERBOSE[11051][C-00000181] pbx.c: Executing [[email protected]:5] Goto("SIP/goip-1-000002ee", "app-blackhole,hangup,1") in new stack
/var/log/asterisk/full:[2018-11-16 10:51:22] VERBOSE[11051][C-00000181] pbx_builtins.c: Goto (app-blackhole,hangup,1)
The GOIP’s dtmf signalling is set to “outband” and the “outband type” to rfc2833 as per the attached picture:
So what can I do to further debug the issue, it seems that GOIP might have missed the DTMF hence is not really sending the required packet to asterisk and that’s why the ivr timesout. Since this issue occurs randomly I dunno if it is something to do with the goip, with the GSM that has actually dialed one of the goip’s numbers or asterisk is to blame.