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

GoSub -> Return an bestimmte Priorität?

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von astrakid, 25 Feb. 2012.

  1. astrakid

    astrakid Neuer User

    Registriert seit:
    24 Apr. 2011
    Beiträge:
    86
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Hallo

    gibt es eine Möglichkeit, im Dialplan über GoSub und Return an eine andere Stelle im Kontext zu springen? Ich habe für meine Eingangsrufnummern einen gleichen Ablauf, nur die Parameter sind unterschiedlich. Das realisiere ich durch einen grundlegend gleichen Ablauf, wobei ich je nach Eingang eine andere Subroutine aufrufe, in der die Parameter gesetzt werden.
    Jetzt würde es Sinn machen, direkt an andere Stellen im Hauptteil zurückzuspringen.
    Gibt es hier Wege, das zu realisieren? Oder ist der einzige Weg, an Stelle von GoSub ein Goto zu verwenden, aus der darüber aufgerufenen (Sub-)Routine einen Rücksprungwerte in eine Variable packen, an die Hauptroutine zurückspringen und die Variable auswerten und dahinzuspringen?

    gruß,
    astrakid
     
  2. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,486
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Schüler
    Ort:
    Ingolstadt
    Dein letzter Satz ist eine Lösung. So könnte man das machen - spricht ja nichts dagegen.
    Vielleicht gibt es aber auch einen anderen Weg, wenn du es in der extensions.ael machst. Ich habe mich mal mit ael beschäftigt. Das waren paar Stunden Einarbeitungszeit und dann habe ich fast meine gesamte extensions.conf nach ael umgeschrieben. Ist bequemer.
     
  3. astrakid

    astrakid Neuer User

    Registriert seit:
    24 Apr. 2011
    Beiträge:
    86
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    ael klingt interessant, in der tat...

    auf die schnelle habe ich lesen können, dass der aelparser einen ael-dialplan in das "alte" muster übersetzen kann - wie wird denn die switch-case-anweisung dann übersetzt? in verschachtelte if-then-else-anweisungen?

    gruß,
    astrakid
     
  4. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,486
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Schüler
    Ort:
    Ingolstadt
    Da wird so ziemlich alles in GoTo übersetzt. Aus nur wenigen Zeilen in ael sieht man mit "dialplan show" in der CLI viele Zeilen mit Goto und NoOp.
     
  5. astrakid

    astrakid Neuer User

    Registriert seit:
    24 Apr. 2011
    Beiträge:
    86
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    hm... das heißt, das ael nur einen vorteil beim programmieren selbst ist, der code aber wieder relativ komplex wird und somit asterisk genauso viel zu tun hat? dann kann ich es direkt programmieren... dann hat ael nur den vorteil der übersichtlichkeit, oder?

    gibt es irgendwo "kostenschätzungen" zu den einzelnen funktionen in asterisk? also wieviel last eine funktion hervorruft?

    gruß,
    astrakid
     
  6. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,486
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Schüler
    Ort:
    Ingolstadt
    ael bietet einen gewaltigen Vorteil in der Übersichtlichkeit. Und ich musste feststellen, dass ich in ael öfters etwas in einer Zeile schreiben kann was ich früher in conf mit mehreren Zeilen schreiben musste. Praktisch finde ich zum Beispiel in ael die Möglichkeit dass viele Applikations nach einer Bedingung ausgeführt werden können. In conf kann man ja nur eine Applikation nach einer Bedingung starten.
     
  7. astrakid

    astrakid Neuer User

    Registriert seit:
    24 Apr. 2011
    Beiträge:
    86
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    ok, danke! dann bleibe ich doch erstmal bei der extensions.conf.

    gruß und danke.
    astrakid