# Asterisk UserEvent Contract Track 9 uses dialplan-generated `UserEvent` frames over AMI as the stable bridge contract between Asterisk and the platform. The bridge listens only for `UserEvent` names starting with `MVPCC`. ## `MVPCCCallStarted` Required fields: - `CallID` - `LinkedID` - `CallerNumber` - `CallerName` - `QueueCode` - `Extension` - `Context` - `Direction` Example: ```text Event: UserEvent UserEvent: MVPCCCallStarted CallID: 1740912000.12 LinkedID: 1740912000.12 CallerNumber: 1001 CallerName: Lab Caller QueueCode: voice_lab Extension: 7000 Context: from-softphones Direction: inbound ``` ## `MVPCCCallEnded` Required fields: - `CallID` - `LinkedID` - `HangupCause` - `DurationSeconds` ## `MVPCCRecordingReady` Required fields: - `CallID` - `LinkedID` - `RemotePath` - `FileName` - `MimeType` - `DurationSeconds` Notes: - `RemotePath` is the absolute path on the Asterisk Linux VM. - The platform downloads the file over SFTP, then uploads it into `recording-service`.