Bridging asterisk conference with pstn conference


I am trying to bridge asterisk voip users with pstn conference.
I set exten 500 for the conference and:


exten => 555,1,MeetMeCount(500|count)
exten => 555,2,Gotoif,$[${count} = 0]?6
exten => 555,3,Meetme,500|cxApMs
exten => 555,4,Playback,goodbye
exten => 555,5,Hangup
exten => 555,6,Goto(from-internal-custom,556,1)
exten => 555,7,hangup

exten => 556,1,System(/bin/cp /etc/asterisk/1-test /var/spool/asterisk/outgoing/)
exten => 556,2,goto(from-internal-custom,555,3)

exten => 557,1,Directory(default)

exten => 558,1,System(/usr/sbin/asterisk -rx “meetme kick 500 all”)

exten => 560,1,Meetme,500|xApMsc|1234
exten => 560,2,Hangup

exten => 3000,1,Goto(ivr-4,s,1)

Basically user dials in 555.
If this is first user the asterisk executes
exten => 556,1,System(/bin/cp /etc/asterisk/1-test /var/spool/asterisk/outgoing/)

This file looks like this:

Channel: ZAP/4/number
Callerid: 1
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: from-internal-custom
Extension: 560
Priority: 1

New user that dials in gets to the conference diffecty where both
voip and pstn channels are bridged.

The problems with this setup:
1.when all users disconect, the pstn channel is still up,
2.users cannot send dtmf codes to the pstn channel

Any ideas how this could be improved?