Callback triggered by a sip trunk?

Hey, all:

I am a newbie for FreePBX(2.7.0.2) and Asterisk1.6.2.6. What I want to achieve is to activate a callback by ringing to a sip trunk.

What involves are trunk, custom extensions, inbound routes, and callback.

  1. Sip trunk
    The sip trunk is gizmo5, whose outgoing settings are set up with http://www.freepbx.org/126.

The incoming settings named 1747xxxxxx1 are following:
username=1747xxxxxx1
type=user
secret=
nat=yes
insecure=very
host=proxy01.sipphone.com
context=from-gizmo5-trunk

  1. Custom extensions
    The context from-gizmo5-trunk is (the Destination set to DISA in this case)
    [from-gizmo5-trunk]
    exten => s,1,NoOp(Hangup then callback to phone)
    exten => s,2,Wait(4)
    exten => s,3,Hangup()
    exten => h,1,NoOp(test)
    exten => h,2,Set(CALL=0347xxxxxx2)
    exten => h,3,Set(DESTINATION=disa.1.1)
    exten => h,4,Set(SLEEP=2)
    exten => h,5,System(/var/lib/asterisk/bin/callback ${CALL} ${DESTINATION} ${SLEEP} &)
    exten => h,6,Hangup()

  2. Inbound routes
    An inbound route named Gizmo5In uses DID number 1747xxxxxx1 and any CID, with destination of callback named Gizmo5CB.

  3. Callback
    The callback Gizmo5CB sets Callback Number 0347xxxxxx2(agrees with context from-gizmo5-trunk) and delay of 2 seconds. Destination after Callback is DISA.

The Callback module is set up with alternative solution according to http://forums.freepbx.org/support/documentation/module-documentation/callback.

After all above are set, I call the gizmo5 number from outside. I can hear a ring tone and then busy tone. However, the callback is not triggered.

Could anyone give me a hint? Thanks in advance!

do you have a standard, working inbound route that you can set up the callback on ? start out with what actually works then work your way to what you want to happen, this way you can eliminate unecessary fault finding steps.