Abarbeitung nach NOANSWER

H8Ball

Neuer User
Mitglied seit
25 Mai 2010
Beiträge
46
Punkte für Reaktionen
0
Punkte
0
Guten Abend zusammen.

Ich bin mal wieder ein wenig am basteln.
Ich will dass meine Handynummer über SIP-Provider angerufen wird.
nach 30Sec. soll er, dann im DailPlan weiter machen.

Code:
exten => 99,1,Dial(SIP/0152.....@sip_raus,30,g)
exten 99,2,Playback(nicht-erreichbar)
exten 99,3,Dial(SIP/068.......)

Leider bricht er nach 30Sec. ab mit folgender Meldung
Code:
Nobody picked up in 30000 ms
    -- Auto fallthrough, channel 'SIP/sip_rein-00000048' status is 'NOANSWER'

Wie kann ich ihn dazu bringen nicht den ganzen Vorgang abzubrechen, sondern weiter zu machen im Dialplan?

Vielen Dank.

Daniel
 
Hi Daniel

da fehlt => in Priority 2 und 3.
Code:
exten => 99,1,Dial(SIP/0152.....@sip_raus,30,g)
exten => 99,2,Playback(nicht-erreichbar)
exten => 99,3,Dial(SIP/068.......)
oder so
Code:
exten => 99,1,Dial(SIP/0152.....@sip_raus,30,g)
       same => 2,Playback(nicht-erreichbar)
       same => 3,Dial(SIP/068.......)
 
Schande über mein Haupt.

Ich hatte natürlich die "=>" drin. Ich habe aber den Tippfehler nicht gesehen. In der zweiten Zeile stand

Exten == 99....

Vielen Dank für den leichten Schlag an den Hinterkopf
 
Zuletzt bearbeitet:
immer gerne ... *Schag* ... ;)
 
Das klappt ja nun genau so wie ich will.
Nur ruft er auch die andere Nummer an wenn einer der Teilnehmer nach dem Gespräch auflegt.
Wie mache ich denn das noch?
 
Hi Daniel,

das ist die Dial Option g !!!!

g: When the called party hangs up, continue to execute commands in the current context at the next priority.

Code:
exten => 99,1,Dial(SIP/0152.....@sip_raus,30,g) #[B] DAS g LÖSCHEN[/B]
exten => 99,2,Playback(nicht-erreichbar)
exten => 99,3,Dial(SIP/068.......)

Quelle: http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial
 
Zuletzt bearbeitet:
Das hat jetzt alles wunderbar geklappt, vielen Dank nochmal dafür.

Jetzt habe ich ein anderes Problem. Ich nehme das Gespräch auf.
Asterisk arbeitet alles ab, und ruft auch das Script auf dass die beiden Wave Dateien zu einer MP3 zusammenschneidet, und sie per Email verschickt.

Wenn ich das genannte Script von Hand aufrufe, macht es auch genau das was es soll.
Wenn Asterisk es aufruft, wird dieser Befehl nicht richtig ausgeführt.
Code:
sox -M ...-in.wav ...-out.wav ....mp3
Woran kann das liegen?
 
Hi H8Ball

teste mal den kompletten Path zum sox "/usr/bin/sox"

Code:
[B]/usr/bin/[/B]sox -M ...-in.wav ...-out.wav ....mp3
 
Zuletzt bearbeitet:
Nein, das bringt auch nichts, er erzeugt die neue Datei ja auch wie er soll, aber sie hat keinen Inhalt :(
 
Füge mal ein ">/tmp/stdout 2>/tmp/stderr" an den sox Aufruf im Dialplan. Eventuell spuckt sox Dir dann einen Fehlergrund aus.
 
Leider bleiben beide Dateien in /tmp leer :(
 
Hier mal meine extension.conf

Code:
exten => 100,1,Playback(werden-verbunden)
exten => 100,n,Playback(mitschnitt)
exten => 100,n,Set(RECNAME=Name-${STRFTIME(${EPOCH},,%d.%m.%Y-%H_%M_%S)})
exten => 100,n,Monitor(wav,${RECNAME},b)
#exten => 100,n,Dial(SIP/0171@sip_raus,30,A(provision))
exten => 100,n,Dial(SIP/8001,30,gA(provision))
exten => 100,n,System(/home/records.sh ${RECNAME} [email protected] ${CALLDT})
#exten => 100,n,Playback(keine-antwort)
#exten => 100,n,Dial(SIP/01716800078@sip_raus)
exten => 100,n,Hangup()

hier das Skript das aufgerufen wird

Code:
#!/bin/bash

empf=$2
name=$1
calldate=$3

cd /var/spool/asterisk/monitor/

sql="SELECT clid FROM cdr WHERE calldate='$calldate'"
calldtdb=$(mysql -b -h 127.0.0.1 --user=asterisk --password=Telefon1 asterisk -e "$sql")

clid=$(echo $calldtdb |awk -F ' ' '{print $2}')

/usr/bin/sox -M "$name"-in.wav "$name"-out.wav "$name".mp3

uuencode "$name".mp3 "$name".mp3 > "$name"sent.mp3

mail -s $clid -a FROM:"Telefonanfrage <[email protected]>" [email protected] < "$name"sent.mp3
mail -s $clid -a FROM:"Telefonanfrage <[email protected]>" $empf < "$name"sent.mp3

#rm -rf *.wav

#rm -rf "$name".mp3

#mv *.mp3 /home/recordings/sent/
 
nur eine Vermutung ...

läuft der asterisk mit user asterisk und group asterisk?
Hat der user asterisk in der group asterisk die Rechte sox zu starten?

Zu testen kannst du mal ein
Code:
chmod 777 /usr/bin/sox 
chmod 777 /home/records.sh
machen.

Gruß
Rainer
 
Nein, leider bringt das auch keinen Erfolg.
Ich hatte auch schon testweise als root:root laufen lassen, hat auch nicht geholfen.
 
lasse dein Script mit den 2 zusaetzl. Zeilen mal so beginnen:
Code:
#!/bin/bash

exec >> /tmp/log 2>&1
set -x

empf=$2
[...]

uns checke was im log steht
 
Zuletzt bearbeitet:
Denken Drücken Sprechen ...

Es funktioniert nun, das Skript hat gepasst. Ein StopMonitor vor Aufruf des Scripts, schließt auch die Kanäle, und somit kann man sie auch zu einer MP3 konvertieren ;)
 
Kostenlos!

Statistik des Forums

Themen
248,856
Beiträge
2,302,980
Mitglieder
378,504
Neuestes Mitglied
Hallo61Hallo