Probleme mit DBGet bei Asterisk 1.2

Guard-X

Aktives Mitglied
Mitglied seit
14 Mai 2005
Beiträge
2,497
Punkte für Reaktionen
0
Punkte
36
Hi,

habe etwas Probleme mit der Änderung der DBGet Funktion bei Asterisk 1.2

Möchte gerne dieses anpassen...

exten => s,1,Noop(${CALLERIDNUM})
exten => s,2,DBGet(name=cidname_internal/94${CALLERIDNUM})
exten => s,3,SetCallerID(${name})

Sollte lt. Doku mit diesen Änderungen möglich sein:

DBGet(foo=family/key) Set(foo=${DB(family/key)})

Doch was bedeutet das "Set"?

Vielleicht könnte mir jemand helfen das anzupassen...

Danke im voraus!

mfg Guard-X
 
Guard-X schrieb:
DBGet(foo=family/key) Set(foo=${DB(family/key)})

Doch was bedeutet das "Set"?

Naja du willst einen Wert für foo SETzen... :)
 
Hier ein Bespiel aus meiner config:



Code:
[macro-pbxclip]
exten => s,1,Set(pclip=${DB(pbxclip/${ARG1})})
exten => s,2,GotoIf($["${pclip}" = ""]?s|102)
exten => s,3,Set(CALLERID(number)=${pclip})
exten => s,4,Set(CALLERID(name)=${pclip})

; Nummer nicht gefunden, verwende Standard MSN
exten => s,102,Set(pclip=491234567)
exten => s,103,Goto(s,3)
${ARG1} = Lokale Nummer/MSN, wird anschließen auf externe MSN ${pclip} umgestellt.
Der Datenbankeintrag schaut dabei wie folgt aus (database show Ausgabe):
/pbxclip/41 : 491234568


Hatte ich gestern Abend auf 1.2 umgestellt, ist eventuell nicht ganz ideal/richtig.
 
@maik
das ist mir schon klar

@cibi
und wie kann das für mein Beispiel aussehen, mag meine Versuche gar nicht posten, soviele Fehlermeldungen wie ich schon bekommen haben...
 
ohne es jetzt getestet zu haben, würde ich folgendes probieren:

set(name=${DB(cidname/94${CALLERIDNUM})})

Man achte auf die unterschiedlichen Klammern rund / geschweift :!:
 
@betateilchen
funktioniert leider nicht, hier die CLI Ausgabe

[macro-cidname_area04]
exten => s,1,Noop(${CALLERIDNUM})
;exten => s,2,DBGet(name=cidname_internal/94${CALLERIDNUM})
exten => s,2,Set(name=${DB(cidname/94${CALLERIDNUM})})
exten => s,3,SetCallerID(${name})
exten => s/_0X.,1,Macro(cidname_external)

Code:
Nov 29 14:43:08 NOTICE[653]: pbx.c:1478 pbx_substitute_variables_helper_full: Error in extension logic (missing '}')
Nov 29 14:43:08 NOTICE[653]: pbx.c:1478 pbx_substitute_variables_helper_full: Error in extension logic (missing '}')
Nov 29 14:43:08 WARNING[653]: pbx.c:1359 ast_func_read: Can't find trailing parenthesis?
Nov 29 14:43:08 WARNING[653]: app_setcallerid.c:112 setcallerid_exec: SetCallerID requires an argument!
Nov 29 14:43:08 NOTICE[653]: app_dial.c:1011 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)
Nov 29 14:43:22 NOTICE[659]: pbx.c:1478 pbx_substitute_variables_helper_full: Error in extension logic (missing '}')
Nov 29 14:43:22 NOTICE[659]: pbx.c:1478 pbx_substitute_variables_helper_full: Error in extension logic (missing '}')
Nov 29 14:43:22 WARNING[659]: pbx.c:1359 ast_func_read: Can't find trailing parenthesis?
Nov 29 14:43:22 WARNING[659]: app_setcallerid.c:112 setcallerid_exec: SetCallerID requires an argument!
Nov 29 14:43:22 NOTICE[659]: app_dial.c:1011 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)
 
Wenn er meint, daß da nochmal eine geschweifte Klammer fehlt ...

Code:
set(name={${DB(cidname/94${CALLERIDNUM})}})

Ansonsten probier ich das heute abend mal selbst zu Hause aus.
 
So, das hier funktioniert einwandfrei. Das Konvertierungsprogramm für MySQL hat nur 2 Klammern -> }) <- abgeschnitten!

exten => s,2,Set(name=${DB(cidname_internal/94${CALLERIDNUM})})

Jetzt funktioniert allerdings dies auch nicht mehr bei * 1.2
exten => _94X.,6,Goto(area04,${EXTEN:2},1)

Fehlermeldung:
Nov 29 15:25:00 NOTICE[806]: app_dial.c:1011 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)

Was ist das nun wieder?
 
Nov 29 15:25:00 NOTICE[806]: app_dial.c:1011 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)

Diese Fehlermeldung kommt aber nicht aus dem Goto, sondern aus dem Dial-Befehl ! Den hast Du uns aber nicht gezeigt.
 
Ok, da war auch eine kleine Änderung notwendig, müssten die denn unbedingt soviel ändern.

Ich hatte mir die Konvertierung vom Dialplan einfacher vorgestellt, hinzu kommen noch die Probleme von Realtime.

mfg Guard-X
 
Ich meinte damit die Konvertierung von file zu db, z.B. beim Goto usw.

Ein Problem habe ich aber noch und das sieht so aus: Ich benutzte die "hint" Funktion für meine SNOM 360. Jetzt kommt im CLI folgende Meldung:

Got SUBSCRIBE for extensions without hint. Please add hint to 0049XXXXXX in context area04

Das liegt daran, das sich die User externe! Rufnummern auf die Tasten der SNOM 360 gelegt haben.

Kann man diese Meldung irgendwie abschalten?
 
das ist doch bestimmt eine Warning - da kommt es auf Deinen verbose-Level an und auf die Einstellungen in der logger.conf. Ich würde die Meldung einfach ignorieren
 
verbose level ist bei mir 0,

bei 250x SNOM 360 macht das mehrere tausend Meldungen in der Stunde!

console => notice,warning,error
 
schonmal das "warning" dort rausgenommen ?
 
Das GotoIf funktioniert auch nicht mehr in V1.2

exten => _94X.,1,GotoIf($["${CALLERIDNAME}" = "anonymous"]?2:4)

Wird ja immer bisser, ich glaube ich gebe auf...
 
Wird ja immer bisser, ich glaube ich gebe auf...

hast Du eigentlich mal das Upgrade-Dokument gelesen ? Du stolperst immer wieder über die gleichen Problem - in diesem Fall geht es darum daß um Vergleichsoperatern keine Leerzeichen mehr stehen dürfen.

Lies das Upgrade-Readme - da sind alle inkompatiblen Änderungen aufgeführt :!:
 
1. natürlich habe ich die Upgrade-Doku gelesen
2. leider habe ich die Leerzeichen auch schon entfernt, und nein, es funktioniert trotzdem nicht
3. in meiner Situation hat man nicht mehr viel Zeit zum überlegen, morgen müssen Server 2+3+4 geupdatet sein...

Schönen Abend noch!

mfg Guard-X
 
@betateilchen
Das GotoIf funktioniert auch nicht mehr in V1.2

exten => _94X.,1,GotoIf($["${CALLERIDNAME}" = "anonymous"]?2:4)

...weil da jetzt CALLERID drin stehen muss!? Warum weiß ich auch nicht!
exten => _94X.,1,GotoIf($["${CALLERIDNAME}" = "anonymous"]?2:4)

Aber das Problem mit dem Got SUBSCRIBE habe ich immer noch...


mfg Guard-X
 
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.