diff options
Diffstat (limited to 'src/tsg_proxy.cpp')
| -rw-r--r-- | src/tsg_proxy.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/tsg_proxy.cpp b/src/tsg_proxy.cpp index 641a8d8..3c29b2a 100644 --- a/src/tsg_proxy.cpp +++ b/src/tsg_proxy.cpp @@ -371,12 +371,31 @@ static void tsg_proxy_cmsg_subscriber_fill(struct session_runtime_attribute *ses { const char *client_subscribe_id = srt_attribute_get_client_subscriber_id(session_attr); const char *server_subscribe_id = srt_attribute_get_server_subscriber_id(session_attr); - if (client_subscribe_id) { + if (client_subscribe_id) + { cmsg->src_sub_id = (char *)client_subscribe_id; } - if (server_subscribe_id) { + else + { + const struct dynamic_ipport_mapping *client_mapping = srt_attribute_get_client_ipport_mapping(session_attr); + if(client_mapping && client_mapping->subscriber_id) + { + cmsg->src_sub_id = (char *)client_mapping->subscriber_id; + } + } + + if (server_subscribe_id) + { cmsg->dst_sub_id = (char *)server_subscribe_id; } + else + { + const struct dynamic_ipport_mapping *server_mapping = srt_attribute_get_server_ipport_mapping(session_attr); + if(server_mapping && server_mapping->subscriber_id) + { + cmsg->dst_sub_id = (char *)server_mapping->subscriber_id; + } + } return; } |
