GoSub -> Return an bestimmte Priorität?

astrakid

Neuer User
Mitglied seit
24 Apr 2011
Beiträge
89
Punkte für Reaktionen
0
Punkte
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
 
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.
 
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
 
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.
 
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
 
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.
 
ok, danke! dann bleibe ich doch erstmal bei der extensions.conf.

gruß und danke.
astrakid
 
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.