FreePBX supporte le traitement des numéros sortants au niveau des trunks (ajout et suppression de préfixes). Malheureusement, le caractère “+” est réservé à l'ajout de préfixe, et il n'existe pas de caractère d'échappement, il est donc impossible de traiter un + littéral.
Voilà donc un petit hack pour remplacer le + par 00 (utile pour les callback: on appel depuis un portable qui présente son numéro comme étant +336XXXXXXXX, le serveur rappel ce numéro qui doit être convertie en 00336XXXXXXXX car la plupart des trunks ne supportent pas la notation sous la forme +336XXXXXXXX).
Ajouter dans le fichier /etc/asterisk/extension_custom.conf:
[outbound-allroutes-custom] exten => _+X!,1,Noop(Stripping + from start of number) exten => _+X!,n,Goto(outbound-allroutes,00${EXTEN:1},1)
À l'entrée du context outbound-allroutes, le + sera remplacé par 00, et renvoyé à outbound-allroutes.
Il faut bien sûre que les routes supportent la syntaxe 0033 etc… pour que cela fonctionne.