Asterisk werkend krijgen met telefoonnummers die met een plusje beginnen

Het is niet bepaald een ideale titel voor een blogpost, maar ik had deze week het probleem dat Asterisk de nummers opgeslagen in mijn Google contactenlijst niet herkende. Het betreft nummers zoals +31612345678, gezien nummers regelmatig op deze manier op de mobiele telefoon binnenkwamen en dus op die manier zijn opgeslagen via Google Contacts.

Ik maak zelf gebruiken van Elastix, Asterisk en Jitsi (VOIP client op Windows), maar hetzelfde probleem speelt ook indien je op een client op de smartphone nummers draait die beginnen met +31, +nummer.

Het probleem is dat Asterisk nummers op deze manier standaard niet herkend worden. Standaard zou dit nummer alleen geaccepteerd worden via 0612345678 en 0031612345678, ondanks mogelijke aanpassingen in het dialplan, omdat het plusteken daar een speciale betekenis heeft. Dus hoe kun je je ontdoen van het +-teken en deze vervangen door iets met meer betekenis zoals 0031? Hier is een manier.

Stap 1: Voeg een context toe aan /etc/asterisk/extensions_custom.conf

[custom-strip-plus] 
exten => _+X!,1,Noop(Stripping + from start of number) 
exten => _+X!,n,Goto(from-internal,00${EXTEN:1},1)
exten => _[*0-9]!,1,Goto(from-internal,${EXTEN},1) 
exten => h,1,Hangup()

De lijn met de noop is gewoon commentaar, dus je kunt de tekst naar eigen wens veranderen. Het is er slechts om beter mee te krijgen wat er gebeurt in de console.

De volgende regel is waarbij de + wordt vervangen door 00, waardoor de SIP providers vervolgens het nummer 0031612345678 ipv +31612345678 doorkrijgen en de gesprekken goed verlopen.

Stap 2: Ga naar FreePBX

Ga de FreePBX pagina van alle betrokken extensies en verander de context van from-internal naar custom-strip-plus. Ik weet dat het pijnlijk is om de context handmatig te wijzigen indien je meerdere extensies hebt, maar tot dat een andere oplossing is bedacht, is dit de enige manier die ik ken om het werkend te krijgen

Geef een reactie