Auswertung Ziel = VOIP in extensions.conf ?

kombjuder

IPPF-Promi
Mitglied seit
2 Nov 2004
Beiträge
3,086
Punkte für Reaktionen
0
Punkte
0
Hallo allerseits,

nachdem die voip-Zugänge langsam zunehmen, suche ich nach einer Lösung meine 10 oder 20 VOIP-Nummern, die ich anrufe, in einer "Datenbank" zu erfassen und dann über den entsprechenden VOIP-Provider zu wählen.

LDAP/mysql wäre wohl mit Kanonen auf Spatzen geschossen.

Gibt es auch eine einfachere Lösung?

Alles in der extensions.conf hinterlegen und auswerten will ich aber auch nicht, da das sehr schnell unübersichtlich wird.

Wer kann helfen, bzw wo gibt es eine entsprechende Anleitung?
 
Die Asterisk-interne Datenbank dürfte dazu völlig ausreichen. Kannst Du mal ein bißchen genauer beschreiben, was Du machen möchtest ?
 
betateilchen schrieb:
Die Asterisk-interne Datenbank dürfte dazu völlig ausreichen. Kannst Du mal ein bißchen genauer beschreiben, was Du machen möchtest ?

Eine Auswahlentscheidung über den zu benutzenden Provider treffen, also


wenn 01234/5678 => VOIP, dann Anruf wie in der Datenbank hinterlegt (z.B. [email protected])

wenn 01234/5678 nicht VOIP, dann vorwahlabhängige Providerwahl gemäß Regeln in der extensions.conf

Der Hintergrund: Ortsnetzrufnummern sind ja nicht als voip erkennbar und oftmals nicht im ENUM
 
Ich verstehe den Schrägstrich nicht ganz, aber ich gehe mal davon aus, daß Du damit Vorwahl und Rufnummer meinst. Dann würde das also so aussehen, daß Du für jede dieser Rufnummern einen Eintrag in die Asterisk-interne Datenbank schreibst.

Syntax: database put <family> <key> <value>

"Family" ist dabei beliebig, muß aber bei allen Einträgen gleich sein. Nehmen wir mal als Beispiel pwahl

"Key" ist die Rufnummer die Du eintragen möchtest also z.B. 491627654321

value ist das, was Du als "Ergebnis" zurückhaben möchtest wenn Du die Datenbank abfragst. also z.B. [email protected]

Du würdest also den Befehl so absetzen:

Code:
uneu*CLI> database put pwahl 01627654321 [email][email protected][/email]
Updated database successfully

Das Ergebnis kannst Du Dir anschauen mit:

Code:
uneu*CLI> database show
/pwahl/01627654321                                : [email][email protected][/email]

Auf diese Weise machst Du auf der CLI die Einträge für die 10-20 Nummern, um die es geht.
[hr:950935ee0a]
Kommen wir nun zum zweiten Teil. Die Verwendung der DB im Dialplan.
Das könnte in etwa so aussehen:

Code:
exten => _X.,1,NoOp(Wir checken die Datenbank vor dem wählen)
exten => _X.,2,DBGet(voipdial=pwahl/${EXTEN})
; sucht in der DB nach der EXTEN und übergibt den "value" an die Variable "voipdial"
; wenn kein Eintrag gefunden wird, geht es mit n+101 = 103 weiter !
; wenn was gefunden wurde, geht es "normal" weiter

exten => _X.,3,Dial(SIP/${VOIPDIAL},60,Ttr)
; Der Eintrag in der Variable "voipdial" wird gewählt.
exten => _X.,4,HangUp

exten => _X.,103,Dial(Hier mußt Du jetzt die Abarbeitung von Anrufen machen die nicht in der Datenbank stehen)
exten => _X.,104,HangUp
[hr:950935ee0a]

So - ich hoffe, das Prinzip ist einigermaßen klar geworden. Ansonsten einfach nochmal fragen. Viel Erfolg bei der Umsetzung.
 
betateilchen schrieb:
So - ich hoffe, das Prinzip ist einigermaßen klar geworden. Ansonsten einfach nochmal fragen. Viel Erfolg bei der Umsetzung.

Ja besten Dank für die schnelle Hilfe.
Eine bescheidene Anfrage an Google zu diesem Thema hat nur was von sql erzählt, diese Datenbank ist mir völlig neu. Da muss ich wohl ein wenig rtfm ...
 
Man muß dazu sagen, daß die Asterisk-interne Datenbank sehr schlecht (um nicht zu sagen gar nicht) dokumentiert ist.

Aber die Funktionsweise ist doch recht simpel - es gibt nur 4 Befehle. Aber immerhin gibt es schon eine Befehle für den Dialplan, die auf diese Datenbank aufsetzen.

http://voip-info.org/tiki-index.php?page=Asterisk+Database

Von diesem Link geht es auch zur Erklärung der 4 Befehle selbst.
Ist ne nette Sache, gibt auch hier im Forum schon ein paar Ideen von mir, was man damit anstellen kann
z.B. Status einer Nebenstelle setzen (abwesend, nicht stören ..)
http://www.ip-phone-forum.de/forum/viewtopic.php?t=15409&highlight=datenbank+status+setzen

oder die Integration in TinTins Wählplan zu CallingCards)
http://www.ip-phone-forum.de/forum/viewtopic.php?t=18654&highlight=

oder regionale Notrufnummern hinterlegen, um sie über z.B. über 110. anrufen zu können
http://www.ip-phone-forum.de/forum/viewtopic.php?t=18095&highlight=leitstelle+datenbank

Man kann mit der Datenbank schon einiges machen, vor allem ist das Datenhandling (einfügen, löschen) sehr einfach, weil dafür asteisk-interne Befehle zur Verfügung stehen.
 
Ich habe jetzt eine funktionierende Lösung erarbeitet:

[raus]

exten => _X.,1,NoOp(Wir checken die Datenbank vor dem waehlen)
exten => _X.,2,DBGet(voipdial=voip/${EXTEN})
exten => _X.,3,GotoIf($["${voipdial:0:3}" = "SIP"]?4:7)
exten => _X.,4,Dial(${voipdial:0:3}/${voipdial:3},60,Ttr)
exten => _X.,5,Dial(Capi/797633:${EXTEN},60,Ttr)
exten => _X.,6,Hangup
exten => _X.,7,Dial(IAX2/503400:503400/${voipdial:3},60,Ttr)
exten => _X.,8,HangUp
exten => _X.,103,Goto(Provider,${EXTEN},1)
exten => _X.,104,HangUp

Wer es kommentiert oder in der aktuellen Version haben will, die gibt es bei

www.asterisk.li/nenum.htm
 

Statistik des Forums

Themen
244,695
Beiträge
2,216,692
Mitglieder
371,315
Neuestes Mitglied
jack-mack
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.