Anwahl einer bestimmten Nr. Folge

Hille

Neuer User
Mitglied seit
16 Jun 2005
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
Ich möchte, dass bei der Anwahl einer bestimmte Nr., 2 verschiedene Nr. angewählt werden (2002 und 2005). Bei jeder anderen Nr. hingegen nur 2002.

Code:
exten => 2002,1,Set(doorpi = 2004)
exten => 2002,n,NoOp(Anruf von ${doorpi})
exten => 2002,n,GotoIf($[${CALLERID(num)} = ${doorpi}]?ja:nein)

exten => 2002,n(ja),Dial(SIP/2002&SIP/2005,180)
exten => 2002,n,GotoIf($["${DIALSTATUS}" != "BUSY"] ?alldone)
exten => 2002,n,Busy
exten => 2002(alldone),n,Hangup

exten => 2002,n(nein),Dial(SIP/2002,180)
exten => 2002,n,GotoIf($["${DIALSTATUS}" != "BUSY"] ?alldone)
exten => 2002,n,Busy
exten => 2002(alldone),n,Hangup

Die Ausgabe per CLI sieht so aus

Code:
    ...
    -- Executing [2002@phones:1] Set("SIP/2004-00000033", "doorpi = 2004") in new stack
    -- Executing [2002@phones:2] NoOp("SIP/2004-00000033", "Anruf von ") in new stack
    -- Executing [2002@phones:3] GotoIf("SIP/2004-00000033", "0?ja:nein") in new stack
    -- Goto (phones,2002,8)
    -- Executing [2002@phones:8] Dial("SIP/2004-00000033", "SIP/2002,180") in new stack
...

Warum wird die anrufende Nummer nicht ausgeben bzw wo liegt mein Fehler?
 
Steht doch da, er springt direkt zu Zeile 8.
 
Das habe ich auch gesehen. Aber warum springt er zu Zeile 8 und nicht zu Zeile 4? Der Anruf erfolgte von der Nr. 2004.
 
Moins


Das einfache Gleichheitszeichen ( = ) wird normalerweise für eine Zuweisung genutzt, bei/für Set() zum Beispiel.
Bei einem GotoIf() solltest du also für einen Vergleich das doppelte Gleichheitszeichen ( == ) nutzen.
Nee, einfaches = ist beim GotoIf() genau so dokumentiert.
 
Zuletzt bearbeitet:
Offentsichtlich ist die Variable nicht gesetzt.
-- Executing [2002@phones:2] NoOp("SIP/2004-00000033", "Anruf von ") in new stack
 
Vielleicht die Leerzeichen bei der Set() Definition weglassen ?
...also: Set(doorpi=2004)
Für Integerzahlen und...
Set(doorpi="2004")
Für Zeichenketten ( Strings ).
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Hille
Hier funktioniert das noch so:

exten => 004930abcdef,n,Set(aufzeichnung=1)
exten => 004930abcdef,n,Set(GLOBAL(ziel)=${EXTEN})
 
Moins


Ja cool, und diese Eigenart hab ich auch noch nie irgendwo dokumentiert gesehen.
Die Erfahrung muss also Jeder selber irgendwann machen.
:rolleyes:

@bytegetter: Andere Möglichkeit, die ich sehr gerne nutze, für "globale Variablen" die sogar einen Absturz/Neustart überleben, ist das Füttern und Auslesen der Asteriskdatenbank...
Code:
deeprasp*CLI> dialplan show 333@osmc
[ Context 'osmc' created by 'pbx_config' ]
  '333' =>          1. ExecIf($[${DB_EXISTS(${CONTEXT}/${EXTEN})}]?${DB_RESULT}:Hangup(16)) [pbx_config]

-= 1 extension (1 priority) in 1 context. =-
deeprasp*CLI> database show osmc 333                                                                                     
/osmc/333                                         : dial(iax2/osmc/500,5)
1 results found.
deeprasp*CLI>
Und Die wird auch nur mit Set() gefüttert ;)
( Oder im CLI mit: database put )
 
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.

IPPF im Überblick

Neueste Beiträge