Skip to main content
POST
/
calls
/
{call_control_id}
/
actions
/
siprec_start
JavaScript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});

const response = await client.calls.actions.startSiprec('call_control_id');

console.log(response.data);
import os
from telnyx import Telnyx

client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.calls.actions.start_siprec(
call_control_id="call_control_id",
)
print(response.data)
package main

import (
"context"
"fmt"

"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)

func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.Calls.Actions.StartSiprec(
context.TODO(),
"call_control_id",
telnyx.CallActionStartSiprecParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package com.telnyx.sdk.example;

import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.calls.actions.ActionStartSiprecParams;
import com.telnyx.sdk.models.calls.actions.ActionStartSiprecResponse;

public final class Main {
private Main() {}

public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();

ActionStartSiprecResponse response = client.calls().actions().startSiprec("call_control_id");
}
}
require "telnyx"

telnyx = Telnyx::Client.new(api_key: "My API Key")

response = telnyx.calls.actions.start_siprec("call_control_id")

puts(response)
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');

try {
$response = $client->calls->actions->startSiprec(
'call_control_id',
clientState: 'aGF2ZSBhIG5pY2UgZGF5ID1d',
connectorName: 'my-siprec-connector',
includeMetadataCustomHeaders: true,
secure: true,
sessionTimeoutSecs: 900,
sipTransport: 'tcp',
siprecTrack: 'both_tracks',
);

var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}
telnyx calls:actions start-siprec \
--api-key 'My API Key' \
--call-control-id call_control_id
curl --request POST \
--url https://api.telnyx.com/v2/calls/{call_control_id}/actions/siprec_start \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"connector_name": "my-siprec-connector",
"siprec_track": "both_tracks",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d"
}
'
{
  "data": {
    "result": "ok"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

call_control_id
string
required

Unique identifier and token for controlling the call

Body

application/json

Start siprec session to configured in SIPREC connector SRS.

connector_name
string

Name of configured SIPREC connector to be used.

Example:

"my-siprec-connector"

sip_transport
enum<string>
default:udp

Specifies SIP transport protocol.

Available options:
udp,
tcp,
tls
Example:

"tcp"

siprec_track
enum<string>
default:both_tracks

Specifies which track should be sent on siprec session.

Available options:
inbound_track,
outbound_track,
both_tracks
Example:

"outbound_track"

include_metadata_custom_headers
enum<boolean>

When set, custom parameters will be added as metadata (recording.session.ExtensionParameters). Otherwise, they’ll be added to sip headers.

Available options:
true,
false
Example:

true

secure
enum<boolean>

Controls whether to encrypt media sent to your SRS using SRTP and TLS. When set you need to configure SRS port in your connector to 5061.

Available options:
true,
false
Example:

true

session_timeout_secs
integer
default:1800

Sets Session-Expires header to the INVITE. A reinvite is sent every half the value set. Usefull for session keep alive. Minimum value is 90, set to 0 to disable.

Example:

900

client_state
string

Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.

Example:

"aGF2ZSBhIG5pY2UgZGF5ID1d"

Response

Successful response upon making a call control command.

data
Call Control Command Result · object
Example:
{ "result": "ok" }