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
@@ -79,6 +79,17 @@ export type QueueLive = {
|
||||
}[];
|
||||
};
|
||||
|
||||
/** A call waiting in a parking slot (dial the slot to pick it up). */
|
||||
export type ParkedLive = {
|
||||
slot: string;
|
||||
linkedid: string;
|
||||
callerNumber: string;
|
||||
callerName?: string;
|
||||
since: string;
|
||||
/** The extension that parked it. */
|
||||
parkedBy?: string;
|
||||
};
|
||||
|
||||
export type LiveSnapshot = {
|
||||
extensions: ExtensionLive[];
|
||||
/** Admins only. */
|
||||
@@ -87,8 +98,8 @@ export type LiveSnapshot = {
|
||||
calls?: ActiveCall[];
|
||||
/** Admins: every queue; users: the queues they are a member of. */
|
||||
queues: QueueLive[];
|
||||
/** Parked calls arrive with M8-T2. */
|
||||
parked?: never[];
|
||||
/** Everyone sees every parked call. */
|
||||
parked: ParkedLive[];
|
||||
ami: { connected: boolean };
|
||||
};
|
||||
|
||||
@@ -106,6 +117,8 @@ export type LiveMessage =
|
||||
/** Admins and the queue's members. */
|
||||
| { type: 'queue.updated'; data: QueueLive }
|
||||
| { type: 'queue.removed'; data: { number: string } }
|
||||
| { type: 'parked.updated'; data: ParkedLive }
|
||||
| { type: 'parked.removed'; data: { slot: string } }
|
||||
/** Only to the mailbox owner. */
|
||||
| { type: 'voicemail.new'; data: VoicemailDto & { userId: string } }
|
||||
/** A short message for one user (e.g. "forwarding refused"). */
|
||||
|
||||
Reference in new issue
Block a user