Skip to content

Commit fdcee65

Browse files
committed
MT#55283 tag transform call IDs/tags
Change-Id: I79eabb46e66db3df03a3cee169690de70d9166ff
1 parent 8353a29 commit fdcee65

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

daemon/codec.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,6 +613,7 @@ static const char *__make_transform_handler(struct codec_handler *handler) {
613613

614614
__auto_type tfh = handler->transform;
615615
__auto_type media = handler->media;
616+
__auto_type ml = media->monologue;
616617
__auto_type call = media->call;
617618

618619
if (tfh) {
@@ -655,7 +656,19 @@ static const char *__make_transform_handler(struct codec_handler *handler) {
655656
}
656657

657658
// manually construct the request
658-
g_autoptr(GString) req = g_string_new("d7:command9:transform5:mediald4:type");
659+
g_autoptr(GString) req = g_string_new("d7:command9:transform7:call-id");
660+
661+
char rand_tag[9];
662+
rand_hex_str(rand_tag, 4);
663+
g_string_append_printf(req, "%zu:%.*s for " STR_FORMAT, 8 + 1 + 3 + call->callid.len + 1,
664+
8, rand_tag, STR_FMT(&call->callid));
665+
666+
g_string_append(req, "8:from-tag");
667+
668+
g_string_append_printf(req, "%zu:%.*s for " STR_FORMAT, 8 + 1 + 3 + ml->tag.len + 1,
669+
8, rand_tag, STR_FMT(&ml->tag));
670+
671+
g_string_append(req, "5:mediald4:type");
659672
BENC_GS_APPEND(&media->type);
660673

661674
g_string_append(req, "5:codecld5:inputd5:codec");

t/auto-daemon-tests-transcode-config.pl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@
167167
rcv_no($sock_sig);
168168

169169
$NGCP::Rtpengine::req_cb = sub {
170-
($port_sig, $addr_sig, $cookie, $port_tc) = rcv($sock_sig, -1, qr/^(.{16}) d7:command9:transform5:mediald4:type5:audio5:codecld5:inputd5:codec4:PCMA12:payload typei8e10:clock ratei8000e8:channelsi1e6:format0:7:options0:e6:outputd5:codec4:PCMU12:payload typei0e10:clock ratei8000e8:channelsi1e6:format0:7:options0:eee11:destinationd6:family3:IP47:address11:203.0.113.14:porti(\d{5})eeee8:instance12:.{12}e$/);
170+
my ($cid, $tag);
171+
($port_sig, $addr_sig, $cookie, $cid, $tag, $port_tc) = rcv($sock_sig, -1, qr/^(.{16}) d7:command9:transform7:call-id\d+:(\w{8} for .*?)8:from-tag\d+:(\w{8} for .*?)5:mediald4:type5:audio5:codecld5:inputd5:codec4:PCMA12:payload typei8e10:clock ratei8000e8:channelsi1e6:format0:7:options0:e6:outputd5:codec4:PCMU12:payload typei0e10:clock ratei8000e8:channelsi1e6:format0:7:options0:eee11:destinationd6:family3:IP47:address11:203.0.113.14:porti(\d{5})eeee8:instance12:.{12}e$/);
171172
snd($sock_sig, $port_sig, $cookie . ' ' . Bencode::bencode( {
172173
result => 'ok',
173174
'call-id' => 'foobar',
@@ -249,11 +250,12 @@
249250

250251

251252
$NGCP::Rtpengine::req_cb = sub {
252-
($port_sig, $addr_sig, $cookie, $port_tc) = rcv($sock_sig, -1, qr/^(.{16}) d7:command9:transform5:mediald4:type5:audio5:codecld5:inputd5:codec4:PCMA12:payload typei8e10:clock ratei8000e8:channelsi1e6:format0:7:options0:e6:outputd5:codec4:PCMU12:payload typei0e10:clock ratei8000e8:channelsi1e6:format0:7:options0:eee11:destinationd6:family3:IP47:address11:203.0.113.14:porti(\d{5})eeee8:instance12:.{12}e$/);
253+
my ($cid, $tag);
254+
($port_sig, $addr_sig, $cookie, $cid, $tag, $port_tc) = rcv($sock_sig, -1, qr/^(.{16}) d7:command9:transform7:call-id\d+:(\w{8} for .*?)8:from-tag\d+:(\w{8} for .*?)5:mediald4:type5:audio5:codecld5:inputd5:codec4:PCMA12:payload typei8e10:clock ratei8000e8:channelsi1e6:format0:7:options0:e6:outputd5:codec4:PCMU12:payload typei0e10:clock ratei8000e8:channelsi1e6:format0:7:options0:eee11:destinationd6:family3:IP47:address11:203.0.113.14:porti(\d{5})eeee8:instance12:.{12}e$/);
253255
snd($sock_sig, $port_sig, $cookie . ' ' . Bencode::bencode( {
254256
result => 'ok',
255-
'call-id' => 'foobar',
256-
'from-tag' => 'yolo',
257+
'call-id' => $cid,
258+
'from-tag' => $tag,
257259
'media' => [
258260
{
259261
id => 'id',

0 commit comments

Comments
 (0)