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;
Register First Jay Party.
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];
};
};
BluejayRegister.nb~$ <a variety of bad problems, none recoverable>
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]; };