.titleBar { margin-bottom: 5px!important; }

[gelöst] Rufumleitung per Tastendruck

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von Jarris, 1 Okt. 2008.

  1. Jarris

    Jarris Neuer User

    Registriert seit:
    30 Sep. 2008
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 Jarris, 1 Okt. 2008
    Zuletzt bearbeitet: 9 Juli 2009
    ich nochmal ^^

    ich würde bei uns gerne in die laufende Asteriskanlage eine Rufumleitung auf andere mitarbeite bei abwesenheit einbauen. diese sollte man möglichst einfach per tasten kombination auf dem telefonaktivieren und deaktivieren
    (wenn aktiv sollte es auch auf dem display angezeigt werden)

    hat jemand anregungen, verweise oder direckte vorschläge?

    zur info:
    Asteriskversion ist 1.2 (unter linux)
    telefon ist Grandstream GXP 2000, sip-client


    Danke schonmal im vorraus

    lg. Jarris
     
  2. himpierre

    himpierre Mitglied

    Registriert seit:
    18 Apr. 2007
    Beiträge:
    316
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  3. Jarris

    Jarris Neuer User

    Registriert seit:
    30 Sep. 2008
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ok, ich bin der anleitung gefolgt und hab ein fatales problem ^^

    die umleitungs nummer in die DB zu schreiben klapt super aber die vorgestellte abfrage bei einem eingehenden anruf funktioniert nicht -.-

    sieht in etwa so aus :

    Code:
    exten => _xxxxxxx,1,Set(num = ${EXTEN:-1})
    exten => _xxxxxxx,n,Set(rufumlnum = ${DB(rufuml/${num})}) 
    exten => _xxxxxxx,n,GotoIF($[ ${rufumlnum} = 0 ]?10:20)
    
    als CLI ausgabe kommt dann:

    Code:
    -- Executing Set("SIP/xxxx", "num = 4") in new stack
    -- Executing Set("SIP/xxxx", "rufumlnum = ") in new stack
    -- Executing GotoIf("SIP/xxxx", "0?5:10") in new stack
    
    warum wird der variable "rufumlnum" kein wert aus der DB zugewiesen
    (und da ist auf jeden fall ein eintrag für DB(rufuml/4) )

    danke schonmal für jegliche anregungen !

    lg. Jarris
     
  4. anhalter42

    anhalter42 Guest

    Oh, da bin ich offensichtlich nicht der Einzige, der noch auf 1.2 läuft... Egal. Zur Frage:

    bei mit lautet die fragliche Zeile

    Code:
    exten => _*21*.,n,Set(DB(CFW/${CALLERID(num)}) = ${EXTEN:4})
    Das "Set (variablenname = DB(usw.))" ist, glaube ich, erst ab Asterisk 1.4 gefordert. Die Abfrage würde ich sowieso per ausgelagertem Makro machen:

    input: die Extension, die ursprüinglich angerufen wurde
    output: eine Extension, die das Ende einer Rufumleitung(-skette) ist

    Code:
    exten => s,1,Set(FINAL_EXT=${ARG1})
    exten => s,n,NoOP(${DB_EXISTS(CFW/${FINAL_EXT})})
    exten => s,n,Set(i=1)
    exten => s,n,While($[${i} < 6])
    
    exten => s,n,GotoIf($[${DB_EXISTS(CFW/${FINAL_EXT})} = 0]?EndOfChain)
    exten => s,n,Set(FINAL_EXT=${DB(CFW/${FINAL_EXT})})
    exten => s,n,GotoIf($[${FINAL_EXT} = ""]?EndOfChain)
    exten => s,n,Set(i=$[${i} + 1])
    exten => s,n,EndWhile()
    exten => s,n,NoOp("Call forwarding chain is too long (${i})")
    exten => s,n(EndOfChain),GotoIf($[${ARG1} = ${FINAL_EXT}]?EndOfCFWMacro)
    exten => s,n,... noch anderes Zeugs ...
    exten => s,n(EndOfCFWMacro),NoOp("End Of Macro")
    
    Das Makro wird dann kurz vor dem Durchstellen aufgerufen:

    Code:
    exten => s,n,Macro(CFwdPruefung, ${CALLERID(num)})
    
    und dann das eigentliche "Durchstellen" natürlich mit ${FINAL_EXT}
     
  5. Jarris

    Jarris Neuer User

    Registriert seit:
    30 Sep. 2008
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    mir geht es wirklich nur um das auslesen der DB

    Code:
    exten => _xxxxxxx,n,Set(rufumlnum = ${DB(rufuml/${num})}) 
    was stimmt daran nicht ???
     
  6. anhalter42

    anhalter42 Guest

    Ermm. Du hast recht, die entscheidende Zeile zum Auslesen sieht bei mir genauso aus:

    Code:
    exten => s,n,Set(FINAL_EXT=${DB(CFW/${FINAL_EXT})})
    
    Da muss ich passen.

    Auch wenns doof klingt: Klein-/Großschreibung variieren? Länge des Family-Begriffs?
     
  7. doxon

    doxon Mitglied

    Registriert seit:
    11 Juni 2006
    Beiträge:
    781
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    IT-Systemelektroniker
    Ort:
    Aurich
    evtl die Leerzeichen bei dem =-Zeichen?
    Andere Unterschiede kann ich auch nicht feststellen.
     
  8. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    was sagt * an der CLI bei "database show rufuml" und in der Shell bei "asterisk -rx 'database show' |grep rufuml"?
     
  9. Jarris

    Jarris Neuer User

    Registriert seit:
    30 Sep. 2008
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    die rufumleitung läuft nun einwandfrei ^^

    jedoch wird eine aktive rufumleitung noch nicht auf dem display angezeigt,
    generel weiß ich nicht wie ich etwas auf dem telefon anzeigen lasse :(

    könnte mir da jemand helfen ?

    lg. Jarris
     
  10. Guard-X

    Guard-X Aktives Mitglied

    Registriert seit:
    14 Mai 2005
    Beiträge:
    2,497
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Aurich
    Per sipsak eine Message auf Display schicken (geht bei snom aber m.w. nicht beim GXP 2000).
     
  11. doxon

    doxon Mitglied

    Registriert seit:
    11 Juni 2006
    Beiträge:
    781
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    IT-Systemelektroniker
    Ort:
    Aurich
    Weißt du nun woran es lag?
    Evtl. für andere gut zu wissen, falls jemand das gleiche Problem hat.
     
  12. Jarris

    Jarris Neuer User

    Registriert seit:
    30 Sep. 2008
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    es lag wirklich nur an den leerzeichen -.-
    übrigens danke !


    dann bringt mir das leider wenig ^^
    aber es muss doch auch für die grandsteams irgendwie möglich sein, oder ?

    lg. Jarris