Hallo Community,
ich versuche seit mehreren Tagen schon einen Goto in einer PHP-Applikation zu implementieren. Irgendwie scheitert das bei mir.
Der Grundgedanke: Ein Kunde ruft an und wird nach einer Kunden-Nummer gefragt, diese wird mittels einer API über HTTP-Request überprüft. (Ist bereits erledigt und funktioniert) Ist diese Korrekt, wird der Kunde zu einer Hotline (Warteschleife) intern umgeleitet. (Hier scheiterts)
Ich habe einmal die Queue (queues.conf):
Die Extension:
Und den ganz einfachen PHPAGI Script:
So weit, so gut... Wenn ich den PHPAGI unter der 06 anruf, wird der Anruf sofort gedroppt. Ich kann folgendes aus dem Log mitlesen:
Wenn ich allerdings eine einfache Extension einrichte unter z.b. Nummer 07:
... Dann funktioniert es komischerweise, obwohl der Goto-Befehl genau identisch ist.
An was könnte es liegen?
Vielen Dank!
Gruß,
Anton
Edit:
Asterisk 10.9.0
phpagi.php,v 2.14 2005/05/25
ich versuche seit mehreren Tagen schon einen Goto in einer PHP-Applikation zu implementieren. Irgendwie scheitert das bei mir.
Der Grundgedanke: Ein Kunde ruft an und wird nach einer Kunden-Nummer gefragt, diese wird mittels einer API über HTTP-Request überprüft. (Ist bereits erledigt und funktioniert) Ist diese Korrekt, wird der Kunde zu einer Hotline (Warteschleife) intern umgeleitet. (Hier scheiterts)
Ich habe einmal die Queue (queues.conf):
Code:
[CALLFLOW-382079049510b89eaecd10-QUEUE-18]
music = default
strategy=ringall
timeout=20
wrapuptime=60
ringinuse=no
periodic-announce = /storage/usbdisk1/askoziapbx/media/sounds/cfe/23-20130131-143311-0
periodic-announce-frequency = 30
announce-holdtime=no
joinempty=no
leavewhenempty=no
member => SIP/28
member => SIP/25
Die Extension:
Code:
[CALLFLOW-382079049510b89eaecd10]
; Askozia call flow - CALLFLOW-382079049510b89eaecd10
exten => CALLFLOW-START,1(module-1),Answer(0)
exten => CALLFLOW-START,n(module-45),Playback(/storage/usbdisk1/askoziapbx/media/sounds/cfe/23-20130131-145808-0)
exten => CALLFLOW-START,n(module-89),NoOp(TimeSwitch module: 13))
exten => CALLFLOW-START,n,GotoIfTime(08:30-16:55,mon-thu,*,*?module-18)
exten => CALLFLOW-START,n,GotoIfTime(08:30-13:55,fri,*,*?module-18)
exten => CALLFLOW-START,n,Goto(module-108)
exten => CALLFLOW-START,n(module-108),Goto(CFE-PHONE-UNIQUE-internalandexternal,08003301000,1)
exten => CALLFLOW-START,n(module-109),Hangup()
exten => CALLFLOW-START,n,QueueLog(CALLFLOW-382079049510b89eaecd10-QUEUE-18,${UNIQUEID},NONE,CALLERID,${CALLERID(all)},,${CUSTOM1},${CUSTOM2},${CUSTOM3})
exten => CALLFLOW-START,n(module-18),Queue(CALLFLOW-382079049510b89eaecd10-QUEUE-18,Ct,,,1200)
exten => CALLFLOW-START,n,QueueLog(CALLFLOW-382079049510b89eaecd10-QUEUE-18,${UNIQUEID},NONE,QUEUETIMEOUT,${CDR(duration)},${CDR(billsec)})
exten => CALLFLOW-START,n(module-67),Background(/storage/usbdisk1/askoziapbx/media/sounds/cfe/23-20130131-151418-0)
exten => CALLFLOW-START,n,WaitExten(10)
exten => 1,1(module-68),Goto(CALLFLOW-382079049510b89eaecd10-SUB-7,submodule,1)
exten => i,1(module-69),Goto(CALLFLOW-382079049510b89eaecd10-SUB-8,submodule,1)
[CALLFLOW-382079049510b89eaecd10-SUB-7]
exten => submodule,1(module-71),System(echo "Date: \`date\`" > /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "To: [email protected]" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "Subject: AskoziaPBX Benachrichtigung:Rückruf - Störung, Caller: ${CALLERID(all)}" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "From: AskoziaPBX call flow <[email protected]>" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "X-Mailer: AskoziaPBX" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "Content-Type: multipart/mixed\; boundary=\"EMAIL-062127284d6c4ec9e5ffc2ffa832e036\"\n" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "--EMAIL-062127284d6c4ec9e5ffc2ffa832e036" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "Content-Type: text/plain\; format=flowed\; charset=UTF-8" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "Content-Disposition: inline" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "Content-Transfer-Encoding: 8bit\n" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(echo "Störung: Ein Kunde wünscht um einen Rückruf nach einer längeren Wartezeit.\n\nDate: ${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}\nCaller ID: ${CALLERID(all)}\nDuration: ${ANSWEREDTIME}\n" >> /tmp/email-${
UNIQUEID})
exten => submodule,n,System(echo "--EMAIL-062127284d6c4ec9e5ffc2ffa832e036" >> /tmp/email-${UNIQUEID})
exten => submodule,n,System(/usr/bin/msmtp -C /etc/msmtp.conf -t < /tmp/email-${UNIQUEID})
exten => submodule,n,System(rm -f /tmp/email-${UNIQUEID})
exten => submodule,n(module-72),Playback(/storage/usbdisk1/askoziapbx/media/sounds/cfe/23-20130131-151008-0)
exten => submodule,n(module-73),Hangup()
[CALLFLOW-382079049510b89eaecd10-SUB-8]
exten => submodule,1(module-70),Hangup()
Und den ganz einfachen PHPAGI Script:
Code:
<?php
require('phpagi.php');
$agi = new AGI();
$agi->answer();
$agi->exec("Goto", "CALLFLOW-382079049510b89eaecd10,CALLFLOW-START,1");
$agi->hangup();
?>
So weit, so gut... Wenn ich den PHPAGI unter der 06 anruf, wird der Anruf sofort gedroppt. Ich kann folgendes aus dem Log mitlesen:
Code:
-- Executing [06@SIP-PHONE-1384179416504dff20be433:1] NoOp("SIP/23-00000926", "internal calling application: Stoerung Pruefung") in new stack
-- Executing [06@SIP-PHONE-1384179416504dff20be433:2] Set("SIP/23-00000926", "CDR(InternalCalleridNum)=06") in new stack
-- Executing [06@SIP-PHONE-1384179416504dff20be433:3] Goto("SIP/23-00000926", "DIALPLAN-APPLICATION-8347095074ff2eda27d93b,06,1") in new stack
-- Goto (DIALPLAN-APPLICATION-8347095074ff2eda27d93b,06,1)
== Extension Changed 23[internal] new state InUse for Notify User 25
-- Executing [06@DIALPLAN-APPLICATION-8347095074ff2eda27d93b:1] AGI("SIP/23-00000926", "DIALPLAN-APPLICATION-8347095074ff2eda27d93b.php") in new stack
-- Launched AGI Script /etc/asterisk/agi-bin/DIALPLAN-APPLICATION-8347095074ff2eda27d93b.php
-- AGI Script Executing Application: (Goto) Options: (CALLFLOW-382079049510b89eaecd10,CALLFLOW-START,1)
-- Goto (CALLFLOW-382079049510b89eaecd10,CALLFLOW-START,1)
-- <SIP/23-00000926>AGI Script DIALPLAN-APPLICATION-8347095074ff2eda27d93b.php completed, returning 4
== Spawn extension (CALLFLOW-382079049510b89eaecd10, CALLFLOW-START, 0) exited non-zero on 'SIP/23-00000926'
Wenn ich allerdings eine einfache Extension einrichte unter z.b. Nummer 07:
Code:
[DIALPLAN-APPLICATION-809297694510bb60504ec2]
exten => _[0-9a-zA-Z*#]!,1,Answer()
exten => _[0-9a-zA-Z*#]!,2,Goto(CALLFLOW-382079049510b89eaecd10,CALLFLOW-START,1)
exten => _[0-9a-zA-Z*#]!,3,Hangup()
exten => s,1,Answer()
exten => s,2,Goto(CALLFLOW-382079049510b89eaecd10,CALLFLOW-START,1)
exten => s,3,Hangup()
... Dann funktioniert es komischerweise, obwohl der Goto-Befehl genau identisch ist.
An was könnte es liegen?
Vielen Dank!
Gruß,
Anton
Edit:
Asterisk 10.9.0
phpagi.php,v 2.14 2005/05/25