[Frage] Eingehender Anruf: Welche Rufnummer wurde vom Anrufer gewählt?

@wusel-09: Die Fritz!Box trifft doch schon die Entscheidung, wenn ich dass richtig verstehe.
Da braucht es doch keine Nummer der Fritz!Box ( Eigene Rufnummer ).
Asterisk müsste sich anhand der ${CALLERID(num)} nur irgendwie entscheiden, eventuell per ExecIf() mit Datenbankabfrage, wies weitergeht.

Beispiel:
Code:
same => n,ExecIf($[${DB_EXISTS(${CALLERID(num)}/callgroup)}]?Dial(${DB_RESULT}):Hangup())
( Nummer nicht bekannt ? Dann: Hangup() )
Ist die Nummer bekannt, wird der in der Datenbank gespeicherte Dialstring für Dial() "gewählt".
Statt Dial() oder Hangup() geht natürlich auch GoTo() oder GoSub() und Variationen, mit entsprechenden Tree/Key/Value in der Datenbank.

Ach ja, der Hauptvorteil dieser Methode ist auch nicht zu verachten ;) .
Die extensions.conf muss nicht geändert werden um die Entscheidung zu beeinflussen.
Das geht in der *-Konsole mit: database put /[anrufernummer]/callgroup [value]
...oder: database deltree [anrufernummer]
...und dies natürlich auch mit den DB Kommandos in "special" Extensions, die sich zwecks Änderung des Datenbankinhalts anrufen lassen, zum Beispiel wie ein FlippFlopp-Schalter.
...mit DTMF, Read() und Konsorten, geht dafür auch ne Menge.
...
 
Zuletzt bearbeitet:
Okay, es geht, wenn man einen "Anzeigenamen" bei den "eigenen Rufnummern" in der FritzBox hinterlegt. Diese werden dann per SIP im To:-Header als Kommentar übergeben und ist somit in Asterisk im Dialplan auswertbar.

Code:
To: "555123" <sip:[email protected]:5060>

Damit komme ich zumindest mal weiter, die CalledID läßt sich so ermitteln und entsprechend im Dialplan nutzen.

Code:
same  => n,Set(CID=${SIP_HEADER(To)})
same  => n,Set(CID=${STRREPLACE(CUT(CID, ,1),"\"","")})

Vielleicht hilft's ja wem ;)

### Zusammenführung Doppelpost by stoney ###

@wusel-09: Die Fritz!Box trifft doch schon die Entscheidung, wenn ich dass richtig verstehe.
Da braucht es doch keine Nummer der Fritz!Box ( Eigene Rufnummer ).
Asterisk müsste sich anhand der ${CALLERID(num)} nur irgendwie entscheiden, eventuell per ExecIf() mit Datenbankabfrage, wies weitergeht.

Wie gesagt, ich möchte (bei überschaubarem Anrufaufkommen) gerne mehrere "Eigene Rufnummern" einer FB über einen SIP-Registrar jener FB an einen Asterisk leiten. Dort soll die CallerID ausgewertet werden, somit geht das nicht über Weiterleitung, sondern nur über den Asterisk als Client an der FB. Bei nur 10 Client-Slots, ~10 Rufnummern und 2-4 für andere Zwecke benötigten Client-Slots geht die Rechnung mit 1:1 nicht auf. Anhand der der CallerID kann ich nichts unterscheiden, denn die kann alles sein (von "keine" bis "mehrere" ;)). Und ja, natürlich trifft die FB schon eine Routingentscheidung, aber bei ISDN wird ja auch die angerufene Nummer übergeben (damit die entsprechende MSN reagiert). BTW, bei DECT wird (zumindest bei einem FritzFon) ebenfalls ein hinterlegter "Anzeigename" angezeigt; somit kann man auch dort dann anhand der gewählten Rufnummer z. B. sich anders melden ;)
 
Zuletzt bearbeitet von einem Moderator:
Danke, super Idee. Jetzt sehe ich in meinem Spamfilter endlich welche Rufnummer angerufen wurde und nicht nur welcher Anrufer geblockt wurde.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.