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

Call File mit Alternativ Nummer

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von ahofmann, 28 Nov. 2008.

  1. ahofmann

    ahofmann Neuer User

    Registriert seit:
    28 März 2007
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ich bin gerade auf ein Problem gestoßen, das mir ein bisschen Kopfzerbrechen bereitet:

    Ich habe hier ein System stehen was Audiodateien+Call-File an meinen Asterisk-Server sendet. Dieser ruft dann automatisiert die entsprechende Nummer aus dem Call-File an.
    MaxRetries, WaitTime etc. funktioniert super.

    Wenn der Anruf allerdings auch nach $MaxRetries nicht erfolgreich war, soll eine andere Nummer angerufen werden. Wie kann ich das (am elegantesten) realisieren?

    Habe schon herausgefunden, dass man im call-file mit "archive = yes" die Call-Files speichern kann. Eine Möglichkeit wäre z.B. das Call-File auf den Status zu parsen ... aber ... gefällt mir nicht :(
     
  2. alfhh

    alfhh Mitglied

    Registriert seit:
    5 Jan. 2006
    Beiträge:
    329
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wie wärs damit. In das Callfile die erste und zweite Nummer als Variable schreiben. Dann mit dem Callfile einen Localchannel aufrufen, und im dazugehörigen Dialplan über den Dialstatus entscheiden, ob nach Fehlschlagen des ersten Anrufs die zweite Nummer angerufen werden soll.

    Bye,
    Alf
     
  3. ahofmann

    ahofmann Neuer User

    Registriert seit:
    28 März 2007
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    danke erstmal.

    Habe jetzt folgenden Aufbau:
    Im Callfile leite ich den Anruf an den Local/s@outbound Kanal weiter.

    Code:
    Channel: Local/s@outbound
    MaxRetries: 2
    RetryTime: 60
    WaitTime: 30
    Context: outbound
    Extension: s
    Priority: 1
    Callerid: Test <1234>
    Archive: yes
    Set: MSG=voicealerts/2008_12_02-08_55_37
    Set: HOST=TEST TEST TEST
    Set: OWNNO=1234
    Set: PRINO=1111
    Set: SECNO=2222
    Set: PIN=0815
    

    In meiner extensions.conf habe ich folgendes:

    Code:
    
    [outbound]
    exten => s,1,Wait(1)
    exten => s,n,Dial(CAPI/ISDN1/${OWNNO}:${PRINO},10)
    exten => s,n,Dial(CAPI/ISDN1/${OWNNO}:${SECNO},10)
    
    exten => s,n,Set(TIMEOUT(absolute)=180)
    exten => s,n(restart-message),Playback(${MSG})
    exten => s,n(restart-instruction),Background(voicealerts/information)
    
    
    ; invalid Extension
    ; Bei Eingabe einer ungültigen Zahl
    exten => i,1,Background(eingabeungueltig)
    exten => i,2,Goto(s,instruct)
    
    
    ; DTMF Timeout
    exten => t,1,Wait(1)
    exten => t,n,Playback(nummereingeben)
    exten => t,n,Goto(s,restart-instruction)
    
    
    ; Global Timeout
    exten => T,1,Wait(1)
    exten => T,n,Playback(XYZ)
    exten => T,n,Hangup()
    

    Irgendwie funktioniert das leider nicht so wie ich mir das vorstelle.
    Die Nummer 1111 wird zwar angerufen, aber irgendwann wird der Anruf einfach mit Besetztzeichen unterbrochen.
    In der Asterisk Konsole sehe ich einige Fehlermeldungen wie z.B.
    Code:
    
      == Everyone is busy/congested at this time (1:1/0/0)
      == Auto fallthrough, channel 'CAPI/ISDN1#02/1111-1f' status is 'CHANUNAVAIL'
    
    
    



    PS: Ich übergebe ja in meinem Call-File eine PIN Nummer. Wie kann ich die denn am einfachsten abfragen?