$DIALSTATUS immer auf ANSWER

gator4

Neuer User
Mitglied seit
7 Aug 2007
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo.
Ich benutze Trixbox 2.2.3 (Asterisk 1.2.18) und ein VOIP GSM Gateway als SIP Trunk.
Jeder Anruf wird im CDR aber mit der Disposition "ANSWERED" gekennzeichnet,
egal ob jemand abgehoben hat oder nicht.
Kann man anhand einer Variable unterscheiden, ob ein Gespräch stattfand?
Ich vermute, dass Dial immer ANSWER zurück bringt, weil der Anruf über
das SIP Gateway geht. Steht einem diese Information denn irgendwie zur
Verfügung, dass ein Gespräch erfolgt ist?
Danke für jede Hilfe,
Tom.
 
Zuletzt bearbeitet von einem Moderator:
Ich glaube eher, daß in Deinem Dialplan irgendwo ein ANSWER() steht wo eigentlich keines hingehört.

Wenn das stimmen würde, was Du behauptest, könnte man ja die gesamte Gesprächsdatenaufzeichung vergessen.
 
Die Gesprächsdatenaufzeichnung wäre dann sinnlos, da gebe ich Dir Recht und
das ist ja auch meine Frage.
Ein Answer() kommt im Ablauf nirgendswo vor.
Die extensions.conf wurde von mir nur verändert, um den Status auszugeben:

exten => Dial ...
...
exten => h,1,NoOp(Status: ${DIALSTATUS})
exten => h,n,Macro(hangupcall)

Gruß, Tom
 
${DIALSTATUS} solltest Du direkt nach dem dial() und vor allem in der gleichen extension abfragen. Und nicht erst in der "neuen" extension h, denn ein Hangup kann nur erfolgen, nachdem ein Answer erfolgt ist.
 
Sorry, aber das würde ich jetzt mal wiedersprechen wollen.
Ich habe es bei mir ähnlich definiert.

Code:
exten => _0X.,1,Dial....

exten => h,1,noOp(${ENV(RECORDED_FILE)})
exten => h,n,noOp(dialstatus: ${DIALSTATUS})
exten => h,n,Macro(sendrecordifexists)

Wenn ich jetzt nach einmal klingeln auflege, dann wird auf jeden fall h ausgeführt und
NoOp("mISDN/3-2", "dialstatus: CANCEL")
angezeigt
 
ich würde meiner Aussage ja prinzipiell auch widersprechen :mrgreen:

Aber hast Du dann eine andere Erklärung für das oben beschriebene Verhalten? Außer daß es irgendwo ein ANSWER geben muß, das sich in DIALSTATUS einträgt?

Mich würde einfach mal interessieren, welchen Wert diese Variable direkt nach dem DIAL hat.


Alles mit ...box am Ende ist mir suspekt. Egal ob Fritz oder Trix oder was auch immer davorsteht. Einzige Ausnahme: Matchbox
 
betateilchen schrieb:
${DIALSTATUS} solltest Du direkt nach dem dial() und vor allem in der gleichen extension abfragen. Und nicht erst in der "neuen" extension h, denn ein Hangup kann nur erfolgen, nachdem ein Answer erfolgt ist.
Hatte ich auch nach Dial() stehen.
Aber der nächste s,n,Befehl wird nicht mehr ausgeführt, sondern
es wird direkt zur h Extension gesprungen. So steht es jedenfalls bei mir auf
der Asterisk CLI.
Die Möglichkeiten "CANCEL" und "NOANSWER" sind im Dialplan vorhanden und
werden leider nicht angesprungen, weil Dial() $DIALSTATUS auf "ANSWER" setzt.
Ich habe nur die Möglichkeit über das GSM Gateway zu telefonieren und kenne
daher nicht die Returnwerte bei anderen Trunks. Wie gesagt, das GSM Gateway
wird über SIP angesprochen und diese Verbindung zwischen Asterisk und Gateway ist ja immer erfolgreich.


Gruß, Tom
 
Was für ein GSM-Gateway betreibst Du denn da und wie ist es angeschlossen? Wahrscheinlich unterstützt es kein 1-stage-dialing, sondern nimmt schon mal ab, bevor der eigentliche Ruf rausgeht. Das erklärt dann auch, dass jeder Anruf ANSWERED wurde.
 
TinTin schrieb:
Was für ein GSM-Gateway betreibst Du denn da und wie ist es angeschlossen? Wahrscheinlich unterstützt es kein 1-stage-dialing, sondern nimmt schon mal ab, bevor der eigentliche Ruf rausgeht. Das erklärt dann auch, dass jeder Anruf ANSWERED wurde.
Oh, vergessen zu erwähnen: MV-372 von Portech
Ist auch auf 1-stage konfiguriert. Die Nummer wird ohne Prefix angegeben.

Gruß, Tom
 
Ich kenne das MV-372 nicht, würde aber empfehlen die Logs des GSM Gateways zu analysieren, denn Asterisk liefert nur ANSWER zurück, wenn auch wirklich ein ANSWER stattfindet. Da Du im Dialplan keins hast, =muß= es das GSM Gateway sein, was abnimmt =oder= ein anderes zwischengeschaltetes Gerät. Ich hatte das Problem mal mit einem SPA-3000, welches bei ausgehenden Anrufen leider auch immer erst selbst abnimmt.
 
Das MV-372 hat keine Logs. Es ist nur eine Box mit Webinterface.
Man könnte aber den Ethernetverkehr abhören.
 
Problem gelöst

In dem MV-372 Gateway gibt es einen LAN Answer Mode, und der
stand bei mir auf "Income". Bedeutet, dass eine Anfrage vom LAN
direkt bearbeitet wird und zu einem Connect führt. Daher der "ANSWER".
Stellt man den LAN Answer Mode auf "Answered" hat man in der CDR
nun "ANSWERED" oder "NO ANSWER", je nachdem ob das Gespräch zustande kam.

Nachteil:
Der "Attempting native bridge" kommt später und man verpasst
unter Umständen 1-2 Sekunden des Gespräches.

Danke für die Beiträge,
Tom.
 
Der "Attempting native bridge" kommt später

Das kannst Du abstellen, wenn Du "canreinvite=no" in der sip.conf verwendest.
 
Leider nein.
In der sip.conf haben alle Einträge den canreinvite=no.
Die Logausgabe sieht so aus:

-- SIP/trunk1 is ringing
-- SIP/trunk1 answered SIP/211
-- Attempting native bridge of SIP/211 and SIP/trunk1

In der Praxis sieht das so aus, dass es beim Caller noch klingelt
obwohl der Angerufene schon abgehoben hat. Und dabei vergehen
halt 1-2 Sekunden vom Gesprächsanfang.

Gruß, Tom
 
Kostenlos!

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
248,471
Beiträge
2,292,176
Mitglieder
377,914
Neuestes Mitglied
Thiemo1968