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 [[email protected]:1] NoOp("SIP/T001-089d64f8", "1004") in new stack
    -- Executing [[email protected]: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:
   [email protected]     : SIP/T001
Wieso? und wie bekomme ich es hin in der LAUFZEIT die hints neu zu setzen?

Danke im vorraus,
Taggi
 

laureen

Mitglied
Mitglied seit
17 Okt 2004
Beiträge
369
Punkte für Reaktionen
0
Punkte
0
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:

Zurzeit aktive Besucher

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,920
Beiträge
2,028,165
Mitglieder
351,084
Neuestes Mitglied
knuller