Rufumleitung mit Realtime

Francesco

Neuer User
Mitglied seit
5 Mrz 2006
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
Hallo Comunity,

ich habe eine Idee die ich nicht umsetzen kann.
Folgendes szenario.

Wenn meine Fritzbox nicht erreichbar ist, weil z.B. keine Internet Verbindung oder wegen eines defekt, möchte ich dass * eine Nummer wählt die in der Realtime Datenbank unter Z.B. Rufumleitung steht.

Die Extension.conf ist nicht in der Realtime.
Diese ist Statisch.

Ich könnte diesen Eintrag in der Extension.conf machen.
Dass Problem ist, dass ich mehrere Accounts habe und die Sache unübersichtlich wird.

So habe ich es momentan in der Extension.conf:
Code:
;inbound Rufumleitung
exten => _+49xxxxxxxx(Meine Nummer),Dial(SIP/${EXTEN:1})
exten => _+49xxxxxxxx(Meine Nummer),n,Goto,ruf-${DIALSTATUS}|1
exten => _+49xxxxxxxx(Meine Nummer),n,Hangup()

exten => ruf-CHANUNAVAIL,1,SipAddHeader(Remote-Party-ID: <sip:+49xxxxxxxxxx@asterisk>\;party=calling\;privacy=off)
exten => ruf-CHANUNAVAIL,2,Dial(SIP/+4917xxxxxxxxx(Handy)@meine_IP)
exten => ruf-CHANUNAVAIL,3,Hangup

Nun möchte ich das * in der Datenbank im Feld Rufumleitung vom jeweiligen account schaut und diese Nummer wählt.
Geht das??

Vielen Dank im voraus.
Ich hoffe, ich habe die Frage nicht zu kompliziert gestellt.
 
Nun möchte ich das * in der Datenbank im Feld Rufumleitung vom jeweiligen account schaut und diese Nummer wählt.
Geht das??

was heißt in der Datenbank? Ist es eine von dir generierte DB, oder ist es ein für den * zugängliche DB???
ich würde des so machen:

Code:
;inbound Rufumleitung
exten => _+49xxxxxxxx(Meine Nummer),Dial(SIP/${EXTEN:1})
exten => _+49xxxxxxxx(Meine Nummer),n,Goto,ruf-${DIALSTATUS}|1
exten => _+49xxxxxxxx(Meine Nummer),n,Hangup()

; Abfrage, welche Rufumleitung genommen werden soll

exten => ruf-CHANUNAVAIL,1,MYSQL(Connect connid IP DATABASE PASSWORD TABLE)
exten => ruf-CHANUNAVAIL,2,MYSQL(Query resultid ${connid} SELECT\ RUFUMLEITUNG\ FROM\ TABLE\ WHERE\ ANGERUFENE NUMMER=${CALLING}\)
exten => ruf-CHANUNAVAIL,3,MYSQL(Fetch fetchid ${resultid} getting)
exten => ruf-CHANUNAVAIL,4,MYSQL(Clear ${resultid})
exten => ruf-CHANUNAVAIL,5,MYSQL(Disconnect ${connid})
exten => ruf-CHANUNAVAIL,6,NoOP(Fetch: ${fetchid} - getting: ${getting})

; in ${getting} müsste jetzt die richtige Nummer stehen - evtl nochmal formatieren

exten => ruf-CHANUNAVAIL,7,SipAddHeader(Remote-Party-ID: <sip:+49xxxxxxxxxx@asterisk>\;party=calling\;privacy=off)
exten => ruf-CHANUNAVAIL,8,Dial(SIP/+4917xxxxxxxxx(Handy)@meine_IP)
exten => ruf-CHANUNAVAIL,9,Hangup

So ähnlich hab ich des gemacht, weil ich über ein Webinterface festlegen wollte, ob die eine Nebenstelle eine andere anrufen darf - grundsätzlich sind alle Anrufe gesperrt...

in meiner DB steht nichts anderes drin als:
Code:
eigene_Nummer          anrufende_nummer
61123                         61116
61123                         61234
etc
bedeutet: mich (61123) dürfen die Nebenstellen mit der Nummer 61116 und 61234 anrufen, usw..

ob mein Code oben noch etwas erweitert werden muss, müsstest du testen - ich brauch nur die Abfrage, existiert ein Datensatz, wo eigene=61123 und anrufende=61116 - wenn nicht, abbrechen - wenn existent, dann anrufen lassen...


Gruß Blacky
 
Hallo Blacky,

Danke für dein Beispiel.
Dies werde ich in den nächsten Tagen versuchen.

Ich arbeite mit Realtime und einer MYSQL Datenbank.
Die Sip.conf ist darin.

Werde berichten ob es ging.

Gruß Franco
 
da musst du halt mit phpMyAdmin die richtige Datenbank und Tabelle raussuchen und die felder anpassen...

sollte aber auch gehen - mein beispiel läuft über eine eigene MySQL DB - weil ich noch nicht dazu gekommen bin, alles auf RT umzustellen - bzw. noch keine deutschen HowTos gefunden habe... (und mein Server demnächst abgeschossen wird, und ich eh alles neu machen muss..)
 
Leider funktioniert die Variable ${CALLING} nicht.

"Function CALLING not registered" das ist die Fehlermeldung.
Ich nutze * 1.4.17
 
Leider funktioniert die Variable ${CALLING} nicht.


ups...

${CALLING} ist bei mir eine gesetzte Variable und ist gleich ${EXTEN}


Mein Fehler...

ich weiß nit, wie die sip.conf bei RT aufgebaut ist, müsstest mir mal die datenfelder posten... aber wenn dort ein eintrag existiert, wessen Account des ist, UND ein eintrag, welche Rufumleitung der eingerichtet hat, dann müsste es ungefähr so aussehen:
sip_rum == feld der Rufumleitung
sip_ang == feld von dem Account, der angerufen wird...
sip_table == tabellenname deiner sip.conf

Code:
exten => ruf-CHANUNAVAIL,2,MYSQL(Query resultid ${connid} SELECT\ sip_rum\ FROM\ sip_table\ WHERE\ sip_ang=${EXTEN}\)
 
Vielen Dank Blackmore,

hat bestens geklappt.
Einfach genial.

Gruß Franco
 
Könntest du den Titel ändern in [gelöst]..........

und vllt, wenn Du Bock hast, eine lurze Anleitung hier reinschreiben - vllt braucht des noch jmd anderes auch... wäre schön...

merci....

Blackmore
 
Kostenlos!

Statistik des Forums

Themen
248,891
Beiträge
2,304,276
Mitglieder
378,583
Neuestes Mitglied
Rubinek