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

zweite Nummer verzögert anrufen

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von pbx-stefan, 4 Okt. 2006.

  1. pbx-stefan

    pbx-stefan Neuer User

    Registriert seit:
    26 Jan. 2006
    Beiträge:
    128
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,

    ich würde gerne ein Dial absetzen und 8 Sekunden später ein zweites Dial zu einem anderen Ziel.
    Wie gehabt möchte ich dann den Call dem durchstellen, der zuerst abnimmt.

    PHP:
    exten => 123456,1,Dial(${ziel1}&${ziel2}&${ziel3},60)
    würde ja alle drei Ziele annähernd gleichzeitig anwählen. Wer zuerst abhebt, bekommt den Call, nach 60 Sekunden geht es weiter im Dialplan.
    Nun möchte ich aber in etwa

    PHP:
    exten => 123456,1,Dial(${ziel1},68)
    exten => 123456,n,Wait(8)
    exten => 123456,n,Dial(${ziel2}&${ziel3},60)
    haben, nur das in diesem Beispiel ziel1 für 68 Sekunden angerufen wird, dann 8 Sekunden Pause entsteht und dann Ziel2 und 3 angerufen werden....
    Ziel1 soll aber weiter klingeln bis irgendwo drangegangen wird....

    Wofür das ganze?

    Ich habe einen Vodafone Zuhause Tarif. In der Homezone bin ich auf einer Festnetznummer erreichbar. Meine Asterisk steht hinter einem ISDN Telefon Flat Tarif. Ein umleiten zum Handy ist also ökonomischer, wenn ich auf der Festnetznummer ereicht werde. Bin ich nicht um Zuhausebereich, bekommt Asterisk ein congestion... würde also die anderen Nummern weiter klingeln lassen... somit auch Ziel3, mein Handy.

    Bin ich kompliziert?
    Wie löst Ihr das?

    Gruß Stefan
     
  2. onkel_fritz

    onkel_fritz Neuer User

    Registriert seit:
    10 Apr. 2006
    Beiträge:
    110
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hi

    warum nicht einfach zweimal auf ziel1 wählen?

    exten => 56,1,Dial(${ziel1},8 )
    exten => 56,n,Dial(${ziel1}&${ziel2}&${ziel3},60)

    da könntest du theoretisch das problem haben,
    dass du genau nach 8 sekunden abhebst und somit
    den anruf ned kriegst; aber doch eher unwahscheinlich!
     
  3. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Schau nach local channels

    Mit local channels kannst Du an mehreren Clients mit unterschiedlichen Klingelbeginn und Klingeldauer signalisieren.
    Der erste Client der abnimmt gewinnt.
     
  4. pbx-stefan

    pbx-stefan Neuer User

    Registriert seit:
    26 Jan. 2006
    Beiträge:
    128
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @onkel_fritz: danke, hatte ich auch schon dran gedacht, aber das Problem ist, dass im zweiten Schritt zeil1 und ziel3 gleichzeitig angewählt werden würden. Da Ziel1 vom VF Netz (naja eigentlich von BT) zum Handy geroutet wird (wenn ich im Zuhausebereich bin), kommt dieser Ruf immer nach dem Ruf zu ziel3 (der direkte Ruf zum Handy) am Handy an. Das wiederum kostet mehr Geld. Ich müsste also in Deinem Beispiel schneller als 8 Sekunden sein... nein eigentlich schneller, als die 8 Sekunden minus der Zeit, die das Netz braucht um beim Handy zu klingeln, um den vergünstigten Call zu erwischen.

    @Thomas: habe ich mir die local channels angesehen, werde daraus aber nicht schlau.
    ich würde also einen context erstellen, in dem ich die Ziele per Dial und entsprechender Verzögerung anrufe:
    PHP:
    [mylocalcontext]
    exten=>handy,1,wait(10)
    exten=>handy,n,dial(${handynummer},60,r)
    exten=>handy_ueber_zuhausenummer,1,dial(${zuhausenummer},60,r)
    Und in meinem outgoing context schreibe ich
    PHP:
    exten => 123456,1,Dial(local/handy@mylocalcontext,60,r)
    exten => 123456,1n,Dial(local/handy_ueber_zuhausenummer@mylocalcontext,60,r)
    ???

    Danke.
    Gruß Stefan
     
  5. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es gibt DIAL(SIP/210&SIP/215).

    oder LOCAL channels:
    ein einfaches Beispiel

    [intern]

    exten => 300,1,DIAL(LOCAL/210@intern&LOCAL/215@intern)

    exten => 210,1,Wait(10)
    exten => 210,n,DIAL(SIP/210)

    exten => 215,1,Wait(5)
    exten => 215,n,DIAL(SIP/215)

    Wählst Du 300 an werden zwei neue Channels gebildet. In diesen Channels werden im aktuellen Context wieder die extensions (210 und 215) gesucht und ausgeführt.

    Auch hier gilt die Regel, der erste der abnimmt gewinnt.
     
  6. onkel_fritz

    onkel_fritz Neuer User

    Registriert seit:
    10 Apr. 2006
    Beiträge:
    110
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    das ist sehr interessant; offensichtlich sowas wie ein fork :eek:

    @ pbx-stefan

    natürlich kannst du hier das erste wait weglassen

    Code:
    exten => 300,1,DIAL(LOCAL/210@intern&LOCAL/215@intern)
    
    ;exten => 210,1,Wait(10)
    exten => 210,1,DIAL(SIP/210)
    ; das hier wird erst 8 sekunden später aktiv
    exten => 215,1,Wait(8)
    exten => 215,n,DIAL(SIP/215)
    
     
  7. pbx-stefan

    pbx-stefan Neuer User

    Registriert seit:
    26 Jan. 2006
    Beiträge:
    128
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Prima. Ich danke.

    Stefan