Asterisk und Variablen

Tagamoga

Neuer User
Mitglied seit
12 Sep 2008
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo allerseits,

leider habe ich eine kleines Problem mit dem Scripting von asterisk.
Folgende Zeilen:
Code:
 exten => s,1,NoOp(${ARG1})
 exten => s,n,NoOp(${CALLERID(name)})
 exten => ${ARG1},hint,SIP/${CALLERID(name)}

Ausgabe:
Code:
    -- Executing [s@macro-set-hints:1] NoOp("SIP/T001-089d64f8", "1004") in new stack
    -- Executing [s@macro-set-hints:2] NoOp("SIP/T001-089d64f8", "T001") in new stack

Also die beiden Variablen sind correkt gesetzt und gefüllt. Doch wenn ich mir die Hits ansehe sehe ich folgendes:
Code:
   @macro-set-hints     : SIP/
anstatt:
Code:
   1004@macro-set-hints     : SIP/T001

Wieso? und wie bekomme ich es hin in der LAUFZEIT die hints neu zu setzen?

Danke im vorraus,
Taggi
 
du musst unterscheiden zwischen dialplan-variablen (werden im [globals] abschnitt definiert) und channel variablen (die sind nur während des anrufes gültig, also zur laufzeit)

wenn asterisk (oder respektive du) den dialplan reloadest, versucht die asterisk sämtliche variablen zu parsen, die nicht innerhalb der applikations-parameter der einzelnen extensions stehen. zu diesem zeitpunkt gibt es aber noch keine channel-variablen.

ausserdem kannst diese quasi-dynamischen hints oder extensions nur mit einem script generieren, das du mittels "#exec ..." in den dialplan einbindest, z.b.:
Code:
...
[context]
#exec wget -q -O - http://localhost/asterisk/createhints.php
...

wobei das script dann die eintrage so ausgeben muss, wie wenn du sie im dialplan einfügst.

und wie bekomme ich es hin in der LAUFZEIT die hints neu zu setzen?
kann es sein, dass du die sache mit den hints etwas falsch verstehst? warum willst du denn die hints während der laufzeit des anrufes setzen? die sind doch in erster linie für subscriptions da!
wenn du den status eines hints meinst, musst du einen hint mit einem channeltype "DS" (DeviceState) setzen, den kannst du dann mit der dialplan applikation "DevState" umsetzen. kann sein, dass du da eine bristuff-gepatchte asterisk brauchst.

im übrigen rate ich davon ab, denn CALLERID(name) auf den namen des sip peers zu setzen, das ist im produktiv-betrieb nicht wirklich verwendbar, da man ja (wie auch das feld schon sagt) dort den namen sehen soll...

grüße,
laureen
 
Zuletzt bearbeitet:
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.