Delivery Profile - Level 3 Tokenizer param name not being saved

Kaltura version: 9.19.4

We are trying to make use of the Level 3 Tokenizer with a delivery profile.

Problem is that the param name field is not being saved both when attempted via the GUI and when attempted via the API.

The inability to properly save this field produces malformed token URLs.

Can anyone investigate this please?


Hi Gabriel,

Can you please attach your code? will be easier to debug.


Here is the code that creates the delivery profile:

$deliveryProfile = new KalturaDeliveryProfile();
$deliveryProfile->name = ‘Level 3 RTMP’;
$deliveryProfile->systemName = ‘Level 3 RTMP’;
$deliveryProfile->description = ‘Level 3 RTMP’;
$deliveryProfile->status = KalturaDeliveryStatus::ACTIVE;
$deliveryProfile->type = KalturaDeliveryProfileType::LEVEL3_RTMP;
$deliveryProfile->streamerType = KalturaPlaybackProtocol::RTMP;
$deliveryProfile->mediaProtocols = ‘rtmp’;
$deliveryProfile->url = Configure::read(‘Level_3_RTMP_URL’) . $partnerId;
$deliveryProfile->tokenizer = new KalturaUrlTokenizerLevel3();
$deliveryProfile->tokenizer->key = Configure::read(‘Level3_Token.key’);
$deliveryProfile->tokenizer->expiryName = Configure::read(‘Level3_Token.expiry_param_name’);
$deliveryProfile->tokenizer->paramName = Configure::read(‘Level3_Token.token_param_name’);
$deliveryProfile->tokenizer->gen = ‘’;
$profile = $this->targetAdminClient->deliveryProfile->add($deliveryProfile);


Hi Gabriel,

The script included with CE works for me:
# php /opt/kaltura/bin/create_remote_storage.php 101 0e4440a330cd663ceb79682a991e7419 jessp01 jessp01url storage_host /jess jess jesspassw S3 HTTP AKAMAI_HLS_DIRECT

And seems to do exactly what your code does…

Can you try running it?
Please make sure you first comment out the line:
69 //$delivery->isDefault = KalturaNullableBoolean::FALSE_VALUE;

Since it is no longer possible to set this one attrib.

The result for me is:
mysql> select * from delivery_profile where name=‘jessp01’\G
*************************** 1. row ***************************
id: 502
partner_id: 101
created_at: 2014-11-20 04:14:10
updated_at: 2014-11-20 04:14:10
name: jessp01
type: 4
system_name: jessp01
description: NULL
url: jessp01url
host_name: NULL
recognizer: NULL
tokenizer: NULL
status: 0
media_protocols: NULL
streamer_type: http
is_default: 0
parent_id: 0
custom_data: NULL

So you can see the name column is set as per:
62 $delivery = new KalturaDeliveryProfile();
63 $delivery->name = $profile_name;

1 Like

Hi Jess

The problem here is not the name of the delivery profile, but rather the ‘param name’ of the tokenzier. Specifically this line:

$deliveryProfile->tokenizer->paramName = Configure::read(‘Level3_Token.token_param_name’);

The param name property of the tokenizer is not being saved.