parking: parked calls live, on the dashboard and Home, pick up from Home
res_parking was configured in M0 (700, slots 701-720, slot hints); this makes parked calls visible. ParkingTracker loads ParkedCalls and follows ParkedCall/UnParkedCall/ParkedCallTimeOut/ParkedCallGiveUp; everyone gets parked.updated/parked.removed. Who parked comes from ParkerDialString. A blind transfer to 700 parks without running Park() in the dialplan, so the live call's "parked" state now comes from those events by ParkeeLinkedid; the picking-up phone runs ParkedCall() while talking, which no longer counts as parked. Web: "Parked calls" on the Dashboard and on Home, where "Pick up 701" calls the slot like Call back (softphone, or the desk phone first). CDR fixture park-pickup (recorded: 101 parks an inbound call, 103 picks it up); the call counts as answered by 101 with 103 in rang. e2e m8-t2 with real phones: park by blind transfer, hint InUse, both lists, pick up from Home, a second park on 702 (findslot = next) picked up by dialing it from another phone. Specs 01/04/05 note what was verified. Task: M8-T2
This commit is contained in:
1 parent
2d9f8ed99e
commit
863a9d121c
21 files changed
+635
-23
No files matched your search
@@ -56,8 +56,8 @@ describe.skipIf(!hasTestDb)('call history API', () => {
|
||||
destination: { type: 'hangup' },
|
||||
label: n === '1234' ? 'Main line' : null,
|
||||
});
|
||||
// The M7 scenarios; queue calls (M8) are checked in cdr.test.ts and queues.test.ts.
|
||||
for (const f of readdirSync(FIXTURES).filter((f) => !f.startsWith('queue-'))) {
|
||||
// The M7 scenarios; queue and park calls (M8) are checked in cdr.test.ts.
|
||||
for (const f of readdirSync(FIXTURES).filter((f) => !/^(queue|park)-/.test(f))) {
|
||||
const events: AmiMessage[] = JSON.parse(readFileSync(new URL(f, FIXTURES), 'utf8'));
|
||||
for (const e of events) await t.db.insert(cdr).values(toCdrRow(e));
|
||||
await aggregateCall(t.db, String(events[0]!.LinkedID));
|
||||
|
||||
Reference in new issue
Block a user