static void dissect_Conf2ACK(packet_info *pinfo) { /* Signals start of SRT(C)P streams */ struct srtp_info *dummy_srtp_info = wmem_new0(wmem_file_scope(), struct srtp_info); dummy_srtp_info->encryption_algorithm = SRTP_ENC_ALG_AES_CM; dummy_srtp_info->auth_algorithm = SRTP_AUTH_ALG_HMAC_SHA1; dummy_srtp_info->mki_len = 0; dummy_srtp_info->auth_tag_len = 4; srtp_add_address(pinfo, &pinfo->net_src, pinfo->srcport, pinfo->destport, "ZRTP", PINFO_FD_NUM(pinfo), FALSE, NULL, dummy_srtp_info); srtp_add_address(pinfo, &pinfo->net_dst, pinfo->destport, pinfo->srcport, "ZRTP", PINFO_FD_NUM(pinfo), FALSE, NULL, dummy_srtp_info); srtcp_add_address(pinfo, &pinfo->net_src, pinfo->srcport+1, pinfo->destport+1, "ZRTP", PINFO_FD_NUM(pinfo), dummy_srtp_info); srtcp_add_address(pinfo, &pinfo->net_dst, pinfo->destport+1, pinfo->srcport+1, "ZRTP", PINFO_FD_NUM(pinfo), dummy_srtp_info); col_set_str(pinfo->cinfo, COL_INFO, "Conf2ACK Packet"); }
static void h245_setup_channels(packet_info *pinfo, channel_info_t *upcoming_channel_lcl) { gint *key; GHashTable *rtp_dyn_payload = NULL; struct srtp_info *dummy_srtp_info = NULL; if (!upcoming_channel_lcl) return; /* T.38 */ if (!strcmp(upcoming_channel_lcl->data_type_str, "t38fax")) { if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0 && t38_handle) { t38_add_address(pinfo, &upcoming_channel_lcl->media_addr.addr, upcoming_channel_lcl->media_addr.port, 0, "H245", pinfo->fd->num); } return; } /* (S)RTP, (S)RTCP */ if (upcoming_channel_lcl->rfc2198 > 0) { encoding_name_and_rate_t *encoding_name_and_rate = g_malloc( sizeof(encoding_name_and_rate_t)); rtp_dyn_payload = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, free_encoding_name_str); encoding_name_and_rate->encoding_name = g_strdup("red"); encoding_name_and_rate->sample_rate = 8000; key = g_malloc(sizeof(gint)); *key = upcoming_channel_lcl->rfc2198; g_hash_table_insert(rtp_dyn_payload, key, encoding_name_and_rate); } if (upcoming_channel_lcl->srtp_flag) { dummy_srtp_info = se_alloc0(sizeof(struct srtp_info)); } /* DEBUG g_warning("h245_setup_channels media_addr.addr.type %u port %u",upcoming_channel_lcl->media_addr.addr.type, upcoming_channel_lcl->media_addr.port ); */ if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0 && rtp_handle) { srtp_add_address(pinfo, &upcoming_channel_lcl->media_addr.addr, upcoming_channel_lcl->media_addr.port, 0, "H245", pinfo->fd->num, upcoming_channel_lcl->is_video , rtp_dyn_payload, dummy_srtp_info); } if (upcoming_channel_lcl->media_control_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_control_addr.port!=0 && rtcp_handle) { srtcp_add_address(pinfo, &upcoming_channel_lcl->media_control_addr.addr, upcoming_channel_lcl->media_control_addr.port, 0, "H245", pinfo->fd->num, dummy_srtp_info); } }