Skip to content

Commit

Permalink
feature(dialer): adds link to api for dialer
Browse files Browse the repository at this point in the history
  • Loading branch information
jtalborough committed Nov 15, 2022
1 parent 984a50a commit 443b337
Show file tree
Hide file tree
Showing 2 changed files with 303 additions and 1 deletion.
60 changes: 60 additions & 0 deletions ConvergeProDspPlugin/ConvergeProDsp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,66 @@ public override void LinkToApi(BasicTriList trilist, uint joinStart, string join
trilist.SetSigTrueAction(joinMap.PresetRecall.JoinNumber + x, () => RunPreset(thisPreset));
x++;
}
// VoIP Dialer
uint lineOffset = 0;
foreach (var line in Dialers)
{
var dialer = line;

var dialerLineOffset = lineOffset;
Debug.Console(0, "AddingDialerBridge {0} {1} Offset", dialer.Key, dialerLineOffset);


for (var i = 0; i < joinMap.KeypadNumeric.JoinSpan; i++)
{
var tempi = i;

trilist.SetSigTrueAction((joinMap.KeypadNumeric.JoinNumber + (uint)i + dialerLineOffset), () => dialer.Value.SendKeypad((ConvergeProDspDialer.EKeypadKeys)(tempi)));
}

// from SiMPL > to Plugin
trilist.SetSigTrueAction((joinMap.KeypadStar.JoinNumber + dialerLineOffset), () => dialer.Value.SendKeypad(ConvergeProDspDialer.EKeypadKeys.Star));
trilist.SetSigTrueAction((joinMap.KeypadPound.JoinNumber + dialerLineOffset), () => dialer.Value.SendKeypad(ConvergeProDspDialer.EKeypadKeys.Pound));
trilist.SetSigTrueAction((joinMap.KeypadClear.JoinNumber + dialerLineOffset), () => dialer.Value.SendKeypad(ConvergeProDspDialer.EKeypadKeys.Clear));
trilist.SetSigTrueAction((joinMap.KeypadBackspace.JoinNumber + dialerLineOffset), () => dialer.Value.SendKeypad(ConvergeProDspDialer.EKeypadKeys.Backspace));
// from SiMPL > to Plugin
trilist.SetSigTrueAction(joinMap.KeypadDial.JoinNumber + dialerLineOffset, () => dialer.Value.Dial());
trilist.SetStringSigAction(joinMap.DialString.JoinNumber + dialerLineOffset, dialer.Value.Dial);
trilist.SetSigTrueAction(joinMap.DoNotDisturbToggle.JoinNumber + dialerLineOffset, () => dialer.Value.DoNotDisturbToggle());
trilist.SetSigTrueAction(joinMap.DoNotDisturbOn.JoinNumber + dialerLineOffset, () => dialer.Value.DoNotDisturbOn());
trilist.SetSigTrueAction(joinMap.DoNotDisturbOff.JoinNumber + dialerLineOffset, () => dialer.Value.DoNotDisturbOff());
trilist.SetSigTrueAction(joinMap.AutoAnswerToggle.JoinNumber + dialerLineOffset, () => dialer.Value.AutoAnswerToggle());
trilist.SetSigTrueAction(joinMap.AutoAnswerOn.JoinNumber + dialerLineOffset, () => dialer.Value.AutoAnswerOn());
trilist.SetSigTrueAction(joinMap.AutoAnswerOff.JoinNumber + dialerLineOffset, () => dialer.Value.AutoAnswerOff());
trilist.SetSigTrueAction(joinMap.EndCall.JoinNumber + dialerLineOffset, () => dialer.Value.EndAllCalls());
//trilist.SetSigTrueAction(joinMap.IncomingCallAccept.JoinNumber + dialerLineOffset, () => dialer.Value.AcceptCall());
//trilist.SetSigTrueAction(joinMap.IncomingCallReject.JoinNumber + dialerLineOffset, () => dialer.Value.RejectCall());

// from SIMPL > to Plugin
trilist.SetStringSigAction(joinMap.DialString.JoinNumber + dialerLineOffset, directDialString => dialer.Value.Dial(directDialString));

// from Plugin > to SiMPL
dialer.Value.DoNotDisturbFeedback.LinkInputSig(trilist.BooleanInput[joinMap.DoNotDisturbToggle.JoinNumber + dialerLineOffset]);
dialer.Value.DoNotDisturbFeedback.LinkInputSig(trilist.BooleanInput[joinMap.DoNotDisturbOn.JoinNumber + dialerLineOffset]);
dialer.Value.DoNotDisturbFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.DoNotDisturbOff.JoinNumber + dialerLineOffset]);

// from Plugin > to SiMPL
dialer.Value.AutoAnswerFeedback.LinkInputSig(trilist.BooleanInput[joinMap.AutoAnswerToggle.JoinNumber + dialerLineOffset]);
dialer.Value.AutoAnswerFeedback.LinkInputSig(trilist.BooleanInput[joinMap.AutoAnswerOn.JoinNumber + dialerLineOffset]);
dialer.Value.AutoAnswerFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.AutoAnswerOff.JoinNumber + dialerLineOffset]);
dialer.Value.CallerIdNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.CallerIdNumberFb.JoinNumber + dialerLineOffset]);

// from Plugin > to SiMPL
dialer.Value.OffHookFeedback.LinkInputSig(trilist.BooleanInput[joinMap.KeypadDial.JoinNumber + dialerLineOffset]);
dialer.Value.OffHookFeedback.LinkInputSig(trilist.BooleanInput[joinMap.OffHook.JoinNumber + dialerLineOffset]);
dialer.Value.OffHookFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.OnHook.JoinNumber + dialerLineOffset]);
dialer.Value.DialStringFeedback.LinkInputSig(trilist.StringInput[joinMap.DialString.JoinNumber + dialerLineOffset]);

// from Plugin > to SiMPL
dialer.Value.IncomingCallFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IncomingCall.JoinNumber + dialerLineOffset]);

lineOffset = lineOffset + 50;
}
}

public BoolFeedback IsOnline { get { return _commMonitor.IsOnlineFeedback; } }
Expand Down
244 changes: 243 additions & 1 deletion ConvergeProDspPlugin/ConvergeProDspJoinMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,249 @@ public class ConvergeProDspJoinMap : JoinMapBaseAdvanced

#endregion

public ConvergeProDspJoinMap(uint joinStart)
#region Dialer
[JoinName("IncomingCall")]
public JoinDataComplete IncomingCall =
new JoinDataComplete(new JoinData { JoinNumber = 3100, JoinSpan = 1 },
new JoinMetadata
{
Description = "Call Incoming",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("Answer")]
public JoinDataComplete Answer =
new JoinDataComplete(new JoinData { JoinNumber = 3106, JoinSpan = 1 },
new JoinMetadata
{
Description = "Answer Incoming Call",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("EndCall")]
public JoinDataComplete EndCall =
new JoinDataComplete(new JoinData { JoinNumber = 3107, JoinSpan = 1 },
new JoinMetadata
{
Description = "End Call",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("KeyPadNumeric")]
public JoinDataComplete KeypadNumeric =
new JoinDataComplete(new JoinData { JoinNumber = 3110, JoinSpan = 10 },
new JoinMetadata
{
Description = "Keypad Digits 0-9",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("KeypadStar")]
public JoinDataComplete KeypadStar =
new JoinDataComplete(new JoinData { JoinNumber = 3120, JoinSpan = 1 },
new JoinMetadata
{
Description = "Keypad *",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("KeypadPound")]
public JoinDataComplete KeypadPound =
new JoinDataComplete(new JoinData { JoinNumber = 3121, JoinSpan = 1 },
new JoinMetadata
{
Description = "Keypad #",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("KeypadClear")]
public JoinDataComplete KeypadClear =
new JoinDataComplete(new JoinData { JoinNumber = 3122, JoinSpan = 1 },
new JoinMetadata
{
Description = "Keypad Clear",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("KeypadBackspace")]
public JoinDataComplete KeypadBackspace =
new JoinDataComplete(new JoinData { JoinNumber = 3123, JoinSpan = 1 },
new JoinMetadata
{
Description = "Keypad Backspace",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("KeypadDial")]
public JoinDataComplete KeypadDial =
new JoinDataComplete(new JoinData { JoinNumber = 3124, JoinSpan = 1 },
new JoinMetadata
{
Description = "Keypad Dial and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("AutoAnswerOn")]
public JoinDataComplete AutoAnswerOn =
new JoinDataComplete(new JoinData { JoinNumber = 3125, JoinSpan = 1 },
new JoinMetadata
{
Description = "Auto Answer On and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("AutoAnswerOff")]
public JoinDataComplete AutoAnswerOff =
new JoinDataComplete(new JoinData { JoinNumber = 3126, JoinSpan = 1 },
new JoinMetadata
{
Description = "Auto Answer Off and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("AutoAnswerToggle")]
public JoinDataComplete AutoAnswerToggle =
new JoinDataComplete(new JoinData { JoinNumber = 3127, JoinSpan = 1 },
new JoinMetadata
{
Description = "Auto Answer Toggle and On Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("OnHook")]
public JoinDataComplete OnHook =
new JoinDataComplete(new JoinData { JoinNumber = 3129, JoinSpan = 1 },
new JoinMetadata
{
Description = "On Hook Set and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("OffHook")]
public JoinDataComplete OffHook =
new JoinDataComplete(new JoinData { JoinNumber = 3130, JoinSpan = 1 },
new JoinMetadata
{
Description = "Off Hook Set and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("DoNotDisturbToggle")]
public JoinDataComplete DoNotDisturbToggle =
new JoinDataComplete(new JoinData { JoinNumber = 3132, JoinSpan = 1 },
new JoinMetadata
{
Description = "Do Not Disturb Toggle and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("DoNotDisturbOn")]
public JoinDataComplete DoNotDisturbOn =
new JoinDataComplete(new JoinData { JoinNumber = 3133, JoinSpan = 1 },
new JoinMetadata
{
Description = "Do Not Disturb On Set and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("DoNotDisturbOff")]
public JoinDataComplete DoNotDisturbOff =
new JoinDataComplete(new JoinData { JoinNumber = 3134, JoinSpan = 1 },
new JoinMetadata
{
Description = "Do Not Disturb Of Set and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
});

[JoinName("CallState")]
public JoinDataComplete CallState =
new JoinDataComplete(new JoinData { JoinNumber = 3100, JoinSpan = 1 },
new JoinMetadata
{
Description = "Call State Feedback",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Analog
});

[JoinName("DialString")]
public JoinDataComplete DialString =
new JoinDataComplete(new JoinData { JoinNumber = 3100, JoinSpan = 1 },
new JoinMetadata
{
Description = "Dial String Send and Feedback",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Serial
});

[JoinName("Label")]
public JoinDataComplete Label =
new JoinDataComplete(new JoinData { JoinNumber = 3101, JoinSpan = 1 },
new JoinMetadata
{
Description = "Dialer Label",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});

[JoinName("LastNumberDialerFb")]
public JoinDataComplete LastNumberDialerFb =
new JoinDataComplete(new JoinData { JoinNumber = 3102, JoinSpan = 1 },
new JoinMetadata
{
Description = "Last Number Dialed Feedback",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});

[JoinName("CallerIdNumberFb")]
public JoinDataComplete CallerIdNumberFb =
new JoinDataComplete(new JoinData { JoinNumber = 3104, JoinSpan = 1 },
new JoinMetadata
{
Description = "Caller ID Number",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});

[JoinName("CallerIdNameFb")]
public JoinDataComplete CallerIdNameFb =
new JoinDataComplete(new JoinData { JoinNumber = 3105, JoinSpan = 1 },
new JoinMetadata
{
Description = "Caller ID Name",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});

[JoinName("DisplayNumber")]
public JoinDataComplete DisplayNumber =
new JoinDataComplete(new JoinData { JoinNumber = 3106, JoinSpan = 1 },
new JoinMetadata
{
Description = "This Line's Number",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});
#endregion

public ConvergeProDspJoinMap(uint joinStart)
: base(joinStart, typeof(ConvergeProDspJoinMap))
{
}
Expand Down

0 comments on commit 443b337

Please sign in to comment.