Wie Anrufstatus checken bei outgoing mit callfile?

ChowYunFett

Neuer User
Mitglied seit
5 Jun 2007
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo,

mit welcher Funktion oder App kann man prüfen, ob ein angerufener Teilnehmer den Anruf entgegengenommen hat, wenn der Anruf über ein Call File ausgelöst wurde?

Eigentlich möchte ich nur mit einem Call File einen Anruf auslösen und eine Ansage abspielen, aber Asterisk beginnt bereits mit dem Abspielen der Ansage, wenn der Angerufene noch gar nicht abgenommen hat.

Das call file sieht aus wie folgt:
Channel: SIP/00491234567@1und1
MaxRetries: 3
RetryTime: 90
WaitTime: 90
Context: 10000
Extension: myext
Priority: 1

Wenn ich dieses call file in den spool ordner werfe ruft asterisk brav die angegebene nummer an und springt auch nach myext@10000:1 und führt die dortige dialplan-logik aus:

exten => myext,1,Answer()
exten => myext,n,Playback(meineansage)

Natürlich soll Asterisk erst dann die Ansage abspielen wenn der angerufene Teilnehmer abgenommen hat.
ABER: Asterisk beginnt SOFORT mit dem Abspielen der Nachricht, während das Telefon noch klingelt.

Hat jemand eine Idee, ich beiße mir daran die Zähne aus :noidea:

Vielen Dank

Chow
 
Angeblich springt Asterisk erst nach erfolgreichem Rufaufbau in den Dialplan:

Jetzt generieren wir im Verzeichnis /tmp/ die Datei ein-test.call mit folgendem Inhalt:

Channel: SIP/2000
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: call-file-test
Extension: 10
* Geht der Benutzer des Telefons 2000 ran, dann startet Asterisk im Context [call-file-test] die Abarbeitung der Extension 10. Es wird also der Sprachbaustein hello-world abgespielt.
Quelle:http://www.das-asterisk-buch.de/unstable/call-file.html

Bei mir springt er aber sofort rein und startet das Replay. Irgendwelche IDeen warum das so sein könnte?
 
wenn ich mich vom Telefon wecken lasse, dann mit folgendem Callfile:
Code:
Channel: Local/45
Context: default
MaxRetries: 2
RetryTime: 240
WaitTime: 60
Application: Playback
Data: tt-monkeys
Callerid: "Wakeup service" <99>
 
ChowYunFett schrieb:
Bei mir springt er aber sofort rein und startet das Replay. Irgendwelche IDeen warum das so sein könnte?

Weil der Angerufene abgenommen hat?
 
-- edit bt: unnötiges Fullquote entfernt --

Siehe oben:
Natürlich soll Asterisk erst dann die Ansage abspielen wenn der angerufene Teilnehmer abgenommen hat.
ABER: Asterisk beginnt SOFORT mit dem Abspielen der Nachricht, während das Telefon noch klingelt.

Das ist ja eben das Problem, dass das Replay gestartet wird, bevor abgenommen wurde.
 
Zuletzt bearbeitet von einem Moderator:
-- edit bt: unnötiges Fullquote entfernt --

Aber eigentlich dürfte Asterisk (so steht es in der Dokumentation) erst dann in den Dialplan springen wenn der Anruf abgenommen wurde, vorher wird das Answer() also erst gar nicht ausgeführt (eigentlich).
Wie sieht es mit folgender Theorie aus: Die Signale und Frequenzen die verwendet werden um einen Call Status (busy etc.) zu signalisieren sind länderspezifisch. Muss ich Asterisk in irgendeiner config "sagen" dass er in Deutschland ist, damit er diese Signale richtig interpretiert?
 
Zuletzt bearbeitet von einem Moderator:
Bitte lies die Forumregeln, vor allem bezüglich des Themas "unnötige Fullquotes". Danke.
 
Habe "Answer()" mal weggelassen, das Problem ist dasselbe geblieben. ICh glaube, bei outgoing calls ist Answer() sowieso nur "besserer PRogrammierstil", aber eigentlich nicht erforderlich.
 
ChowYunFett schrieb:
ICh glaube, bei outgoing calls ist Answer() sowieso nur "besserer PRogrammierstil", aber eigentlich nicht erforderlich.

Das ist kein outgoing call, sondern ein incomming call der von dem voher erzeugten Channel ausgelöst wird.

Wenn Du Dir sicher bist das der angerufene das Gespräch nicht angenommen hat dann ist es ein bug.
Die Funktion funktioniert ansonsten einwandfrei.
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,862
Beiträge
2,303,105
Mitglieder
378,516
Neuestes Mitglied
jpttpee