I see what you mean. I handle that sort of thing in a different way, but for you this should help you out.
Put in /var/lib/asterisk/agi-bin/fixdestination.php , change ownership to asterisk if necessary.
Code:
#!/usr/bin/php -q
<?php
include("/usr/local/src/billing/common/lib/phpagi/phpagi.php"); //change this
$agi = new AGI();
//remove spaces and dashes from asterisk "EXTEN"
$agi->request[agi_extension] = str_replace(' ', '', $agi->request[agi_extension]);
$agi->request[agi_extension] = str_replace('-', '', $agi->request[agi_extension]);
//remove spaces and dashes from dialed num
$agi->request[agi_dnid] = str_replace(' ', '', $agi->request[agi_dnid]);
$agi->request[agi_dnid] = str_replace('-', '', $agi->request[agi_dnid]);
$agi->set_variable('FIXEDEXTEN',$agi->request[agi_extension]);
$agi->set_variable('FIXEDDNID',$agi->request[agi_dnid]);
?>
Then somewhere in your dialplan for example;
Code:
exten => _X.,1,AGI(fixdestination.php)
exten => _X.,n,Set(CALLERID(dnid)=${FIXEDDNID})
exten => _X.,n,GoTo(a2billing-bill-outbound,${FIXEDEXTEN},1)
if the characters you want to remove are not actually spaces then this will not work and additional coding is required.