right  Talk To Us!

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:

PropertyRequired/OptionalDefaultDescription
call recordingoptionalfalsetrue or false. Whether to record the whole of the secondary call. See note on Call Recording.
call recording encryptionoptionalfalsetrue or false. Whether to encrypt the whole call recording.
call recording eliminate dtmf
from API V2.0
optionaltruetrue or false. Whether to eliminate DTMF from the whole call recording.
call recording mode
from API V2.0
optionalmixedEither 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 durationoptional240An integer. The maximum duration of the secondary call in minutes. The secondary call is hung up if this is exceeded.
first pageoptional-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 pageoptional-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 pageoptional-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.dll

    A 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.dll

    A 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);