secondary call
Determines the pages and properties relating to the outbound (secondary) call made during a connect or connect to conference action:
Used by actions connect, connect to conference
language wrappers and examples
It contains the following properties:
Property | Required/Optional | Default | Description |
---|---|---|---|
call recording | optional | false | true or false. Whether to record the whole of the secondary call. See note on Call Recording. |
call recording encryption | optional | false | true or false. Whether to encrypt the whole call recording. |
call recording eliminate dtmf from API V2.0 | optional | true | true or false. Whether to eliminate DTMF from the whole call recording. |
call recording mode from API V2.0 | optional | mixed | Either mixed or separate . Whether the whole call recording has both sides of the call mixed in a single channel or each side is recorded to a separate channel. |
call recording cipher from API V2.0 | optional | - | A cipher object that specifies how to encrypt the whole call recording. The cipher can be specified here or in the response to the first page request. |
minutes max call duration | optional | 240 | An integer. The maximum duration of the secondary call in minutes. The secondary call is hung up if this is exceeded. |
first page | optional | - | A web page request object that is requested when the secondary call has been answered (and classification completed, if it has been enabled). This gives the application an opportunity to interact with the secondary call before it is connected to the primary call. |
final page | optional | - | A web page request object that is requested when either the primary or secondary call is hung up (i.e. the connection has been broken). |
error page | optional | - | A web page request object that is requested when there is an error during the connect action. |
Note: Call Recording records the whole call, both inbound and outbound audio, from the point at which the calls are connected. It will only record early media if pass early media is true in the connect action. It saves recorded files into the account's Media File Store.
-
Examples:
-
Configure the first page of a secondary call:
{ "first_page": { "url" : "my_secondary_call_first_page" } }
-
Configure multiple options:
{ "call_recording" : true, "call_recording_encryption" : true, "minutes_max_call_duration" : 30, "first_page": { "url" : "my_secondary_call_first_page" }, "final_page": { "url" : "my_secondary_call_final_page" }, "error_page": { "url" : "my_secondary_call_error_page" } }
-
Configure call recording of a secondary call:
{ "call_recording" : true, "call_recording_encryption" : true, "call_recording_eliminate_dtmf" : false, "call_recording_mode" : "separate", "call_recording_cipher" : { "type" : "aescbc", "key" : "1F2DEB2E502A4C8CBA58AB5018BD1506419EEA86DF595D3A431F43FAF57534C9", "initialisation_vector" : "9B85FAED9AB17570D5A82A31F846443B" } }
-
-
SecondaryCall Class
Namespace: Aculab.Cloud.RestAPIWrapper
Assembly: Aculab.Cloud.RestAPIWrapper.dllA class that represents the secondary outbound call that is made by the Connect or ConnectToConference actions. It determines pages and properties relating to this call.
-
public class SecondaryCall { // Constructors public SecondaryCall(); public SecondaryCall(WebPageRequest firstPage); public SecondaryCall(WebPageRequest firstPage, int minutesMaxCallDuration, bool callRecording); // Members public bool? CallRecording; public bool? CallRecordingEncryption; public Cipher CallRecordingCipher; public bool? CallRecordingEliminateDtmf; public RecordingMode? CallRecordingMode; public int? MinutesMaxCallDuration; public WebPageRequest FirstPage; public WebPageRequest FinalPage; public WebPageRequest ErrorPage; }
Examples:
-
Configure the first page of a secondary call:
var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx")); var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
Configure multiple options:
var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, true) { ErrorPage = new WebPageRequest("MySecondaryCallErrorPage.aspx"), FinalPage = new WebPageRequest("MySecondaryCallFinalPage.aspx"), CallRecordingEncryption = true }; var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
Configure call recording of a secondary call:
byte[] key = new byte[] { 0x1A, 0xA9, 0x38, 0x61, 0x29, 0x66, 0x2B, 0x3D, 0x80, 0x03, 0x74, 0x40, 0x71, 0x26, 0x32, 0xCA, 0x56, 0x49, 0x3C, 0x67, 0xD9, 0x56, 0xC1, 0x96, 0x58, 0x50, 0x0E, 0xC9, 0x0D, 0xBE, 0xCD, 0xD2 }; byte[] initialisationVector = new byte[] { 0x55, 0xB0, 0x5F, 0xF5, 0x9A, 0x28, 0xED, 0xAE, 0x0F, 0x2C, 0xDF, 0xCE, 0xBB, 0x99, 0xE3, 0x39 }; var aesCbcCipher = new AesCbcCipher(key, initialisationVector); var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, true) { ErrorPage = new WebPageRequest("MySecondaryCallErrorPage.aspx"), FinalPage = new WebPageRequest("MySecondaryCallFinalPage.aspx"), CallRecordingEncryption = true, CallRecordingEliminateDtmf = false, CallRecordingMode = RecordingMode.Separate, CallRecordingCipher = aesCbcCipher }; var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
-
public class SecondaryCall { // Constructors public SecondaryCall(); public SecondaryCall(WebPageRequest firstPage); public SecondaryCall(WebPageRequest firstPage, int minutesMaxCallDuration, bool callRecording); // Members public bool? CallRecording; public bool? CallRecordingEncryption; public Cipher CallRecordingCipher; public bool? CallRecordingEliminateDtmf; public RecordingMode? CallRecordingMode; public int? MinutesMaxCallDuration; public WebPageRequest FirstPage; public WebPageRequest FinalPage; public WebPageRequest ErrorPage; }
Examples:
-
Configure the first page of a secondary call:
var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx")); var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
Configure multiple options:
var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, true) { ErrorPage = new WebPageRequest("MySecondaryCallErrorPage.aspx"), FinalPage = new WebPageRequest("MySecondaryCallFinalPage.aspx"), CallRecordingEncryption = true }; var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
Configure call recording of a secondary call:
byte[] key = new byte[] { 0x1A, 0xA9, 0x38, 0x61, 0x29, 0x66, 0x2B, 0x3D, 0x80, 0x03, 0x74, 0x40, 0x71, 0x26, 0x32, 0xCA, 0x56, 0x49, 0x3C, 0x67, 0xD9, 0x56, 0xC1, 0x96, 0x58, 0x50, 0x0E, 0xC9, 0x0D, 0xBE, 0xCD, 0xD2 }; byte[] initialisationVector = new byte[] { 0x55, 0xB0, 0x5F, 0xF5, 0x9A, 0x28, 0xED, 0xAE, 0x0F, 0x2C, 0xDF, 0xCE, 0xBB, 0x99, 0xE3, 0x39 }; var aesCbcCipher = new AesCbcCipher(key, initialisationVector); var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, true) { ErrorPage = new WebPageRequest("MySecondaryCallErrorPage.aspx"), FinalPage = new WebPageRequest("MySecondaryCallFinalPage.aspx"), CallRecordingEncryption = true, CallRecordingEliminateDtmf = false, CallRecordingMode = RecordingMode.Separate, CallRecordingCipher = aesCbcCipher }; var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
-
public class SecondaryCall { // Constructors public SecondaryCall(); public SecondaryCall(WebPageRequest firstPage); public SecondaryCall(WebPageRequest firstPage, int minutesMaxCallDuration, bool callRecording); // Members public bool? CallRecording; public bool? CallRecordingEncryption; public Cipher CallRecordingCipher; public bool? CallRecordingEliminateDtmf; public RecordingMode? CallRecordingMode; public int? MinutesMaxCallDuration; public WebPageRequest FirstPage; public WebPageRequest FinalPage; public WebPageRequest ErrorPage; }
Examples:
-
Configure the first page of a secondary call:
var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx")); var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
Configure multiple options:
var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, true) { ErrorPage = new WebPageRequest("MySecondaryCallErrorPage.aspx"), FinalPage = new WebPageRequest("MySecondaryCallFinalPage.aspx"), CallRecordingEncryption = true }; var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
Configure call recording of a secondary call:
byte[] key = new byte[] { 0x1A, 0xA9, 0x38, 0x61, 0x29, 0x66, 0x2B, 0x3D, 0x80, 0x03, 0x74, 0x40, 0x71, 0x26, 0x32, 0xCA, 0x56, 0x49, 0x3C, 0x67, 0xD9, 0x56, 0xC1, 0x96, 0x58, 0x50, 0x0E, 0xC9, 0x0D, 0xBE, 0xCD, 0xD2 }; byte[] initialisationVector = new byte[] { 0x55, 0xB0, 0x5F, 0xF5, 0x9A, 0x28, 0xED, 0xAE, 0x0F, 0x2C, 0xDF, 0xCE, 0xBB, 0x99, 0xE3, 0x39 }; var aesCbcCipher = new AesCbcCipher(key, initialisationVector); var secondaryCall = new SecondaryCall(new WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, true) { ErrorPage = new WebPageRequest("MySecondaryCallErrorPage.aspx"), FinalPage = new WebPageRequest("MySecondaryCallFinalPage.aspx"), CallRecordingEncryption = true, CallRecordingEliminateDtmf = false, CallRecordingMode = RecordingMode.Separate, CallRecordingCipher = aesCbcCipher }; var connectAction = new Connect("443069990123"); connectAction.SecondaryCall = secondaryCall;
-
-
-
SecondaryCall Class
Namespace: Aculab.Cloud.RestAPIWrapper
Assembly: Aculab.Cloud.RestAPIWrapper.dllA class that represents the secondary outbound call that is made by the Connect or ConnectToConference actions. It determines pages and properties relating to this call.
-
Public Class SecondaryCall ' Constructors Public Sub New () Public Sub New (firstPage As Webpagerequest) Public Sub New (firstPage As Webpagerequest, minutesMaxCallDuration As Integer, callRecording As Bool) ' Members Public Property CallRecording As Bool? Public Property CallRecordingEncryption As Bool? Public Property CallRecordingCipher As Cipher Public Property CallRecordingEliminateDtmf As Bool? Public Property CallRecordingMode As Recordingmode? Public Property MinutesMaxCallDuration As Integer? Public Property FirstPage As Webpagerequest Public Property FinalPage As Webpagerequest Public Property ErrorPage As Webpagerequest End Class
Examples:
-
Configure the first page of a secondary call:
Dim secondaryCall = New SecondaryCall(New WebPageRequest("MySecondaryCallFirstPage.aspx")) Dim connectAction = New Connect("443069990123") connectAction.SecondaryCall = secondaryCall
-
Configure multiple options:
Dim secondaryCall = New SecondaryCall(New WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, True) secondaryCall.CallRecordingEncryption = True secondaryCall.ErrorPage = New WebPageRequest("MySecondaryCallErrorPage.aspx") secondaryCall.FinalPage = New WebPageRequest("MySecondaryCallFinalPage.aspx") Dim connectAction = New Connect("443069990123") connectAction.SecondaryCall = secondaryCall
-
Configure call recording of a secondary call:
Dim key As Byte() = { &H1A, &HA9, &H38, &H61, &H29, &H66, &H2B, &H3D, &H80, &H3, &H74, &H40, &H71, &H26, &H32, &HCA, &H56, &H49, &H3C, &H67, &HD9, &H56, &HC1, &H96, &H58, &H50, &HE, &HC9, &HD, &HBE, &HCD, &HD2} Dim initialisationVector As Byte() = { &H55, &HB0, &H5F, &HF5, &H9A, &H28, &HED, &HAE, &HF, &H2C, &HDF, &HCE, &HBB, &H99, &HE3, &H39} Dim AesCbcCipher = New AesCbcCipher(key, initialisationVector) Dim secondaryCall = New SecondaryCall(New WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, True) With { .ErrorPage = New WebPageRequest("MySecondaryCallErrorPage.aspx"), .FinalPage = New WebPageRequest("MySecondaryCallFinalPage.aspx"), .CallRecordingEncryption = True, .CallRecordingEliminateDtmf = False, .CallRecordingMode = RecordingMode.Separate, .CallRecordingCipher = AesCbcCipher } Dim connectAction = New Connect("443069990123") connectAction.SecondaryCall = secondaryCall
-
-
Public Class SecondaryCall ' Constructors Public Sub New () Public Sub New (firstPage As Webpagerequest) Public Sub New (firstPage As Webpagerequest, minutesMaxCallDuration As Integer, callRecording As Bool) ' Members Public Property CallRecording As Bool? Public Property CallRecordingEncryption As Bool? Public Property CallRecordingCipher As Cipher Public Property CallRecordingEliminateDtmf As Bool? Public Property CallRecordingMode As Recordingmode? Public Property MinutesMaxCallDuration As Integer? Public Property FirstPage As Webpagerequest Public Property FinalPage As Webpagerequest Public Property ErrorPage As Webpagerequest End Class
Examples:
-
Configure the first page of a secondary call:
Dim secondaryCall = New SecondaryCall(New WebPageRequest("MySecondaryCallFirstPage.aspx")) Dim connectAction = New Connect("443069990123") connectAction.SecondaryCall = secondaryCall
-
Configure multiple options:
Dim secondaryCall = New SecondaryCall(New WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, True) secondaryCall.CallRecordingEncryption = True secondaryCall.ErrorPage = New WebPageRequest("MySecondaryCallErrorPage.aspx") secondaryCall.FinalPage = New WebPageRequest("MySecondaryCallFinalPage.aspx") Dim connectAction = New Connect("443069990123") connectAction.SecondaryCall = secondaryCall
-
Configure call recording of a secondary call:
Dim key As Byte() = { &H1A, &HA9, &H38, &H61, &H29, &H66, &H2B, &H3D, &H80, &H3, &H74, &H40, &H71, &H26, &H32, &HCA, &H56, &H49, &H3C, &H67, &HD9, &H56, &HC1, &H96, &H58, &H50, &HE, &HC9, &HD, &HBE, &HCD, &HD2} Dim initialisationVector As Byte() = { &H55, &HB0, &H5F, &HF5, &H9A, &H28, &HED, &HAE, &HF, &H2C, &HDF, &HCE, &HBB, &H99, &HE3, &H39} Dim AesCbcCipher = New AesCbcCipher(key, initialisationVector) Dim secondaryCall = New SecondaryCall(New WebPageRequest("MySecondaryCallFirstPage.aspx"), 30, True) With { .ErrorPage = New WebPageRequest("MySecondaryCallErrorPage.aspx"), .FinalPage = New WebPageRequest("MySecondaryCallFinalPage.aspx"), .CallRecordingEncryption = True, .CallRecordingEliminateDtmf = False, .CallRecordingMode = RecordingMode.Separate, .CallRecordingCipher = AesCbcCipher } Dim connectAction = New Connect("443069990123") connectAction.SecondaryCall = secondaryCall
-
-
-
class SecondaryCall extends JSONElement
Represents the Secondary Call support class.
Class synopsis:
// Constructors: public SecondaryCall() public SecondaryCall(WebPageRequest firstPage) public SecondaryCall(WebPageRequest firstPage, int minutesMaxCallDuration, boolean callRecording) // Members: public void setCallRecording(boolean enabled) public void setCallRecordingEncryption(boolean enabled) public void setCallRecordingEliminateDTMF(boolean enabled) public void setCallRecordingMode(CallRecordingMode mode) public void setCallRecordingCipher(Cipher encryptionCipher) public void setMinutesMaxCallDuration(int minutesMaxDuration) public void setFirstPage(WebPageRequest firstPage) public void setFinalPage(WebPageRequest finalPage) public void setErrorPage(WebPageRequest errorPage)
Examples:
-
Configure the first page of a secondary call:
SecondaryCall secCall = new SecondaryCall(); secCall.setFirstPage(new WebPageRequest("my_secondary_call_first_page"));
-
Configure multiple options:
SecondaryCall secCall = new SecondaryCall(); secCall.setCallRecording(true); secCall.setMinutesMaxCallDuration(30); secCall.setFirstPage(new WebPageRequest("my_secondary_call_first_page")); secCall.setFinalPage(new WebPageRequest("my_secondary_call_final_page")); secCall.setErrorPage(new WebPageRequest("my_secondary_call_error_page"));
-
Configure call recording of a secondary call:
byte[] key = { (byte)0x1F, (byte)0x2D, (byte)0xEB, (byte)0x2E, (byte)0x50, (byte)0x2A, (byte)0x4C, (byte)0x8C, (byte)0xBA, (byte)0x58, (byte)0xAB, (byte)0x50, (byte)0x18, (byte)0xBD, (byte)0x15, (byte)0x06, (byte)0x41, (byte)0x9E, (byte)0xEA, (byte)0x86, (byte)0xDF, (byte)0x59, (byte)0x5D, (byte)0x3A, (byte)0x43, (byte)0x1F, (byte)0x43, (byte)0xFA, (byte)0xF5, (byte)0x75, (byte)0x34, (byte)0xC9}; byte[] iv = { (byte)0x9B, (byte)0x85, (byte)0xFA, (byte)0xED, (byte)0x9A, (byte)0xB1, (byte)0x75, (byte)0x70, (byte)0xD5, (byte)0xA8, (byte)0x2A, (byte)0x31, (byte)0xF8, (byte)0x46, (byte)0x44, (byte)0x3B}; Cipher encryptionCipher = new AesCbcCipher(key, iv); SecondaryCall secCall = new SecondaryCall(); secCall.setCallRecording(true); secCall.setCallRecordingEncryption(true); secCall.setCallRecordingEliminateDTMF(false); secCall.setCallRecordingMode(CallRecordingMode.SEPARATE); secCall.setCallRecordingCipher(encryptionCipher);
-
-
class SecondaryCall
Represents the Secondary Call support class.
Class synopsis:
# SecondaryCall object: SecondaryCall(first_page=None, final_page=None, error_page=None, minutes_max_call_duration=None, call_recording=None, call_recording_encryption=None, call_recording_mode=None, call_recording_eliminate_dtmf=None, call_recording_cipher=None)
Examples:
-
Configure the first page of a secondary call:
secondary_call = SecondaryCall(first_page=WebPage(url='my_secondary_call_first_page'))
-
Configure multiple options:
secondary_call = SecondaryCall(first_page=WebPage(url='my_secondary_call_first_page'), final_page=WebPage(url='my_secondary_call_final_page'), error_page=WebPage(url='my_secondary_call_error_page'), call_recording=True, call_recording_encryption=True, minutes_max_call_duration=30)
-
Configure call recording of a secondary call:
aescbc_cipher = AESCBCCipher(key='1F2DEB2E502A4C8CBA58AB5018BD1506419EEA86DF595D3A431F43FAF57534C9', initialisation_vector='9B85FAED9AB17570D5A82A31F846443B') secondary_call = SecondaryCall(call_recording=True, call_recording_encryption=True, call_recording_eliminate_dtmf=False, call_recording_mode="separate", call_recording_cipher=aescbc_cipher)
-
-
The SecondaryCallConfiguration class
Introduction
Represents the secondary call configuration for a connect action.
Class synopsis
class SecondaryCallConfiguration { /* methods */ public __construct() public self setCallRecording(boolean $rec) public self setCallRecordingEncryption(boolean $encrypt) public self setCallRecordingEliminateDtmf(boolean $enabled) public self setCallRecordingMode(string $mode) public self setCallRecordingCipher(Cipher $cipher) public self setMinutesMaxCallDuration(int $mins) public self setFirstPage(WebPageRequest|string $first_page, string $method = null) public self setFinalPage(WebPageRequest|string $final_page, string $method = null) public self setErrorPage(WebPageRequest|string $error_page, string $method = null) }
Examples:
Configure the first page of a secondary call:
$call_config = new Aculab\TelephonyRestAPI\SecondaryCallConfiguration(); $call_config->setFirstPage('my_secondary_call_first_page.php'); $connect->setSecondaryCallConfiguration($call_config);
Configure multiple options:
$call_config = new Aculab\TelephonyRestAPI\SecondaryCallConfiguration(); $call_config->setMinutesMaxCallDuration(30) ->setCallRecordingEncryption(true) ->setCallRecording(true) ->setFirstPage('my_secondary_call_first_page.php') ->setErrorPage('my_secondary_call_error_page.php') ->setFinalPage('my_secondary_call_final_page.php'); $connect->setSecondaryCallConfiguration($call_config);
Configure call recording of a secondary call:
$cipher = new Aculab\TelephonyRestAPI\AesCbcCipher( "1AA9386129662B3D80037440712632CA56493C67D956C19658500EC90DBECDD2", "55B05FF59A28EDAE0F2CDFCEBB99E339" ); $call_config = new Aculab\TelephonyRestAPI\SecondaryCallConfiguration(); $call_config->setMinutesMaxCallDuration(30) ->setCallRecordingEncryption(true) ->setCallRecording(true) ->setCallRecordingMode('separate') ->setCallRecordingEliminateDtmf(false) ->setCallRecordingCipher($cipher) ->setFirstPage('my_secondary_call_first_page.php') ->setErrorPage('my_secondary_call_error_page.php') ->setFinalPage('my_secondary_call_final_page.php'); $connect->setSecondaryCallConfiguration($call_config);