MT#55283 tag transform call IDs/tags

Change-Id: I79eabb46e66db3df03a3cee169690de70d9166ff
pull/1126/merge
Richard Fuchs 3 weeks ago
parent 8353a298f9
commit fdcee65ab7

@ -613,6 +613,7 @@ static const char *__make_transform_handler(struct codec_handler *handler) {
__auto_type tfh = handler->transform;
__auto_type media = handler->media;
__auto_type ml = media->monologue;
__auto_type call = media->call;
if (tfh) {
@ -655,7 +656,19 @@ static const char *__make_transform_handler(struct codec_handler *handler) {
}
// manually construct the request
g_autoptr(GString) req = g_string_new("d7:command9:transform5:mediald4:type");
g_autoptr(GString) req = g_string_new("d7:command9:transform7:call-id");
char rand_tag[9];
rand_hex_str(rand_tag, 4);
g_string_append_printf(req, "%zu:%.*s for " STR_FORMAT, 8 + 1 + 3 + call->callid.len + 1,
8, rand_tag, STR_FMT(&call->callid));
g_string_append(req, "8:from-tag");
g_string_append_printf(req, "%zu:%.*s for " STR_FORMAT, 8 + 1 + 3 + ml->tag.len + 1,
8, rand_tag, STR_FMT(&ml->tag));
g_string_append(req, "5:mediald4:type");
BENC_GS_APPEND(&media->type);
g_string_append(req, "5:codecld5:inputd5:codec");

@ -167,7 +167,8 @@ SDP
rcv_no($sock_sig);
$NGCP::Rtpengine::req_cb = sub {
($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$/);
my ($cid, $tag);
($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$/);
snd($sock_sig, $port_sig, $cookie . ' ' . Bencode::bencode( {
result => 'ok',
'call-id' => 'foobar',
@ -249,11 +250,12 @@ $NGCP::Rtpengine::req_cb = undef;
$NGCP::Rtpengine::req_cb = sub {
($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$/);
my ($cid, $tag);
($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$/);
snd($sock_sig, $port_sig, $cookie . ' ' . Bencode::bencode( {
result => 'ok',
'call-id' => 'foobar',
'from-tag' => 'yolo',
'call-id' => $cid,
'from-tag' => $tag,
'media' => [
{
id => 'id',

Loading…
Cancel
Save