code: def conversations(self, getsrcdst=None, draw = True, **kargs):
          
          if getsrcdst is None:
              getsrcdst = lambda x:(x['IP'].src, x['IP'].dst)
          conv = {}
          for p in self.res:
              p = self._elt2pkt(p)
              try:
                  c = getsrcdst(p)
              except:
                  #XXX warning()
                  continue
              conv[c] = conv.get(c,0)+1
  
          if NETWORKX: # networkx is available
              gr = nx.DiGraph()
              for s,d in conv:
                  if s not in gr:
                      gr.add_node(s)
                  if d not in gr:
                      gr.add_node(d)
                  gr.add_edge(s, d)
              if draw:
                  return do_graph(gr, **kargs)
              else:
                  return gr
          else:
              gr = 'digraph "conv" {\n'
              for s,d in conv:
                  gr += '\t "%s" -> "%s"\n' % (s,d)
              gr += "}\n"        
              return do_graph(gr, **kargs)
docs: Graphes a conversations between sources and destinations and display it
          (using graphviz)
          getsrcdst: a function that takes an element of the list and return the source and dest
                     by defaults, return source and destination IP
          if networkx library is available returns a DiGraph, or draws it if draw = True otherwise graphviz is used
          format: output type (svg, ps, gif, jpg, etc.), passed to dot's "-T" option
          target: output filename. If None, matplotlib is used to display
          prog: which graphviz program to use