- 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?
Viele Grüße
Marc
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