aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/h245
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2008-03-19 08:33:11 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2008-03-19 08:33:11 +0000
commit7b062987192cc381785ed0920a220e1c0b9537f6 (patch)
tree6b449988140217ba5642f44d4413b3ca7cd01d16 /asn1/h245
parentbecca40aa776e31af3a9c7b33eb8338bd205436b (diff)
add SRTCP support to h245_setup_channels()
svn path=/trunk/; revision=24696
Diffstat (limited to 'asn1/h245')
-rw-r--r--asn1/h245/packet-h245-template.c51
1 files changed, 26 insertions, 25 deletions
diff --git a/asn1/h245/packet-h245-template.c b/asn1/h245/packet-h245-template.c
index ccb2535f4a..bbfe34138f 100644
--- a/asn1/h245/packet-h245-template.c
+++ b/asn1/h245/packet-h245-template.c
@@ -328,43 +328,44 @@ static void h245_setup_channels(packet_info *pinfo, channel_info_t *upcoming_cha
{
gint *key;
GHashTable *rtp_dyn_payload = NULL;
+ struct srtp_info *dummy_srtp_info = NULL;
if (!upcoming_channel) return;
+ /* T.38 */
if (!strcmp(upcoming_channel->data_type_str, "t38fax")) {
if (upcoming_channel->media_addr.addr.type!=AT_NONE && upcoming_channel->media_addr.port!=0 && t38_handle) {
t38_add_address(pinfo, &upcoming_channel->media_addr.addr,
upcoming_channel->media_addr.port, 0,
"H245", pinfo->fd->num);
}
- } else {
- if (upcoming_channel->rfc2198 > 0) {
+ return;
+ }
+
+ /* (S)RTP, (S)RTCP */
+ if (upcoming_channel->rfc2198 > 0) {
#if GLIB_MAJOR_VERSION < 2
- rtp_dyn_payload = g_hash_table_new(g_int_hash, g_int_equal);
+ rtp_dyn_payload = g_hash_table_new(g_int_hash, g_int_equal);
#else
- rtp_dyn_payload = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_free);
+ rtp_dyn_payload = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_free);
#endif
- key = g_malloc(sizeof(gint));
- *key = upcoming_channel->rfc2198;
- g_hash_table_insert(rtp_dyn_payload, key, g_strdup("red"));
- }
- if (upcoming_channel->media_addr.addr.type!=AT_NONE && upcoming_channel->media_addr.port!=0 && rtp_handle) {
- if (upcoming_channel->srtp_flag) {
- struct srtp_info *dummy_srtp_info = se_alloc0(sizeof(struct srtp_info));
- srtp_add_address(pinfo, &upcoming_channel->media_addr.addr,
- upcoming_channel->media_addr.port, 0,
- "H245", pinfo->fd->num, rtp_dyn_payload, dummy_srtp_info);
- } else {
- rtp_add_address(pinfo, &upcoming_channel->media_addr.addr,
- upcoming_channel->media_addr.port, 0,
- "H245", pinfo->fd->num, rtp_dyn_payload);
- }
- }
- if (upcoming_channel->media_control_addr.addr.type!=AT_NONE && upcoming_channel->media_control_addr.port!=0 && rtcp_handle) {
- rtcp_add_address(pinfo, &upcoming_channel->media_control_addr.addr,
- upcoming_channel->media_control_addr.port, 0,
- "H245", pinfo->fd->num);
- }
+ key = g_malloc(sizeof(gint));
+ *key = upcoming_channel->rfc2198;
+ g_hash_table_insert(rtp_dyn_payload, key, g_strdup("red"));
+ }
+
+ if (upcoming_channel->srtp_flag) {
+ struct srtp_info *dummy_srtp_info = se_alloc0(sizeof(struct srtp_info));
+ }
+ if (upcoming_channel->media_addr.addr.type!=AT_NONE && upcoming_channel->media_addr.port!=0 && rtp_handle) {
+ srtp_add_address(pinfo, &upcoming_channel->media_addr.addr,
+ upcoming_channel->media_addr.port, 0,
+ "H245", pinfo->fd->num, rtp_dyn_payload, dummy_srtp_info);
+ }
+ if (upcoming_channel->media_control_addr.addr.type!=AT_NONE && upcoming_channel->media_control_addr.port!=0 && rtcp_handle) {
+ srtcp_add_address(pinfo, &upcoming_channel->media_control_addr.addr,
+ upcoming_channel->media_control_addr.port, 0,
+ "H245", pinfo->fd->num, dummy_srtp_info);
}
}