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.