- Home

- Test

- Lookup

- Asterisk

- Quellen

- About

Zur Integration des Services in Asterisk wird ein Perlscript bereitgestellt, welches die ENUM-Abfrage durchführt und die entsprechenden Verbindungswege an den Dialplan zurück liefert.

Der Aufruf des Skripts erfolgt ebenfalls aus dem Dialplan heraus:

 

[dialout]

 

; CNUM processing - assuming Zap/g1 is external line

;

exten => _.,1,Noop;

exten => _.,2,AGI(CnumLookup.agi,${EXTEN})

exten => _.,3,Noop

 

exten => _.,4,Dial(${ENUM},60); Dial IP route

exten => _.,5,Goto(2)

 

exten => _.,53,Dial(Zap/g1/${ENUM},60); PSTN line success

exten => _.,54,Goto(2)

 

exten => _.,103,Dial(Zap/g1/${EXTEN},60); Lookup failure, or END - dial normal

exten => _.,104,Hangup

 

exten => _.,105,Goto(2); Retry lookup

exten => _.,154,Goto(2)

 

exten => _.,204,Congestion

 

Der AGI-Aufruf erfolgt in Schritt 2. Folgende Fälle sind möglich:

  • Fehler: Schrittweite 101
  • IP Weg mit "Technologie": Schrittweite 1
  • normales Netz als Rufnummer: Schrittweite 51

Im Fehlerfall wird das Skript erneut angesprungen, da es bei jedem erneuten Aufruf den jeweils nächst-priorisierten Weg zurück liefert.

Das Skript CnumLookup.agi setzt die Installation von Perl, Asterisk::AGI und Net::DNS voraus. Es wird in das Asterisk-AGI-Verzeichnis "/var/lib/asterisk/agi-bin/" kopiert und mit "chmod 755 CnumLookup.agi" ausführbar gemacht.

Um cnum.info den eigenen Standort mitzuteilen wird am Scriptanfang die eigene Vorwahl eingetragen:

## EDIT HERE ###

my $AREA = '351';

my $COUNTRY = '49';

my $INTER = '00';

my $LOCAL = '0';

my $USER = $LOCAL . $AREA; # must be replaced with username once registered

## --------- ###

Ersetzten Sie den Wert von $AREA mit Ihrer lokalen Vorwahl ohne führende "0"! $USER wird später den registrieren Usernamen enthalten der Personalisierung ermöglicht. Im unregistrierten Zustand werden nur Call-By-Call Raten und ENUM Einträge verschiedener Quellen zurück geliefert, jedoch z.B. keine Flatrates, XXL-Tarife und VoIP-Raten berücksichtigt.

Wünschen Sie nur reinen ENUM lookup, so setzten Sie bitte $USER = 'xxx' !