merge_all_tap_menus() has been moved to menus.c.
[obnox/wireshark/wip.git] / gtk / voip_calls.h
index 7f260ce42fb14d78420370a06796b9e4a0ff61b8..804ca5f0399673d7f1fce94303f5758046a5db39 100644 (file)
@@ -1,5 +1,5 @@
 /* voip_calls.h
- * VoIP calls summary addition for ethereal
+ * VoIP calls summary addition for Wireshark
  *
  * $Id$
  *
@@ -14,8 +14,8 @@
  * By Alejandro Vaquero, alejandro.vaquero@verso.com
  * Copyright 2005, Verso Technologies Inc.
  *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
  * Copyright 1998 Gerald Combs
  *
  * This program is free software; you can redistribute it and/or
  * Foundation,  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#ifndef VOIP_CALLS_H_INCLUDED
-#define VOIP_CALLS_H_INCLUDED
+#ifndef __VOIP_CALLS_H__
+#define __VOIP_CALLS_H__
 
 #include <glib.h>
 #include <stdio.h>
 #include <epan/address.h>
+#include <epan/guid-utils.h>
+#include <epan/tap-voip.h>
 
 /****************************************************************************/
-/* defines voip call state */
-typedef enum _voip_call_state {
-        VOIP_CALL_SETUP,
-               VOIP_RINGING,
-        VOIP_IN_CALL,
-        VOIP_CANCELLED,
-        VOIP_COMPLETED,
-        VOIP_REJECTED,
-               VOIP_UNKNOWN
-} voip_call_state;
-
-extern const char *voip_call_state_name[7];
-
-typedef enum _voip_call_active_state {
-               VOIP_ACTIVE,
-               VOIP_INACTIVE
-} voip_call_active_state;
+extern const char *voip_call_state_name[8];
 
 typedef enum _voip_protocol {
                VOIP_SIP,
@@ -66,10 +52,18 @@ typedef enum _voip_protocol {
                VOIP_MGCP,
                VOIP_AC_ISDN,
                VOIP_AC_CAS,
-               MEDIA_T38
+               MEDIA_T38,
+               TEL_H248,
+               TEL_SCCP,
+               TEL_BSSMAP,
+               TEL_RANAP,
+               VOIP_UNISTIM,
+               VOIP_SKINNY,
+               VOIP_IAX2,
+               VOIP_COMMON
 } voip_protocol;
 
-extern const char *voip_protocol_name[7];
+extern const char *voip_protocol_name[];
 
 /* defines specific SIP data */
 
@@ -100,7 +94,7 @@ typedef struct _h245_address {
 
 /* defines specific H323 data */
 typedef struct _h323_calls_info {
-       guint8 *guid;   /* Call ID to identify a H225 */
+       e_guid_t *guid; /* Call ID to identify a H225 */
        GList*  h245_list;   /* list of H245 Address and ports for tunneling off calls*/
        address h225SetupAddr; /* we use the SETUP H225 IP to determine if packets are forward or reverse */                                    
        gboolean is_h245;
@@ -130,20 +124,32 @@ typedef struct _actrace_cas_calls_info {
        int trunk;
 } actrace_cas_calls_info_t;
 
+/* defines specific SKINNY data */
+typedef struct _skinny_calls_info {
+       guint32 callId;
+} skinny_calls_info_t;
+
 /* defines a voip call */
 typedef struct _voip_calls_info {
        voip_call_state call_state;
        voip_call_active_state call_active_state;
+       gchar *call_id;
        gchar *from_identity;
        gchar *to_identity;
        gpointer prot_info;
+       void(*free_prot_info)(gpointer);
        address initial_speaker;
        guint32 npackets;
        guint32 first_frame_num; /* frame number of first frame */
        guint32 last_frame_num; 
        voip_protocol protocol;
+       gchar *protocol_name;
+       gchar *call_comment;
        guint16 call_num;
-       gint32 start_sec, start_usec, stop_sec, stop_usec;
+       nstime_t start_abs;
+       nstime_t stop_abs;
+       nstime_t start_rel;
+       nstime_t stop_rel;
        gboolean selected;
 
 } voip_calls_info_t;
@@ -153,7 +159,7 @@ typedef struct _voip_calls_info {
 
 typedef struct _voip_calls_tapinfo {
        int     ncalls;       /* number of call */
-       GList*  strinfo_list;   /* list with all calls */
+       GList*  callsinfo_list;   /* list with all calls */
        int     npackets;       /* total number of packets of all calls */
        voip_calls_info_t* filter_calls_fwd;  /* used as filter in some tap modes */
        guint32 launch_count;   /* number of times the tap has been run */
@@ -171,11 +177,20 @@ typedef struct _voip_calls_tapinfo {
        int h225_dummy;
        int h245dg_dummy;
        int mtp3_dummy;
+       int m3ua_dummy;
        int isup_dummy;
        int q931_dummy;
        int mgcp_dummy;
        int actrace_dummy;
        int t38_dummy;
+       int h248_dummy;
+       int sccp_dummy;
+       int sua_dummy;
+       int megaco_dummy;
+       int unistim_dummy;
+       int skinny_dummy;
+       int iax2_dummy;
+       int voip_dummy;
 } voip_calls_tapinfo_t;
 
 
@@ -188,16 +203,17 @@ typedef struct _voip_rtp_stream_info {
        guint32 ssrc;
        guint32  pt;
        gchar *pt_str;
+       gboolean is_srtp;  
        guint32 npackets;
        gboolean end_stream;
 
        guint32 first_frame_num; /* frame number of first frame */
        guint32 setup_frame_number; /* frame number of setup message */
        /* start of recording (GMT) of this stream */
-       guint32 start_rel_sec;         /* start stream rel seconds */
-       guint32 start_rel_usec;        /* start stream rel microseconds */
-       guint32 stop_rel_sec;         /* stop stream rel seconds */
-       guint32 stop_rel_usec;        /* stop stream rel microseconds */
+       nstime_t start_abs;
+       nstime_t stop_abs;
+       nstime_t start_rel;
+       nstime_t stop_rel;
        gint32 rtp_event;
 } voip_rtp_stream_info_t;
 
@@ -217,7 +233,7 @@ typedef struct _voip_rtp_tapinfo {
 * Registers the voip_calls tap listeners (if not already done).
 * From that point on, the calls list will be updated with every redissection.
 * This function is also the entry point for the initialization routine of the tap system.
-* So whenever voip_calls.c is added to the list of ETHEREAL_TAP_SRCs, the tap will be registered on startup.
+* So whenever voip_calls.c is added to the list of WIRESHARK_TAP_SRCs, the tap will be registered on startup.
 * If not, it will be registered on demand by the voip_calls functions that need it.
 */
 void sip_calls_init_tap(void);
@@ -232,6 +248,12 @@ void rtp_event_init_tap(void);
 void mgcp_calls_init_tap(void);
 void actrace_calls_init_tap(void);
 void t38_init_tap(void);
+void h248_calls_init_tap(void);
+void sccp_calls_init_tap(void);
+void unistim_calls_init_tap(void);
+void skinny_calls_init_tap(void);
+void iax2_calls_init_tap(void);
+void VoIPcalls_init_tap(void);
 
 /*
 * Removes the voip_calls tap listener (if not already done)
@@ -249,6 +271,12 @@ void remove_tap_listener_rtp_event(void);
 void remove_tap_listener_mgcp_calls(void);
 void remove_tap_listener_actrace_calls(void);
 void remove_tap_listener_t38(void);
+void remove_tap_listener_h248_calls(void);
+void remove_tap_listener_sccp_calls(void);
+void remove_tap_listener_unistim_calls(void);
+void remove_tap_listener_skinny_calls(void);
+void remove_tap_listener_iax2_calls(void);
+void remove_tap_listener_voip_calls(void);
 
 /*
 * Retrieves a constant reference to the unique info structure of the voip_calls tap listener.
@@ -259,11 +287,11 @@ voip_calls_tapinfo_t* voip_calls_get_info(void);
 /*
 * Cleans up memory of voip calls tap.
 */
-void voip_calls_reset(voip_calls_tapinfo_t *tapinfo);
 void isup_calls_reset(voip_calls_tapinfo_t *tapinfo);
 void mtp3_calls_reset(voip_calls_tapinfo_t *tapinfo);
 void q931_calls_reset(voip_calls_tapinfo_t *tapinfo);
+void voip_calls_reset(voip_calls_tapinfo_t *tapinfo);
 
 void graph_analysis_data_init(void);
 
-#endif /*VOIP_CALLS_H_INCLUDED*/
+#endif /* __VOIP_CALLS_H__ */