freePBX 2.5.1.5
callback 2.5.0.3
asterisknow 1.5 (final)
Asterisk 1.4.25.1 (yum updates to current from distro as of this writing)
We too have been having a heck of a whack of issues with CALLBACK, including the missing-in-action of the busy (or congestion) signal thereby necessitating a manual hangup.
We have RESOLVED both the missing-in-action busy/congestion signal and the resulting need for manual hangup.
extensions_override_freepbx.conf
;
[callback]
include => callback-custom
exten => 2,1,Set(CALL=4165555555)
exten => 2,n,Set(DESTINATION=app-announcement-8.s.1) ; Note (1)
exten => 2,n,Set(SLEEP=12)
; -
exten => 2,n,Congestion(6)
exten => 2,n(BYEBYE),Hangup(0)
exten => h,1,NoOp(HANGUPCAUSE is ${HANGUPCAUSE}, call=${CALL}, dest=${DESTINATION})
exten => h,n,System(/var/lib/asterisk/bin/callback ${CALL} ${DESTINATION} ${SLEEP} &)
; -
Firstly, note (2), the use of the Congestion() command sends the correct fast-busy (congestion) signal to the user calling into the CallBack(), and then the callers’ [cell] carrier hangs up shortly thereafter if the caller does not. The congestion signal results in a zero second duration call (NO ANSWER status). The Hangup() is seemingly necessary to really, really hangup the SIP trunk. Seemingly, we cannot rely on the Congestion()'s wait-for-hangup behavior alone.
I think the above should solve your issue too. The use of Congestion(), to my limited knowledge, should be provider agnostic (i.e. works when needed as needed, or benign otherwise).
Secondly, note (1), in our case, the destination is an ANNOUNCEMENT, which plays 1 second of ulaw-specific silence, and then progresses to the Disa() function. Without this 1 second of ulaw-silence, when the Disa “answers” the callback, our users were hearing NOTHING. The playing of the ulaw-silence gets the CODEC’s mojo going correctly.
You may or may not need this. If not, then, in your case, your DESTINATION is the DISA() directly.
To get this to work, I had to use the extension_OVERRIDE_freepbx.conf. Perhaps there’s a better placement of the dial plan fragment and someone may let us both know.
Cheers,
/S