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

Dialplan: system() blockiert Wählvorgang

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von Snuff, 11 Dez. 2011.

  1. Snuff

    Snuff Aktives Mitglied

    Registriert seit:
    23 Juni 2006
    Beiträge:
    1,149
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Softwareentwickler/Ausbilder
    Ort:
    65529 Waldems (Taunus)
    Hallo zusammen,

    ich lasse mir bei ausgehenden Anrufen per Sipsak Informationen auf das Display der Snom´s schicken. Ist jedoch eines der Telefone nicht erreichbar, dann blockiert der system() befehl den kompletten Wählvorgang. Kann man das irgendwie umgehen?
    Code:
    exten => _X.,10,system(sipsak -i -M -B "Test" -s sip:1234@domain.tld:5160)
    exten => _X.,11,Dial(SIP/${EXTEN}@SGT1234,60,trg)
    Würde es was bringen, das sipsak erst nach dem Dialvorgang abzusenden?

    Gruß Patrick
     
  2. Snuff

    Snuff Aktives Mitglied

    Registriert seit:
    23 Juni 2006
    Beiträge:
    1,149
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Softwareentwickler/Ausbilder
    Ort:
    65529 Waldems (Taunus)
    Ich hab jetzt in "Das Asterisk Buch" den Befehl TrySystem gefunden. Der egal ob erfolgreich oder nicht immer eine 0 zurückgibt und damit den Dialplan hoffentlich nicht blockiert.
     
  3. sparkie

    sparkie Aktives Mitglied

    Registriert seit:
    13 Nov. 2005
    Beiträge:
    1,526
    Zustimmungen:
    12
    Punkte für Erfolge:
    38
    Beruf:
    Rentner
    mit system sollte es aber auch gehen wenn du schreibst:
    Code:
    system(sipsak -i -M -B "Test" -s sip:1234@domain.tld:5160 || :)
    da dann wegen des '|| :' immer 'true' == erfolgreich zurueckgeliefert wird

    - sparkie
     
  4. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Vielleicht ist es auch ganz nett die Anweisung &disown anzufügen - es geht hier natürlich um die Mitteilung an das Telefon in Form einer SIP Message (davon gehe ich aus) und diese würde ich nicht als kritisch bezeichnen...das beenden muss also nicht abgewartet werden, der status ist jedoch interessanter - dann ggf. nicht mit disown sondern mit einer anderen pipe umlenken und somit aus der bearbeitung nehmen..!?

    LG Stefan
     
  5. Snuff

    Snuff Aktives Mitglied

    Registriert seit:
    23 Juni 2006
    Beiträge:
    1,149
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Softwareentwickler/Ausbilder
    Ort:
    65529 Waldems (Taunus)
    Ich hab jetzt eine Kombination von TrySytem() und &disown und das funktioniert perfekt. Danke für die Tipps

    Gruß Patrick
     
  6. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Patrick, halte nur im Auge das es IMMER sein kann das ein Prozess durch disown ewig lebt - vielleicht möchte Dir ein Programm durch ein Neues Update eine sonst absolut ungewohnte Frage stellen (yes oer no) :) Das würde es dann bei jedem Anruf tun....solange bis Du mal selber schauen kommst oder alles überfüllt ist..

    Nur so als Gedankengang

    LG Stefan
     
  7. Snuff

    Snuff Aktives Mitglied

    Registriert seit:
    23 Juni 2006
    Beiträge:
    1,149
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Softwareentwickler/Ausbilder
    Ort:
    65529 Waldems (Taunus)
    da ich das im Moment nur für Mail und Sispak benutze ist die Gefahr wohl nicht so groß, aber ich halte die Prozessliste auf dem System sowieso im Auge :)

    Danke für den Hinweis
    Patrick
     
  8. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Aber gerne - Erfahrung kommt vom erfahren :)