<> <> <> <> <<>> DIRECTORY RecordingServiceRegister, ThPartyPrivate USING [ RegisterLocal ], Thrush USING [ ActionReport, ConvEvent, Credentials, NB, NetAddress, nullID, PartyID, ROPE, SHHH, SmartsID, unencrypted ], ThSmarts, ThSmartsRpcControl USING [ InterfaceRecord, NewInterfaceRecord ], VoiceUtils USING [ OwnNetAddress, Report ] ; BluejayRegisterLocalImpl: CEDAR PROGRAM IMPORTS RecordingServiceRegister, ThPartyPrivate, ThSmarts, ThSmartsRpcControl, VoiceUtils EXPORTS RecordingServiceRegister = { BluejayRegister: PUBLIC PROC[bluejayInstance, thrushInstance, serverPassword: Thrush.ROPE] RETURNS [nb: Thrush.NB, credentials: Thrush.Credentials] = { smartsInterface: ThSmartsRpcControl.InterfaceRecord; RecordingServiceRegister.jayShh _ Thrush.unencrypted; RecordingServiceRegister.interfaceIsImported_TRUE; <<>> <> smartsInterface _ ThSmartsRpcControl.NewInterfaceRecord[]; smartsInterface.clientStubProgress _ Progress; smartsInterface.clientStubReportAction _ ReportAction; smartsInterface.clientStubSubstitution _ Substitution; [nb, credentials] _ ThPartyPrivate.RegisterLocal[ rName: "recording", type: $service, interfaceRecord: smartsInterface, properties: [role: $voiceTerminal, netAddress: VoiceUtils.OwnNetAddress[]] ]; IF nb#$success THEN { VoiceUtils.Report["Bluejay registration failed", $Bluejay]; }; }; <>> Progress: PROC[ interface: ThSmartsRpcControl.InterfaceRecord, shh: Thrush.SHHH, convEvent: Thrush.ConvEvent ] = { ThSmarts.Progress[shh, convEvent]; }; ReportAction: PROC[ interface: ThSmartsRpcControl.InterfaceRecord, shh: Thrush.SHHH_Thrush.unencrypted, report: Thrush.ActionReport ] = { ThSmarts.ReportAction[shh, report]; }; <<>> Substitution: PROC[ interface: ThSmartsRpcControl.InterfaceRecord, shh: Thrush.SHHH_Thrush.unencrypted, convEvent: Thrush.ConvEvent, oldPartyID: Thrush.PartyID, newPartyID: Thrush.PartyID ] = { ThSmarts.Substitution[shh, convEvent, oldPartyID, newPartyID]; }; }. <> <> <> <> < service, Jay=>Recording>> <> <> <> <> <> <> <> <> <> <> <<>>