[Gelöst] hangup wird nicht registriert nicht solange Audio Playback

golemleser

Neuer User
Mitglied seit
8 Jul 2007
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo!

Kurze Beschreibung meines Szenarios:
- User1 loggst sich in meinem Server (Asterisk 14.7.6. auf CentOS 7.6) ein
- User2 wird vom Server aus angerufen
- Beide User werden in eine MeetMe-Conference "gesteckt"
- per sh-Skript wird eine .call Datei erzeugt und in den Conference-Ordner verschoben. Diese Datei startet ein Audio-Playback einer sln-Datei, ewelche dann für beide Teilnehmer zu hören ist

Problem:
Solange das Audio-Playback läuft, registriert Asterisk nicht, wenn der Angerufene (User2) das Telefonat beendet. Vor dem Abspielen und nach Beendigung desselben klappt es. Ich hatte gelesen, dass "Playback" das Commando an Asterisk erst zurückgibt, wenn das Playback beendet ist. Also habe ich es statt mit "Playback" mit "Background" versucht. Audio wird abgespielt, aber das "hangup" Ereignis wird auch hier nicht registriert. Hat einer eine Idee?

Code:
[separator]
exten => s,1,Goto(fun1,s,1)
exten => s,2,Goto(fun2,s,1)


[fun1]
exten => s,1,NoOp(Data 1: CONF=${CONF} INIT_CHANNEL=${INIT_CHANNEL})
exten => s,n,MeetMe(${CONF},Akmqd)
exten => s,n,Hangup

[fun2]
exten => s,1,NoOp(Data 2: CONF=${CONF} INIT_CHANNEL=${INIT_CHANNEL})
exten => s,n,Wait(0.5)
exten => s,n,MeetMe(${CONF},kxqd)
exten => s,n,AGI(kill_channel.sh,${INIT_CHANNEL})
exten => s,n,NoOp("NOT_IN_THE_MEETME")
exten => s,n,Hangup

[inject-sound]
exten => s,1,MeetMe(${CONF},qd)
exten => s,n,NoOp("AFTER MEETME")

PHP:
exec('echo "Channel: Local/s@inject-sound" > /tempcids/'.$cidf);
exec('echo "Application: Background" >> /tempcids/'.$cidf);
exec('echo "Data: /var/lib/asterisk/sounds/en/'.$ac.'" >> /tempcids/'.$cidf);
exec('echo "Archive: Yes" >> /tempcids/'.$cidf);
exec('echo "Set: CONF='.$cid.'" >> /tempcids/'.$cidf);
exec('mv /tempcids/'.$cidf.' /var/spool/asterisk/outgoing');

Viele Grüße
Marc
 
Konnte mein Problem lösen mit Hilfe von 'h':

Code:
[fun2]
exten => s,1,NoOp(Data 2: CONF=${CONF} INIT_CHANNEL=${INIT_CHANNEL})
exten => s,n,Wait(0.5)
exten => s,n,MeetMe(${CONF},kxqd)
exten => s,n,AGI(kill_channel.sh,${INIT_CHANNEL})
exten => s,n,NoOp("NOT_IN_THE_MEETME")
exten => s,n,Hangup
exten => h,1,AGI(kill_channel.sh,${INIT_CHANNEL})

Viele Grüße
Marc
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.