DetectAction

View as Markdown

Relay.Calling.DetectAction

This object returned from one of asynchronous detect methods that represents a running detector on the call.

Methods-submenu

GetResult

Returns the final detector result.

Parameters

None

Returns

DetectResult

Relay.Calling.DetectResult - Final detector result.

Examples

Trying detecting DTMF and grab the result when it’s completed.

1var det signalwire.DetectMachineParams
2
3detectMachineAction, err := resultDial.Call.DetectMachineAsync(&det)
4if err != nil {
5 signalwire.Log.Error("Error occurred while trying to start answering machine detector")
6}
7
8time.Sleep(15 * time.Second)
9
10if !detectMachineAction.GetCompleted() {
11 detectMachineAction.Stop()
12}
13
14for {
15 time.Sleep(1 * time.Second)
16
17 if detectMachineAction.GetCompleted() {
18 signalwire.Log.Info("Machine Detection Successful(%v)\n", detectMachineAction.GetSuccessful())
19 break
20 }
21
22 signalwire.Log.Info("Last Machine event: %s Result: %v\n", detectMachineAction.GetDetectorEvent().String(), detectMachineAction.GetResult())
23}

GetCompleted

Return true if detector has finished, false otherwise.

Parameters

None

Returns

Boolean - True/False accordingly to the state.

Examples

Trying detecting DTMF and check if it has finished.

1var det signalwire.DetectMachineParams
2detectMachineAction, err := resultDial.Call.DetectMachineAsync(&det)
3if err != nil {
4 signalwire.Log.Error("Error occurred while trying to start answering machine detector")
5}
6if !detectMachineAction.GetCompleted() {
7 detectMachineAction.Stop()
8}

Stop

Stop the action immediately.

Parameters

None

Returns

StopResult

Examples

Trying detecting a machine and then stop the action.

1var det signalwire.DetectMachineParams
2detectMachineAction, err := resultDial.Call.DetectMachineAsync(&det)
3if err != nil {
4 signalwire.Log.Error("Error occurred while trying to start answering machine detector")
5}
6detectMachineAction.Stop()

GetControlID

Return the UUID to identify the action.

Parameters

None

Returns

string - UUID to identify the action.

Examples

Start a detector and print the controlId.

1var det signalwire.DetectMachineParams
2detectMachineAction, err := resultDial.Call.DetectMachineAsync(&det)
3if err != nil {
4 signalwire.Log.Error("Error occurred while trying to start answering machine detector")
5}
6Signalwire.Log.Info("Detector ControlID: %s\n", detectMachineAction.GetControlID())