mirror of
https://github.com/Jeuners/Logpy-AgentOne.git
synced 2026-09-15 17:56:12 +02:00
Manche Provider (Fonial/Plusnet) klingeln bei einer Durchwahl parallel an mehreren registrierten Zielen. Ohne Verzoegerung gewinnt AgentOne das Rennen immer, weil answer() sofort laeuft - das eigentliche Endgeraet kommt nie zum Klingeln. DW3_DDI in der .env schaltet 20s Wartezeit vor answer() frei, erkannt ueber den SIP-Header X-ORIGINAL-DDI-URI (destination_number ist bei diesem Trunk unbrauchbar). Nimmt jemand am Endgeraet ab, bricht der Provider AgentOnes Versuch per CANCEL ab; sonst laeuft der Dialplan normal weiter zu Ansage+Aufnahme. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ovr91y2VK8bYYKPimcX68
30 lines
1.7 KiB
Smarty
30 lines
1.7 KiB
Smarty
<include>
|
|
<!-- Durchwahl 3: Fonial klingelt bei dieser DDI offenbar PARALLEL an
|
|
AgentOne und an MainMacPhone (dem Endgeraet mit Durchwahl 3). Ohne
|
|
diese Regel beantwortet AgentOne jeden Anruf sofort (answer() ist die
|
|
erste Aktion in 00_praxis_ab.xml, keine Verzoegerung davor) - AgentOne
|
|
gewinnt das Rennen daher immer, bevor am anderen Mac ueberhaupt
|
|
geklingelt hat. deflect() (siptrace-verifiziert: nie tatsaechlich ein
|
|
302 verschickt) hat rein zufaellig als Wartezeit gewirkt und damit
|
|
MainMacPhone eine Chance gegeben.
|
|
Diese Regel macht das Warten explizit: bei erkannter DW3
|
|
(X-ORIGINAL-DDI-URI, da destination_number bei diesem Trunk
|
|
unbrauchbar ist) erstmal nur schlafen. Nimmt jemand an MainMacPhone
|
|
ab, schickt Plusnet ein CANCEL - der Kanal wird beendet, bevor der
|
|
sleep() zu Ende ist, alles Weitere unten laeuft nie. Nimmt niemand ab,
|
|
laeuft der Dialplan nach dem sleep() normal weiter zur Ansage+Aufnahme,
|
|
identisch zu AgentOnes Anrufbeantworter (00_praxis_ab.xml). -->
|
|
<extension name="dw3_warten">
|
|
<condition field="${sip_h_X-ORIGINAL-DDI-URI}" expression="@@DW3_DDI@@">
|
|
<action application="sleep" data="20000"/>
|
|
<action application="set" data="record_stereo=false"/>
|
|
<action application="set" data="RECORD_ANSWER_REQ=true"/>
|
|
<action application="answer"/>
|
|
<action application="sleep" data="700"/>
|
|
<action application="playback" data="@@PROJEKT@@/telefon/ansage.wav"/>
|
|
<action application="record"
|
|
data="@@PROJEKT@@/telefon/eingang/${strftime(%Y%m%d-%H%M%S)}_${caller_id_number}.wav 120 200 4"/>
|
|
<action application="hangup"/>
|
|
</condition>
|
|
</extension>
|
|
</include>
|