Skip to main content

Relay.Calling.PlayAction

This object returned from one of asynchronous play methods that represents a playing currently active on a call.

Methods

getControlId

Return the UUID to identify the playing.

Available In:

Parameters

None

Returns

string - UUID to identify the action.

Examples

Start the play and print the controlId.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
echo $action->getControlId();
});

getPayload

Return the payload sent to Relay to initiate the request. Useful to inspect what you sent to perform this action.

Available In:

Parameters

None

Returns

Object - Payload sent to Relay.

Examples

Start the play and print out the payload.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
print_r($action->getPayload());
});

getResult

Returns the final result of the playing.

Available In:

Parameters

None

Returns

Relay.Calling.PlayResult - Final result of the playing.

Examples

Start the play and grab the result when it's completed.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
// .. later in the code since it's an async method
if ($action->isCompleted()) {
$result = $action->getResult();
}
});

getState

Return the current state of the playing.

Available In:

Parameters

None

Returns

string - Current state of the playing.

Examples

Start the play and print the state.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
echo $action->getState();
});

isCompleted

Return true if the playing has finished, false otherwise.

Available In:

Parameters

None

Returns

Boolean - True/False accordingly to the state.

Examples

Start the play and check if it has finished.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
if ($action->isCompleted()) {

}
});

pause

Pause the playback immediately.

Available In:

Parameters

None

Returns

React\Promise\Promise - Promise object that will be fulfilled with a Relay.Calling.PlayPauseResult object.

Examples

Start playing an audio file and pause it.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
// For demonstration purposes only..
$action->pause()->done(function($pauseResult) {
if ($pauseResult->successful) {

}
});
});

resume

Resume the playback immediately.

Available In:

Parameters

None

Returns

React\Promise\Promise - Promise object that will be fulfilled with a Relay.Calling.PlayResumeResult object.

Examples

Start playing an audio file, stop it and then resume it.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
// For demonstration purposes only..
$action->pause()->done(function($pauseResult) use ($action) {
// .. later in the code..
$action->resume()->done(function($resumeResult) {

});
});
});

Note: you can avoid the callback hell using these methods in a Relay.Consumer.

stop

Stop the action immediately.

Available In:

Parameters

None

Returns

React\Promise\Promise - Promise object that will be fulfilled with a Relay.Calling.StopResult object.

Examples

Start the play and stop it if an 'Agent' is not available.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) use ($globalAgent) {
if ($globalAgent->isAvailable() === false) {
$action->stop()->done(function($stopResult) {

});
}
});

volume

Control the volume of the playback.

Available In:

Parameters

volumenumberrequiredVolume value between -40dB and +40dB where 0 is unchanged.

Returns

React\Promise\Promise - Promise object that will be fulfilled with a Relay.Calling.PlayVolumeResult object.

Examples

Start the play and increase the playback volume.
<?php

$call->playAudioAsync('https://cdn.signalwire.com/default-music/welcome.mp3')->done(function($action) {
// For demonstration purposes only..
$action->volume(5.0)->done(function($volumeResult) {
if ($volumeResult->successful) {

}
});
});