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

Unterscheidung interne oder externe Anrufe?

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von ike, 29 Aug. 2005.

  1. ike

    ike Aktives Mitglied

    Registriert seit:
    18 Apr. 2005
    Beiträge:
    1,004
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich kämpfe gerade mit den Asterisk-Skripten (in diesem Fall mit Asterisk@Home). Dort sind fertige Skripte definiert, die ich gerade umschreibe.

    Unter Anderem möchte ich prüfen, ob Anrufe von extern oder intern stammen und dann dementsprechend auf Voicebox umleiten oder nicht.

    Wie prüfe ich das am Elegantesten? Ich könnte sicherlich nachschauen, ob die CallerID eine gewissen Länge hat, aber das erscheint mir nicht elegant. Es gibt da doch sicherlich bessere Prüfungsmöglichkeiten, oder?
     
  2. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Pruefe ob die CallerID mit einer '0' anfaengt (vorrausgesetzt bei ankommenden Anrufen wird vor die CallerID eine 0 gestellt).
     
  3. jl_de

    jl_de Neuer User

    Registriert seit:
    9 Apr. 2005
    Beiträge:
    146
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Dipl.-Inf.
    Oder setzte im entsprechenden Context über den der Anruf reinkommt eine Variable. Diese kannst Du dann im weiteren Verlauf des Dialplans abfragen.
     
  4. ike

    ike Aktives Mitglied

    Registriert seit:
    18 Apr. 2005
    Beiträge:
    1,004
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das mit der "0" ist genau dann schlecht, wenn der Anrufer die Rufnummer unterdrückt. Das mit dem Setzen einer Variablen erscheint mir sinnvoller. Dann müsste ich "nur noch" die entsprechenden Stellen finden.

    Ich hätte mir gedacht, dass in irgendwelchen Systemvariablen schon etwas stehen würde. Schade, dass das anscheinend nicht der Fall ist.
     
  5. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es sollte auch moeglich sein, das ganze ueber die Variable ${CHANNEL} rauszufinden.
     
  6. ike

    ike Aktives Mitglied

    Registriert seit:
    18 Apr. 2005
    Beiträge:
    1,004
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Da steht bei mir soetwas wie "SIP/20-8868" drin. Die 8868 sagen mir jetzt gar nichts. Die 20 ist die Nebenstelle, von der ich angerufen habe.

    Wo ist eigentlich eine gute Quelle, um das Scripten richtig zu lernen? Ich sehe z.B. Zeilen wie:
    Code:
    exten => s,5,GotoIf($[${CHANNEL:0:5} = Local]?s-${DIALSTATUS},1)
    Da frage ich mich, ob das wirklich bedeuten soll, dass er weiterspringt, wenn die ersten 5 Stellen - beginnend mit der 0. - mit "Local" anfangen.

    Wenn ja - wieso sieht der Inhalt der Channel-Variable dann total anders aus?
     
  7. udosw

    udosw Aktives Mitglied

    Registriert seit:
    20 März 2004
    Beiträge:
    1,114
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Hannover
    Externe und interne Anrufe sollten sich doch schon dadurch unterscheiden, dass sie in einem anderen [Context] stattfinden.

    Udo
     
  8. ike

    ike Aktives Mitglied

    Registriert seit:
    18 Apr. 2005
    Beiträge:
    1,004
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das kann natürlich auch sein. Ich habe derzeit augenscheinlich keinen anderen Context, in dem einzelne Anschlüsse angerufen werden, allerdings habe ich auch noch nichts im Zusammenhang mit HFC konfiguriert. Kann natürlich sein, dass da noch was fehlt.

    Das mit dem "Local" habe ich übrigens herausgefunden. Das wird intern genutzt, Local heisst hier also nicht, dass es direkt am Server angemeldete User sind.
     
  9. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0