You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(33) |
Jun
(14) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(19) |
Jun
(13) |
Jul
|
Aug
(1) |
Sep
(9) |
Oct
(8) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(14) |
Jul
|
Aug
|
Sep
(7) |
Oct
(7) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(15) |
2017 |
Jan
(11) |
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <rb...@us...> - 2012-06-22 09:25:05
|
Revision: 179 http://callflow.svn.sourceforge.net/callflow/?rev=179&view=rev Author: rbos Date: 2012-06-22 09:24:59 +0000 (Fri, 22 Jun 2012) Log Message: ----------- Ensure that the callflow is time ordered Modified Paths: -------------- callflow Modified: callflow =================================================================== --- callflow 2012-06-22 09:04:25 UTC (rev 178) +++ callflow 2012-06-22 09:24:59 UTC (rev 179) @@ -62,15 +62,17 @@ function make_long_and_short_caches_of_pcap_trace() { - tshark -r $inputfile $FARG "$FVAL" -V > $DESTDIR/callflow.long + PCAP_FILE=$1 + tshark -r $PCAP_FILE $FARG "$FVAL" -V > $DESTDIR/callflow.long + # Create a datafile with the data needed to create the callflow. # This is done in 2 steps, because of the following reasons: the tshark command # with the '-T fields' argument, provides the IP addresses and SIP CSeq and Call-ID # data. Some additional information about the Call-ID; this field can show up # in (at least) 2 ways in SIP messages. The field can indeed be called "Call-ID", # but just "i" in abbreviated SIP messages! Both formats can be used in 1 call. - tshark -r $inputfile $FARG "$FVAL" -t a -T fields -E separator='|' \ + tshark -r $PCAP_FILE $FARG "$FVAL" -t a -T fields -E separator='|' \ -e frame.number -e ip.src -e ip.dst -e sip.CSeq -e sip.Call-ID \ -e sdp.connection_info -e sdp.media -e sdp.media_attr | awk ' BEGIN { @@ -145,7 +147,7 @@ # - Megaco has a "|" in its info string, this character is however the # field separator in the output file, remove it. The actual string # being removed is " |=". - tshark -r $inputfile $FARG "$FVAL" -t a \ + tshark -r $PCAP_FILE $FARG "$FVAL" -t a \ -o 'column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | sed -e 's/^[[:blank:]]*//' \ -e 's/[[:blank:]]*|=/=/' \ @@ -396,22 +398,39 @@ LOG_MSG_LINE_NR++ - }' $inputfile + }' $1 } function make_long_and_short_caches() { + # The make_long_and_short_caches_of_..... functions result + # in 2 files, being $DESTDIR/callflow.short and $DESTDIR/callflow.long + # Try to be smart and figure out the format of the input file INPUT_FILE_FORMAT=$(file $inputfile | cut -d: -f2) case $INPUT_FILE_FORMAT in *ASCII*) - make_long_and_short_caches_of_broadworks_log + make_long_and_short_caches_of_broadworks_log $inputfile ;; *) - # If file type unknown, assume a network trace - make_long_and_short_caches_of_pcap_trace + # Any other file type is considered a network trace + make_long_and_short_caches_of_pcap_trace $inputfile esac + # It sometimes happens that the frames in the trace are not time + # ordered (they are ordered at frame number), for this reason + # re-order the callflow.short cache on time. + # Example of a wrong order: + # 13.14.15.625340|1|..... + # 13.14.15.625360|2|..... + # 13.14.15.625350|3|..... <<< this one is at the wrong spot + # The timestamp is the first field in the callflow.short cache, hence + # re-ordering on time is rather easy using just sort. + sort -o $DESTDIR/callflow.short $DESTDIR/callflow.short + + # Store the input characteristics. It will be used in subsequent runs + # to determine that the cache can be used, or that the input must be + # processed again. TRACE_FILE=$(basename $inputfile) MD5SUM=$(md5sum $inputfile | awk '{print $1}') echo "$TRACE_FILE|$MD5SUM|$FVAL" > $DESTDIR/metadb @@ -751,7 +770,7 @@ make_long_and_short_caches } -# We have to check if short and long file exist +# Check that the short and long caches exist if [ ! -f $DESTDIR/callflow.long ]; then echo "$PRGNAME: error: File callflow.long does not exist!" exit 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-22 09:04:34
|
Revision: 178 http://callflow.svn.sourceforge.net/callflow/?rev=178&view=rev Author: rbos Date: 2012-06-22 09:04:25 +0000 (Fri, 22 Jun 2012) Log Message: ----------- Re-ordered the code the a bit Modified Paths: -------------- callflow Modified: callflow =================================================================== --- callflow 2012-06-18 20:39:48 UTC (rev 177) +++ callflow 2012-06-22 09:04:25 UTC (rev 178) @@ -641,6 +641,12 @@ fi } +[[ -z "$NODENAMES" ]] && { + for FILE in $HOME/.callflow/nodenames.conf nodenames.conf; do + [[ -f $FILE ]] && NODENAMES=$FILE + done +} + if [[ "$ARCHIVE" == "yes" ]]; then case "$OPT_ARCHIVE_TYPE" in @@ -695,8 +701,13 @@ SHOW_SDP=$OPT_SHOW_SDP fi -# Create the DESTDIR, do it only here, as it isn't needed earlier -mkdir -p $DESTDIR +if [[ -f order ]]; then + orderFile=order +elif [[ -f $DESTDIR/order ]]; then + orderFile=$DESTDIR/order +else + orderFile=none +fi # Use cache? if [[ "$OPT_REFRESH_CACHE" == "yes" ]]; then @@ -711,9 +722,9 @@ if [[ $MD5_FILE == $MD5_CACHE ]]; then - # Are the cached filter and used filter the same? CACHED_FILTER=$(awk -F"|" -v FILE=$FILE '{if ($1 == FILE) {print $3} }' $DESTDIR/metadb) + # Are the cached filter and used filter the same? if [[ "$FVAL" == "$CACHED_FILTER" ]]; then USE_CACHE=yes else @@ -733,49 +744,13 @@ fi fi -################################## -# order file -################################## -# Build the order file and exit -[[ -z "$NODENAMES" ]] && { - for FILE in $HOME/.callflow/nodenames.conf nodenames.conf; do - if [[ -f $FILE ]]; then - NODENAMES=$FILE - fi - done -} +[[ $USE_CACHE == "no" ]] && { + # Create the DESTDIR, do it only here, as it isn't needed earlier + mkdir -p $DESTDIR -if [[ $ORDER = 1 ]]; then - - [[ $USE_CACHE == "no" ]] && make_long_and_short_caches - - awk -f $SETUPDIR/scripts/list-nodes.awk -v NODENAMES=$NODENAMES $DESTDIR/callflow.short - - exit 0 -fi - -if [[ -f order ]]; then - orderFile=order -elif [[ -f $DESTDIR/order ]]; then - orderFile=$DESTDIR/order -else - orderFile=none -fi - -################################## -# Build short and long files -################################## -# Copy the input file into destdir -TRACEFILE=$(basename $inputfile) -cp $inputfile $DESTDIR/$TRACEFILE - -# if we do want to build new short and long file -if [[ $USE_CACHE == "no" ]]; then - make_long_and_short_caches +} -fi - # We have to check if short and long file exist if [ ! -f $DESTDIR/callflow.long ]; then echo "$PRGNAME: error: File callflow.long does not exist!" @@ -795,6 +770,13 @@ sed -i '/Malform/d' $DESTDIR/callflow.short fi +# Display the node order and exit +[[ $ORDER == 1 ]] && { + + awk -f $SETUPDIR/scripts/list-nodes.awk -v NODENAMES=$NODENAMES $DESTDIR/callflow.short + exit 0 +} + # Create Frames mkdir -p $DESTDIR/frames awk -f $SETUPDIR/scripts/long2html.awk -v destDir=$DESTDIR < $DESTDIR/callflow.long @@ -912,6 +894,10 @@ inkscape --export-dpi=90 -C --export-background=white --export-png=$DESTDIR/callflow.png $DESTDIR/callflow.svg fi + # Copy the input file into destination directory + TRACEFILE=$(basename $inputfile) + cp $inputfile $DESTDIR/$TRACEFILE + # Build HTML files # Frameless; (SIP) messages will be presented in the same window as the callflow picture ( echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-18 20:39:56
|
Revision: 177 http://callflow.svn.sourceforge.net/callflow/?rev=177&view=rev Author: rbos Date: 2012-06-18 20:39:48 +0000 (Mon, 18 Jun 2012) Log Message: ----------- Alter WEBSERVER_URL to CALLFLOW_BASE_URL Add variable CALLFLOW_URL_DIR The complete url is: $CALLFLOW_BASE_URL/$CALLFLOW_URL_DIR See callflow.conf for a detailed description how to use it. Modified Paths: -------------- callflow conf/callflow.conf Modified: callflow =================================================================== --- callflow 2012-06-18 19:38:08 UTC (rev 176) +++ callflow 2012-06-18 20:39:48 UTC (rev 177) @@ -1077,20 +1077,28 @@ fi fi +if [[ -n "$CALLFLOW_BASE_URL" ]]; then + if [[ -z "$CALLFLOW_URL_DIR" ]]; then + CALLFLOW_URL=$CALLFLOW_BASE_URL + else + CALLFLOW_URL=$CALLFLOW_BASE_URL/$CALLFLOW_URL_DIR + fi +fi + if [[ "$START_BROWSER" == "yes" ]]; then # Start the browser in the background - if [[ -z "$WEBSERVER_URL" ]]; then + if [[ -z "$CALLFLOW_URL" ]]; then "${BROWSER:=firefox}" "$DESTDIR/index.html" & else - "${BROWSER:=firefox}" "$WEBSERVER_URL/$DESTDIR/index.html" & + "${BROWSER:=firefox}" "$CALLFLOW_URL/$DESTDIR/index.html" & fi else echo echo "The output can be viewed with a browser: " - if [[ -z "$WEBSERVER_URL" ]]; then + if [[ -z "$CALLFLOW_URL" ]]; then echo " ${BROWSER:=firefox} $DESTDIR/index.html" else - echo " ${BROWSER:=firefox} $WEBSERVER_URL/$DESTDIR/index.html" + echo " ${BROWSER:=firefox} $CALLFLOW_URL/$DESTDIR/index.html" fi fi Modified: conf/callflow.conf =================================================================== --- conf/callflow.conf 2012-06-18 19:38:08 UTC (rev 176) +++ conf/callflow.conf 2012-06-18 20:39:48 UTC (rev 177) @@ -29,11 +29,21 @@ # Possible values are: firefox, konqueror, chromium, epiphany, opera BROWSER= -# WEBSERVER_URL, in case callflow is run on a remote server and the callflow -# can be reached via a browser on the remote server, the URL can be specified -# here. Example: WEBSERVER_URL=http://call.flow.eg/~user/callflow -WEBSERVER_URL= +# CALLFLOW_BASE_URL, in case callflow is run on a remote server and the callflow +# can be reached via a browser on the remote server, the base url can be specified +# here. Example: CALLFLOW_BASE_URL=http://call.flow.eg/~user/callflow +CALLFLOW_BASE_URL= +# CALLFLOW_URL_DIR, works in combination with the CALLFLOW_BASE_URL +# variable. If the callflow is stored in an additional folder on the +# webserver the additional folder can be specified here. Especially +# useful in case this folder is different for different callflows. +# In case the folder name does not differ, it can be specified as +# part of the CALLFLOW_BASE_URL +# The complete url is: $CALLFLOW_BASE_URL/$CALLFLOW_URL_DIR +# CALLFLOW_URL_DIR example: $(basename $PWD) +CALLFLOW_URL_DIR= + # WIDTH_BETWEEN_NODES, the distance between the adjacent nodes in the # callflow diagram. # Default value = 200 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-18 19:38:15
|
Revision: 176 http://callflow.svn.sourceforge.net/callflow/?rev=176&view=rev Author: rbos Date: 2012-06-18 19:38:08 +0000 (Mon, 18 Jun 2012) Log Message: ----------- Make the creation of an archive containing the callflow the default. It can altered with the configuration variables ARCHIVE and ARCHIVE_TYPE Modified Paths: -------------- callflow conf/callflow.conf man/callflow.1 Modified: callflow =================================================================== --- callflow 2012-06-18 18:57:28 UTC (rev 175) +++ callflow 2012-06-18 19:38:08 UTC (rev 176) @@ -6,10 +6,13 @@ ################################## # Variables ################################## +ARCHIVE=yes +ARCHIVE_TYPE=bz2 CONFDIR="/etc/callflow"; removeDF=0 # do not remove duplicate frames ORDER=0 # do not build order file localLoop=1 # take into account flows from and to the same element (rounded flows) + readonly VersionSVN="$Id$"; #DO NOT EDIT THIS LINE BY HAND, DATE IS AUTOMATICALLY ADDED BY SUBVERSION readonly PRGVRSN=$(awk '{split($4, A, "-"); print A[1] A[2] A[3] "." $3}' <<< "$VersionSVN") readonly PRGNAME=$(basename $0) @@ -434,8 +437,9 @@ --archive <archive type> Create an archive with the files for showing the callflow - diagram. Available archive types are: files, bzip2 (bz2) and zip. - The archive type files just list the files required for the + diagram. Available archive types are: files, bz2 (bzip2) and zip. + The callflow archive can be used to sent to interested parties. + The archive type "files" just list the files required for the callflow diagram. It can be used to create an archive with it. --browser @@ -455,6 +459,10 @@ (Don't forget to redirect output in another file. Example of use: $PRGNAME --list-nodes capture.cap > order) + --no-archive + Disable the creation of and reference to the archive containing + the callflow + --no-loops Prevent flows from and to the same equipment to be represented. @@ -497,8 +505,9 @@ # Command line argument parsing, the allowed arguments are # alphabetically listed, keep it this way please. LOPT="archive:,browser" -LOPT="$LOPT,capture-filter:,help,list-nodes,no-loops,no-sdp,no-time,nodenames:,refresh-cache" -LOPT="$LOPT,remove-duplicate-frames,title:,with-sdp,width-between-nodes:,version" +LOPT="$LOPT,capture-filter:,help,list-nodes,no-archive,no-loops,no-sdp,no-time,nodenames:" +LOPT="$LOPT,refresh-cache,remove-duplicate-frames,title:,with-sdp,width-between-nodes:" +LOPT="$LOPT,version" # Note that we use `"$@"' to let each command-line parameter expand to a # separate word. The quotes around `$@' are essential! @@ -533,6 +542,11 @@ --list-nodes|-o) ORDER=1 ;; + --no-archive) + # Disable the creation of and reference to the archive + # containing the callflow + ARCHIVE=no + ;; --no-loops) # We want to disable auto flows (From and To the same equipment) noLocalLoop=1; @@ -631,20 +645,13 @@ case "$OPT_ARCHIVE_TYPE" in - bz2|bzip2|files|zip) ARCHIVE_TYPE="$OPT_ARCHIVE_TYPE" + "") + # Use default ARCHIVE_TYPE + ;; - [[ $ARCHIVE_TYPE != "files" ]] && { + bz2|bzip2|files|zip) - ARCHIVE_NAME=$(basename $DESTDIR) - case $ARCHIVE_TYPE in - bz2|bzip2) - ARCHIVE_FILE=$ARCHIVE_NAME.tar.bz2 - ;; - *) - ARCHIVE_FILE=$ARCHIVE_NAME.$ARCHIVE_TYPE - ;; - esac - } + ARCHIVE_TYPE="$OPT_ARCHIVE_TYPE" ;; *) @@ -653,6 +660,19 @@ ;; esac + [[ $ARCHIVE_TYPE != "files" ]] && { + + ARCHIVE_NAME=$(basename $DESTDIR) + case $ARCHIVE_TYPE in + bz2|bzip2) + ARCHIVE_FILE=$ARCHIVE_NAME.tar.bz2 + ;; + *) + ARCHIVE_FILE=$ARCHIVE_NAME.$ARCHIVE_TYPE + ;; + esac + } + fi if [[ -z "$OPT_SHOW_TIME" ]]; then Modified: conf/callflow.conf =================================================================== --- conf/callflow.conf 2012-06-18 18:57:28 UTC (rev 175) +++ conf/callflow.conf 2012-06-18 19:38:08 UTC (rev 176) @@ -54,6 +54,15 @@ # Default value: 127.0.0.1 # BW_IP_ADDR= +# ARCHIVE, create an archive containing the callflow. This archive +# is referenced in callflow landing - and index pages +# Default values: yes +# ARCHIVE=yes + +# ARCHIVE_TYPE, archive type: bz2 (bzip2), zip or files +# Default value: bz2 +# ARCHIVE_TYPE=bz2 + # Inkscape does not have a quiet option, it might get one in version 0.49 # Workaround; sent the output to /dev/null when INKSCAPE_MODE value is set QUIET # Default value: QUIET Modified: man/callflow.1 =================================================================== --- man/callflow.1 2012-06-18 18:57:28 UTC (rev 175) +++ man/callflow.1 2012-06-18 19:38:08 UTC (rev 176) @@ -55,7 +55,7 @@ .TP .PD 0 .B --archive <archive type> -Create an archive with the files for showing the callflow diagram. Available archive types are: files, bzip2 (bz2) and zip. The archive type \fIfiles\fR just list the files required for the callflow diagram. It can be used to create an archive with it. +Create an archive with the files for showing the callflow diagram. Available archive types are: files, bz2 (bzip2) and zip. The callflow archive can be used to sent to interested parties. The archive type \fIfiles\fR just list the files required for the callflow diagram. It can be used to create an archive with it. .TP .PD 0 @@ -80,13 +80,18 @@ .TP .PD 0 +.B --no-archive +Disable the creation of and reference to the archive containing the callflow. + +.TP +.PD 0 .B --no-loops Prevent flows from and to the same equipment to be represented. .TP .PD 0 .B --no-sdp -Do not show detailed SDP information in the callflow +Do not show detailed SDP information in the callflow. .TP .PD 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-18 18:57:35
|
Revision: 175 http://callflow.svn.sourceforge.net/callflow/?rev=175&view=rev Author: rbos Date: 2012-06-18 18:57:28 +0000 (Mon, 18 Jun 2012) Log Message: ----------- - Some minor changes: - Removed obsolete comments, or improved the comment - Combined bz2 and bzip2 in case statement Modified Paths: -------------- callflow Modified: callflow =================================================================== --- callflow 2012-06-15 13:08:49 UTC (rev 174) +++ callflow 2012-06-18 18:57:28 UTC (rev 175) @@ -17,10 +17,7 @@ # Define exit values readonly ERR_ARGUMENT=2 -################################## -# Check configuration files : -# callflow.conf, order, colors -################################## +# Source in callflow's configuration file(s) for CONF in $CONFDIR/callflow.conf $HOME/.callflow/callflow.conf callflow.conf; do [[ -f $CONF ]] && . $CONF done @@ -577,21 +574,15 @@ shift done -inputfile=$1 - -################################## -# Check input file -################################## -if [ ! -f "$inputfile" ]; then +inputfile="$1" +if [[ ! -f "$inputfile" ]]; then echo "$PRGNAME: error: Input file ($inputfile) does not exists!" exit 1; +else + # TODO: what is the sed command doing precisely, is it really needed? + DESTDIR=$(ls "$inputfile" | sed -r "s/(.+)\.(.+)/\1/"); fi -DESTDIR=$(ls $inputfile | sed -r "s/(.+)\.(.+)/\1/"); - -################################## -# Configuration file overwritting by command line options -################################## if [[ ! -z "$OPT_FILTER" ]]; then if [[ "$OPT_FILTER" == "" ]]; then FARG="" @@ -646,12 +637,9 @@ ARCHIVE_NAME=$(basename $DESTDIR) case $ARCHIVE_TYPE in - bz2) + bz2|bzip2) ARCHIVE_FILE=$ARCHIVE_NAME.tar.bz2 ;; - bzip2) - ARCHIVE_FILE=$ARCHIVE_NAME.tar.bz2 - ;; *) ARCHIVE_FILE=$ARCHIVE_NAME.$ARCHIVE_TYPE ;; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-15 13:09:00
|
Revision: 174 http://callflow.svn.sourceforge.net/callflow/?rev=174&view=rev Author: rbos Date: 2012-06-15 13:08:49 +0000 (Fri, 15 Jun 2012) Log Message: ----------- The archive link on the landing page is now created correctly Modified Paths: -------------- callflow images/index.tpl mktar Modified: callflow =================================================================== --- callflow 2012-06-15 12:44:45 UTC (rev 173) +++ callflow 2012-06-15 13:08:49 UTC (rev 174) @@ -1025,7 +1025,7 @@ -e "s/@TITLE@/$PRGNAME - $TITLE/" \ -e "s/@ARCHIVE_FILE@/$ARCHIVE_FILE/" \ $SETUPDIR/images/index.tpl > $DESTDIR/index.html - [[ $ARCHIVE != "yes" ]] && sed -i '/@@@archive@@@/d' $DESTDIR/index.html + [[ $ARCHIVE != "yes" ]] && sed -i '/@@@ARCHIVE_FILE@@@/d' $DESTDIR/index.html else ( echo "Error $PRGNAME: inkscape not found." Modified: images/index.tpl =================================================================== --- images/index.tpl 2012-06-15 12:44:45 UTC (rev 173) +++ images/index.tpl 2012-06-15 13:08:49 UTC (rev 174) @@ -37,9 +37,10 @@ </table> <h2>Trace file</h2> - <p>The <a href="@TRACE@">trace file</a> that resulted in the callflow diagrams.</p> - <br/> - @@@<a href="@ARCHIVE_FILE@">Callflow files in archive</a> (to sent the callflow to e.g. interested parties) + <p>The <a href="@TRACE@">trace file</a> that resulted in the callflow diagrams. + <br/> + <a href="@ARCHIVE_FILE@">Callflow files in archive</a> (to sent the callflow to e.g. interested parties) <!-- @@@@ARCHIVE_FILE@@@@ --> + </p> <p class="info">Those diagrams were created with <a href="http://callflow.sourceforge.net">callflow</a></p> </body> </html> Modified: mktar =================================================================== --- mktar 2012-06-15 12:44:45 UTC (rev 173) +++ mktar 2012-06-15 13:08:49 UTC (rev 174) @@ -7,7 +7,7 @@ CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') -CALLFLOW_VERSION=20120615-170 +CALLFLOW_VERSION=20120615-174 # Only include files that are known, any other file is to be ignored FILES="AUTHORS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-15 12:44:51
|
Revision: 173 http://callflow.svn.sourceforge.net/callflow/?rev=173&view=rev Author: rbos Date: 2012-06-15 12:44:45 +0000 (Fri, 15 Jun 2012) Log Message: ----------- add the bz2 reference to the manpage Modified Paths: -------------- man/callflow.1 Modified: man/callflow.1 =================================================================== --- man/callflow.1 2012-06-15 12:40:11 UTC (rev 172) +++ man/callflow.1 2012-06-15 12:44:45 UTC (rev 173) @@ -55,7 +55,7 @@ .TP .PD 0 .B --archive <archive type> -Create an archive with the files for showing the callflow diagram. Available archive types are: files, bzip2 and zip. The archive type \fIfiles\fR just list the files required for the callflow diagram. It can be used to create an archive with it. +Create an archive with the files for showing the callflow diagram. Available archive types are: files, bzip2 (bz2) and zip. The archive type \fIfiles\fR just list the files required for the callflow diagram. It can be used to create an archive with it. .TP .PD 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-15 12:40:21
|
Revision: 172 http://callflow.svn.sourceforge.net/callflow/?rev=172&view=rev Author: rbos Date: 2012-06-15 12:40:11 +0000 (Fri, 15 Jun 2012) Log Message: ----------- Add a link to the callflow archive (when available) on the landing and index.html pages Modified Paths: -------------- callflow images/index.tpl Modified: callflow =================================================================== --- callflow 2012-06-15 11:16:47 UTC (rev 171) +++ callflow 2012-06-15 12:40:11 UTC (rev 172) @@ -84,7 +84,7 @@ CALLID[$5] = NOC NOC++ } - + # Process connection info and obtain the ip addr sub("IN IP4 ", "", $6) @@ -437,7 +437,7 @@ --archive <archive type> Create an archive with the files for showing the callflow - diagram. Available archive types are: files, bzip2 and zip. + diagram. Available archive types are: files, bzip2 (bz2) and zip. The archive type files just list the files required for the callflow diagram. It can be used to create an archive with it. @@ -587,6 +587,8 @@ exit 1; fi +DESTDIR=$(ls $inputfile | sed -r "s/(.+)\.(.+)/\1/"); + ################################## # Configuration file overwritting by command line options ################################## @@ -638,7 +640,23 @@ case "$OPT_ARCHIVE_TYPE" in - bzip2|files|zip) ARCHIVE_TYPE="$OPT_ARCHIVE_TYPE" + bz2|bzip2|files|zip) ARCHIVE_TYPE="$OPT_ARCHIVE_TYPE" + + [[ $ARCHIVE_TYPE != "files" ]] && { + + ARCHIVE_NAME=$(basename $DESTDIR) + case $ARCHIVE_TYPE in + bz2) + ARCHIVE_FILE=$ARCHIVE_NAME.tar.bz2 + ;; + bzip2) + ARCHIVE_FILE=$ARCHIVE_NAME.tar.bz2 + ;; + *) + ARCHIVE_FILE=$ARCHIVE_NAME.$ARCHIVE_TYPE + ;; + esac + } ;; *) @@ -669,8 +687,7 @@ SHOW_SDP=$OPT_SHOW_SDP fi -# DESTDIR -DESTDIR=`ls $inputfile | sed -r "s/(.+)\.(.+)/\1/"`; +# Create the DESTDIR, do it only here, as it isn't needed earlier mkdir -p $DESTDIR # Use cache? @@ -920,13 +937,17 @@ echo " <p class=\"footer\">" echo " <a href=\"$TRACEFILE\">Trace source</a>" echo " <br/>" + [[ $ARCHIVE == "yes" ]] && { + echo " <a href=\"$ARCHIVE_FILE\">Callflow files in archive</a> (to sent the callflow to e.g. interested parties)" + echo " <br/>" + } echo " <a href=\"index.html\" target=\"_parent\">Back to landing page</a>" echo " </p>" echo " </div>" echo " </body>" echo "</html>" ) > $DESTDIR/index_frameless.html - + # (SIP) Messages will be presented in popups on the callflow picture ( echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"" echo " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">" @@ -959,6 +980,10 @@ echo " <p class=\"footer\">" echo " <a href=\"$TRACEFILE\">Trace source</a>" echo " <br/>" + [[ $ARCHIVE == "yes" ]] && { + echo " <a href=\"$ARCHIVE_FILE\">Callflow files in archive</a> (to sent the callflow to e.g. interested parties)" + echo " <br/>" + } echo " <a href=\"index.html\" target=\"_parent\">Back to landing page</a>" echo " </p>" echo " </div>" @@ -967,7 +992,7 @@ ) > $DESTDIR/index_dynamic.html \rm imagemap - + #Copy JavaScript files into DESTDIR cp -af $SETUPDIR/js $DESTDIR/ @@ -995,8 +1020,12 @@ mkdir -p $DESTDIR/images cp -a $SETUPDIR/images/*png $DESTDIR/images - sed "s/@TITLE@/$PRGNAME - $TITLE/;s/@TRACE@/$inputfile/" \ + sed \ + -e "s/@TRACE@/$inputfile/" \ + -e "s/@TITLE@/$PRGNAME - $TITLE/" \ + -e "s/@ARCHIVE_FILE@/$ARCHIVE_FILE/" \ $SETUPDIR/images/index.tpl > $DESTDIR/index.html + [[ $ARCHIVE != "yes" ]] && sed -i '/@@@archive@@@/d' $DESTDIR/index.html else ( echo "Error $PRGNAME: inkscape not found." @@ -1004,7 +1033,7 @@ echo "Portable Network Graphic (.png) can be created." echo "Install inkscape, to enjoy all that $PRGNAME can give to you!" ) >&2 - + exit 1 fi @@ -1026,18 +1055,16 @@ echo "$ARCHIVE_FILES" exit 0 else - - ARCHIVE_NAME=$(basename $DESTDIR) + FILES=$(sed "s,^,$ARCHIVE_NAME/," <<< "$ARCHIVE_FILES") cd $DESTDIR/.. if [[ "$ARCHIVE_TYPE" == "zip" ]]; then zip --quiet $DESTDIR/$ARCHIVE_NAME.zip $FILES - echo "$PRGNAME: zip archive available at \"$DESTDIR/$ARCHIVE_NAME.zip\"" else tar cjf $DESTDIR/$ARCHIVE_NAME.tar.bz2 $FILES - echo "$PRGNAME: bzip2 archive available at \"$DESTDIR/$ARCHIVE_NAME.tar.bz2\"" fi + echo "$PRGNAME: $ARCHIVE_TYPE archive available at \"$DESTDIR/$ARCHIVE_FILE\"" cd "$ODIR" fi fi Modified: images/index.tpl =================================================================== --- images/index.tpl 2012-06-15 11:16:47 UTC (rev 171) +++ images/index.tpl 2012-06-15 12:40:11 UTC (rev 172) @@ -38,6 +38,8 @@ <h2>Trace file</h2> <p>The <a href="@TRACE@">trace file</a> that resulted in the callflow diagrams.</p> + <br/> + @@@<a href="@ARCHIVE_FILE@">Callflow files in archive</a> (to sent the callflow to e.g. interested parties) <p class="info">Those diagrams were created with <a href="http://callflow.sourceforge.net">callflow</a></p> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-15 11:16:54
|
Revision: 171 http://callflow.svn.sourceforge.net/callflow/?rev=171&view=rev Author: rbos Date: 2012-06-15 11:16:47 +0000 (Fri, 15 Jun 2012) Log Message: ----------- Add Broadsoft Broadworks support Modified Paths: -------------- callflow conf/callflow.conf man/callflow.1 mktar Modified: callflow =================================================================== --- callflow 2012-06-15 10:33:49 UTC (rev 170) +++ callflow 2012-06-15 11:16:47 UTC (rev 171) @@ -242,9 +242,175 @@ rm $TMPDIR/${PRGNAME}-tshark-[123].$$ } +function make_long_and_short_caches_of_broadworks_log() { + + # TODO: make BW_IP_ADDR configurable from the command line + [[ -z $BW_IP_ADDR ]] && BW_IP_ADDR=127.0.0.1 + + awk -v destDir=$DESTDIR -v bwIpAddr=$BW_IP_ADDR 'BEGIN { + FRAME_NR = 1 + LOG_MSG_LINE_NR = 0 + NOC = 1 # Number Of Call-IDs + } + { + if ($1 ~ "^20[0-9][0-9].[0-1][0-9].[0-3][0-9]$") { + + if (LOG_MSG_TYPE == "sip") { + + FILENAME = destDir "/callflow.long" + + printf "Frame %d: \n", FRAME_NR > FILENAME + printf "%s\n", LOG_MSG[0] > FILENAME + printf "User Datagram Protocol\n" > FILENAME + + for (i = 1; i <= LOG_MSG_LINE_NR; i++) { + + printf " %s\n", LOG_MSG[i] > FILENAME + + if (LOG_MSG[i] ~ "udp" && LOG_MSG[i] ~ "Bytes") { + printf "Session Initiation Protocol\n" > FILENAME + printf " Request-Line: %s\n", LOG_MSG[++i] > FILENAME + + } else if ( LOG_MSG[i] ~ "m=audio" ) { + PROT = "SIP/SDP" + split(LOG_MSG[i], S, " ") + PORT = S[2] + FORMAT = S[4] + delete S # remove the array, so it can be safely re-used + } else if ( LOG_MSG[i] ~ "c=IN IP4" ) { + SDP_IP_ADDR = LOG_MSG[i] + sub("c=IN IP4 ", "", SDP_IP_ADDR) + } + } + + if (REQ_URI == "200 OK") { + split(CSEQ, S, " ") + REQ_URI = sprintf("200 OK (%s)", S[2]) + delete S # remove the array, so it can be safely re-used + } + + if (PROT == "SIP/SDP") { + # Remove trailing spaces + sub(" *$", "", REQ_URI) + REQ_URI = sprintf("%s, SDP", REQ_URI) + } + + FILENAME = destDir "/callflow.short" + printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s|%s|%s|%s|%s|\n", TIME, FRAME_NR, IP_SRC_ADDR, + IP_SRC_PRT, SESSIONID, IP_DEST_ADDR, IP_DEST_PRT, PROT, REQ_URI, CSEQ, + SDP_IP_ADDR, PORT, FORMAT > FILENAME + + FRAME_NR++ + + # Reset SIP message variables + CSEQ = "" + FORMAT = "" + IP_DEST_ADDR = "" + IP_DEST_SRC = "" + IP_SRC_ADDR = "" + IP_SRC_SRC = "" + LOG_MSG_TYPE = "" + PORT = "" + PROT = "SIP" + REQ_URI = "" + SDP_IP_ADDR = "" + SESSIONID = "" + } + + TIME = $2 + + # Reset log variables + delete LOG_MSG + LOG_MSG_LINE_NR = 0 + } + + LOG_MSG[LOG_MSG_LINE_NR] = $0 + + # A[1] contains the SIP method. This step is needed as lines + # may sometimes look like: + # Allow:ACK,BYE,CANCEL,INFO,INVITE + split($1, A, ":") + if (A[1] == "ACK" || + A[1] == "BYE" || + A[1] == "INFO" || + A[1] == "INVITE" || + A[1] == "PRACK" || + A[1] == "SIP/2.0") { + + LOG_MSG_TYPE = "sip" + + REQ_URI = $0 + sub ("SIP/2.0", "", REQ_URI) + + # Remove unwanted white space at the beginning of the string + sub ("^ ", "", REQ_URI) + } + + if (LOG_MSG_TYPE == "sip") { + + if (A[1] == "Call-ID") { + if (A[2] == "") { + CALLID = $2 + } else { + CALLID = A[2] + sub("^ ", "", CALLID) + } + + # Map the often very long Call-IDs to a short index, + # with only 1 or 2 digits + if (CALLIDS[CALLID] == "") { + CALLIDS[CALLID] = NOC + NOC++ + } + + # Use the shortened callid + SESSIONID = CALLIDS[CALLID] + + } else if (A[1] == "CSeq") { + CSEQ = $0 + sub ("CSeq:", "", CSEQ) + + # Remove unwanted white space at the beginning of the string + sub ("^ ", "", CSEQ) + } + + } else if ($1 == "udp" && $3 == "Bytes") { + + # Process the line: + # udp 1339 Bytes OUT to 10.48.43.13:5060 + + if ($4 == "OUT") { + IP_SRC_ADDR = bwIpAddr + IP_SRC_PRT = "5060" + split($6, I, ":") + IP_DEST_ADDR = I[1] + IP_DEST_SRC = I[2] + } else if ($4 == "IN") { + split($6, I, ":") + IP_SRC_ADDR = I[1] + IP_SRC_SRC = I[2] + IP_DEST_ADDR = bwIpAddr + IP_DEST_PRT = "5060" + } + } + + LOG_MSG_LINE_NR++ + + }' $inputfile +} + function make_long_and_short_caches() { - make_long_and_short_caches_of_pcap_trace + # Try to be smart and figure out the format of the input file + INPUT_FILE_FORMAT=$(file $inputfile | cut -d: -f2) + case $INPUT_FILE_FORMAT in + *ASCII*) + make_long_and_short_caches_of_broadworks_log + ;; + *) + # If file type unknown, assume a network trace + make_long_and_short_caches_of_pcap_trace + esac TRACE_FILE=$(basename $inputfile) MD5SUM=$(md5sum $inputfile | awk '{print $1}') Modified: conf/callflow.conf =================================================================== --- conf/callflow.conf 2012-06-15 10:33:49 UTC (rev 170) +++ conf/callflow.conf 2012-06-15 11:16:47 UTC (rev 171) @@ -50,6 +50,10 @@ # Default value: yes SHOW_SDP=yes +# The IP address of the Broadworks SIP server +# Default value: 127.0.0.1 +# BW_IP_ADDR= + # Inkscape does not have a quiet option, it might get one in version 0.49 # Workaround; sent the output to /dev/null when INKSCAPE_MODE value is set QUIET # Default value: QUIET Modified: man/callflow.1 =================================================================== --- man/callflow.1 2012-06-15 10:33:49 UTC (rev 170) +++ man/callflow.1 2012-06-15 11:16:47 UTC (rev 171) @@ -10,7 +10,6 @@ .SH DESCRIPTION This is a collection of awk and shell scripts that will take a capture file that can be read by tshark and produce a callflow sequence diagram. The scripts have been primarily tested with SIP call flows, but should work for other network traffic as well. - .SS Using callflow With callflow in your path, just type: callflow capture-file.cap @@ -141,6 +140,10 @@ Show detailed SDP information in the callflow (default) +.SS Trace-file +Two trace-file formats are supported; network traces (files that can be read by wireshark, tshark and the like) and Broadsoft Broadworks (SIP) server logs. In case a Broadworks log is used, the Broadworks server IP address can be specified in callflow's configuration files. + + .SS Filtering the diagram A filter can be used to show only those frames that match the given filter criteria. This filter is for traces that have been captured with programs such as wireshark, snoop, tcpdump, thsark and the like. Callflow uses tshark's DISPLAY filter functionality to filter the trace. More information about tshark's DISPLAY filter can be obtained from the tshark man page. A useful filter for SIP traffic is "sip". Modified: mktar =================================================================== --- mktar 2012-06-15 10:33:49 UTC (rev 170) +++ mktar 2012-06-15 11:16:47 UTC (rev 171) @@ -7,7 +7,7 @@ CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') -CALLFLOW_VERSION=20111030-167 +CALLFLOW_VERSION=20120615-170 # Only include files that are known, any other file is to be ignored FILES="AUTHORS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-15 10:33:55
|
Revision: 170 http://callflow.svn.sourceforge.net/callflow/?rev=170&view=rev Author: rbos Date: 2012-06-15 10:33:49 +0000 (Fri, 15 Jun 2012) Log Message: ----------- Code added in preparation for a Broadworks Application Server log analyser Modified Paths: -------------- callflow Modified: callflow =================================================================== --- callflow 2012-06-13 16:19:53 UTC (rev 169) +++ callflow 2012-06-15 10:33:49 UTC (rev 170) @@ -1,12 +1,7 @@ #!/bin/bash ### -### CallFlow diagram generator +### (SIP) Callflow diagram generator ### -### Usage: callflow.sh capture-file | -t text-input file -### -### Output: $DESTDIR/callflow.svg, $DESTDIR/callflow.png, $DESTDIR/index.html, $DESTDIR/frames/frame*.html -### -### ################################## # Variables @@ -65,7 +60,7 @@ COLORS="black" } -function make_long_and_short_caches() { +function make_long_and_short_caches_of_pcap_trace() { tshark -r $inputfile $FARG "$FVAL" -V > $DESTDIR/callflow.long @@ -245,7 +240,12 @@ }' $TMPDIR/${PRGNAME}-tshark-3.$$ > $DESTDIR/callflow.short rm $TMPDIR/${PRGNAME}-tshark-[123].$$ +} +function make_long_and_short_caches() { + + make_long_and_short_caches_of_pcap_trace + TRACE_FILE=$(basename $inputfile) MD5SUM=$(md5sum $inputfile | awk '{print $1}') echo "$TRACE_FILE|$MD5SUM|$FVAL" > $DESTDIR/metadb This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-13 16:20:02
|
Revision: 169 http://callflow.svn.sourceforge.net/callflow/?rev=169&view=rev Author: rbos Date: 2012-06-13 16:19:53 +0000 (Wed, 13 Jun 2012) Log Message: ----------- Mark missing SIP header Modified Paths: -------------- scripts/long2html.awk Modified: scripts/long2html.awk =================================================================== --- scripts/long2html.awk 2011-10-30 20:05:26 UTC (rev 168) +++ scripts/long2html.awk 2012-06-13 16:19:53 UTC (rev 169) @@ -170,6 +170,7 @@ if ($1 ~ "Date:" ) MARK = "sip" if ($1 ~ "Expires:" ) MARK = "sip" if ($1 ~ "From:" ) MARK = "sip" + if ($1 ~ "Max-Forwards:" ) MARK = "sip" if ($1 ~ "Min-SE:" ) MARK = "sip" if ($1 ~ "P-[A-Z][a-z].*:" ) MARK = "sip" if ($1 ~ "Privacy:" ) MARK = "sip" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-30 20:05:32
|
Revision: 168 http://callflow.svn.sourceforge.net/callflow/?rev=168&view=rev Author: rbos Date: 2011-10-30 20:05:26 +0000 (Sun, 30 Oct 2011) Log Message: ----------- Prepare for a release with build instructions Modified Paths: -------------- mktar Modified: mktar =================================================================== --- mktar 2011-10-30 19:44:03 UTC (rev 167) +++ mktar 2011-10-30 20:05:26 UTC (rev 168) @@ -7,6 +7,7 @@ CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') +CALLFLOW_VERSION=20111030-167 # Only include files that are known, any other file is to be ignored FILES="AUTHORS @@ -16,6 +17,7 @@ conf/callflow.conf css/CMakeLists.txt css/callflow.css +INSTALL images/CMakeLists.txt images/frame_bottom.png images/frame_dynamic.png This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-30 19:44:09
|
Revision: 167 http://callflow.svn.sourceforge.net/callflow/?rev=167&view=rev Author: rbos Date: 2011-10-30 19:44:03 +0000 (Sun, 30 Oct 2011) Log Message: ----------- - mktar: Distribute the CMakeLists files. - INSTALL: added build instruction Modified Paths: -------------- mktar Added Paths: ----------- INSTALL Added: INSTALL =================================================================== --- INSTALL (rev 0) +++ INSTALL 2011-10-30 19:44:03 UTC (rev 167) @@ -0,0 +1,29 @@ +The build instructions are: +# mkdir build +# cd build +# cmake .. +# make install + +This will install the files in their default locations. + +The file locations can be influenced using arguments. +The following once are available: +- CMAKE_INSTALL_PREFIX +- SYSCONF_INSTALL_DIR +- DOCDIR + +So the commands: +# mkdir build +# cd build +# cmake .. -DCMAKE_INSTALL_PREFIX=/usr +# make install + +Will install most files under /usr instead of /usr/local + + +Package builders may want to use the commands: +# mkdir build +# cd build +# cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DDOCDIR=/usr/share/doc/package/callflow -DSYSCONF_INSTALL_DIR=/etc +# make install DESTDIR=<package build directory> + Modified: mktar =================================================================== --- mktar 2011-10-27 22:00:10 UTC (rev 166) +++ mktar 2011-10-30 19:44:03 UTC (rev 167) @@ -7,21 +7,29 @@ CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') + # Only include files that are known, any other file is to be ignored FILES="AUTHORS +CMakeLists.txt callflow +conf/CMakeLists.txt conf/callflow.conf +css/CMakeLists.txt css/callflow.css +images/CMakeLists.txt images/frame_bottom.png images/frame_dynamic.png images/frameless.png images/frame_right.png images/index.tpl +js/CMakeLists.txt js/callflow.js js/overlib.js LICENSE +man/CMakeLists.txt man/callflow.1 README +scripts/CMakeLists.txt scripts/callflow.awk scripts/list-nodes.awk scripts/long2html.awk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-27 22:00:16
|
Revision: 166 http://callflow.svn.sourceforge.net/callflow/?rev=166&view=rev Author: rbos Date: 2011-10-27 22:00:10 +0000 (Thu, 27 Oct 2011) Log Message: ----------- Added CPACK_DEBIAN_PACKAGE_MAINTAINER, which is required to build an deb package. This can done with: # cpack -G DEB callflow an RPM can be obtained with: cpack -G RPM callflow But for the moment it is not possible to obtain and an simple tarball, that can be used later on for building callflow. Modified Paths: -------------- CMakeLists.txt Modified: CMakeLists.txt =================================================================== --- CMakeLists.txt 2011-10-27 21:34:49 UTC (rev 165) +++ CMakeLists.txt 2011-10-27 22:00:10 UTC (rev 166) @@ -2,6 +2,11 @@ project(callflow NONE) +set(VERSION_MAJOR 20110914) +set(VERSION_MINOR 160) +set(VERSION_STRING "${VERSION_MAJOR}-${VERSION_MINOR}") +message(STATUS "*** Will build version ${VERSION_STRING} ***") + # Perhaps redundant, but nice to have the if structure around as an example if(UNIX) set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin") @@ -21,11 +26,6 @@ endif() add_definitions("-DDOCDIR=\\\"${CMAKE_INSTALL_PREFIX}/${DOCDIR}\\\"") -set(VERSION_MAJOR 20110914) -set(VERSION_MINOR 160) -set(VERSION_STRING "${VERSION_MAJOR}-${VERSION_MINOR}") -message(STATUS "*** Will build version ${VERSION_STRING} ***") - add_subdirectory(js) add_subdirectory(css) add_subdirectory(man) @@ -52,6 +52,7 @@ # If the cmake version includes cpack, use it if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") set(CPACK_PACKAGE_EXECUTABLES callflow) + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Dummy Value") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Callflow Sequence Diagram Generator") if(WIN32) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-27 21:34:55
|
Revision: 165 http://callflow.svn.sourceforge.net/callflow/?rev=165&view=rev Author: rbos Date: 2011-10-27 21:34:49 +0000 (Thu, 27 Oct 2011) Log Message: ----------- The documentation is now relocatable with -DDOCDIR=<somepath> Modified Paths: -------------- CMakeLists.txt conf/CMakeLists.txt Modified: CMakeLists.txt =================================================================== --- CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) +++ CMakeLists.txt 2011-10-27 21:34:49 UTC (rev 165) @@ -2,27 +2,23 @@ project(callflow NONE) -set(MAIN_DIR_NAME "callflow") - +# Perhaps redundant, but nice to have the if structure around as an example if(UNIX) set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin") - set(DATADIR "${CMAKE_INSTALL_PREFIX}/share/${MAIN_DIR_NAME}") - set(DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/${MAIN_DIR_NAME}") elseif(APPLE) - # random placeholders set(BINDIR "bin") - set(DATADIR "share/callflow") - set(DOCDIR "share/doc/callflow") elseif(WIN32) set(BINDIR "bin") - set(DATADIR "data") - set(DOCDIR "doc") endif() set(MANDIR "share/man/") -set(SHAREDIR "share/${MAIN_DIR_NAME}/") +set(SHAREDIR "share/${PROJECT_NAME}/") add_definitions("-DSHAREDIR=\\\"${CMAKE_INSTALL_PREFIX}/${SHAREDIR}\\\"") -set(DOCDIR "share/doc/${MAIN_DIR_NAME}") +if(DEFINED DOCDIR) + set(DOCFOLDER "${DOCDIR}") +else() + set(DOCFOLDER "${PREFIX}/share/doc/${PROJECT_NAME}") +endif() add_definitions("-DDOCDIR=\\\"${CMAKE_INSTALL_PREFIX}/${DOCDIR}\\\"") set(VERSION_MAJOR 20110914) @@ -41,18 +37,18 @@ # Installation # +install(PROGRAMS + callflow + DESTINATION "${BINDIR}" +) + install(FILES AUTHORS LICENSE README - DESTINATION "${DOCDIR}" + DESTINATION "${DOCFOLDER}" ) -install(PROGRAMS - callflow - DESTINATION "${BINDIR}" -) - # If the cmake version includes cpack, use it if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") set(CPACK_PACKAGE_EXECUTABLES callflow) Modified: conf/CMakeLists.txt =================================================================== --- conf/CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) +++ conf/CMakeLists.txt 2011-10-27 21:34:49 UTC (rev 165) @@ -1,4 +1,4 @@ install(FILES callflow.conf - DESTINATION "${SYSCONF_INSTALL_DIR}/${MAIN_DIR_NAME}" + DESTINATION "${SYSCONF_INSTALL_DIR}/${PROJECT_NAME}" ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-27 21:05:10
|
Revision: 164 http://callflow.svn.sourceforge.net/callflow/?rev=164&view=rev Author: rbos Date: 2011-10-27 21:05:04 +0000 (Thu, 27 Oct 2011) Log Message: ----------- Make the build better relocatable Modified Paths: -------------- CMakeLists.txt css/CMakeLists.txt images/CMakeLists.txt js/CMakeLists.txt man/CMakeLists.txt scripts/CMakeLists.txt Modified: CMakeLists.txt =================================================================== --- CMakeLists.txt 2011-10-27 19:47:21 UTC (rev 163) +++ CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) @@ -5,9 +5,9 @@ set(MAIN_DIR_NAME "callflow") if(UNIX) - set(BINDIR "usr/bin") - set(DATADIR "usr/share/callflow") - set(DOCDIR "usr/share/doc/callflow") + set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin") + set(DATADIR "${CMAKE_INSTALL_PREFIX}/share/${MAIN_DIR_NAME}") + set(DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/${MAIN_DIR_NAME}") elseif(APPLE) # random placeholders set(BINDIR "bin") Modified: css/CMakeLists.txt =================================================================== --- css/CMakeLists.txt 2011-10-27 19:47:21 UTC (rev 163) +++ css/CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) @@ -1,5 +1,5 @@ install(FILES callflow.css - DESTINATION share/callflow/css + DESTINATION "${SHAREDIR}/css" ) Modified: images/CMakeLists.txt =================================================================== --- images/CMakeLists.txt 2011-10-27 19:47:21 UTC (rev 163) +++ images/CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) @@ -4,5 +4,5 @@ frameless.png frame_right.png index.tpl - DESTINATION share/callflow/images + DESTINATION "${SHAREDIR}/images" ) Modified: js/CMakeLists.txt =================================================================== --- js/CMakeLists.txt 2011-10-27 19:47:21 UTC (rev 163) +++ js/CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) @@ -1,6 +1,6 @@ install(FILES callflow.js overlib.js - DESTINATION share/callflow/js + DESTINATION "${SHAREDIR}/js" ) Modified: man/CMakeLists.txt =================================================================== --- man/CMakeLists.txt 2011-10-27 19:47:21 UTC (rev 163) +++ man/CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) @@ -1,4 +1,4 @@ install(FILES callflow.1 - DESTINATION "${MANDIR}" + DESTINATION "${MANDIR}/man1" ) Modified: scripts/CMakeLists.txt =================================================================== --- scripts/CMakeLists.txt 2011-10-27 19:47:21 UTC (rev 163) +++ scripts/CMakeLists.txt 2011-10-27 21:05:04 UTC (rev 164) @@ -6,5 +6,5 @@ marksession.awk prunenodes.awk removedups.sh - DESTINATION share/callflow/scripts + DESTINATION "${SHAREDIR}/scripts" ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-27 19:47:27
|
Revision: 163 http://callflow.svn.sourceforge.net/callflow/?rev=163&view=rev Author: rbos Date: 2011-10-27 19:47:21 +0000 (Thu, 27 Oct 2011) Log Message: ----------- The configuration file for calflow.conf should be installed in SYSCONF_INSTALL_DIR This can be enforced on the command line with: cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc Modified Paths: -------------- conf/CMakeLists.txt Modified: conf/CMakeLists.txt =================================================================== --- conf/CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) +++ conf/CMakeLists.txt 2011-10-27 19:47:21 UTC (rev 163) @@ -1,4 +1,4 @@ install(FILES callflow.conf - DESTINATION etc/callflow + DESTINATION "${SYSCONF_INSTALL_DIR}/${MAIN_DIR_NAME}" ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-27 18:56:46
|
Revision: 162 http://callflow.svn.sourceforge.net/callflow/?rev=162&view=rev Author: rbos Date: 2011-10-27 18:56:39 +0000 (Thu, 27 Oct 2011) Log Message: ----------- Add cmake lists file. A package can be made with the command: cmake .; make package It is a start, it is not perfect. Hopefully one day it will.... Added Paths: ----------- CMakeLists.txt conf/CMakeLists.txt css/CMakeLists.txt images/CMakeLists.txt js/CMakeLists.txt man/CMakeLists.txt scripts/CMakeLists.txt Added: CMakeLists.txt =================================================================== --- CMakeLists.txt (rev 0) +++ CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) @@ -0,0 +1,83 @@ +cmake_minimum_required(VERSION 2.6) + +project(callflow NONE) + +set(MAIN_DIR_NAME "callflow") + +if(UNIX) + set(BINDIR "usr/bin") + set(DATADIR "usr/share/callflow") + set(DOCDIR "usr/share/doc/callflow") +elseif(APPLE) + # random placeholders + set(BINDIR "bin") + set(DATADIR "share/callflow") + set(DOCDIR "share/doc/callflow") +elseif(WIN32) + set(BINDIR "bin") + set(DATADIR "data") + set(DOCDIR "doc") +endif() + +set(MANDIR "share/man/") +set(SHAREDIR "share/${MAIN_DIR_NAME}/") +add_definitions("-DSHAREDIR=\\\"${CMAKE_INSTALL_PREFIX}/${SHAREDIR}\\\"") +set(DOCDIR "share/doc/${MAIN_DIR_NAME}") +add_definitions("-DDOCDIR=\\\"${CMAKE_INSTALL_PREFIX}/${DOCDIR}\\\"") + +set(VERSION_MAJOR 20110914) +set(VERSION_MINOR 160) +set(VERSION_STRING "${VERSION_MAJOR}-${VERSION_MINOR}") +message(STATUS "*** Will build version ${VERSION_STRING} ***") + +add_subdirectory(js) +add_subdirectory(css) +add_subdirectory(man) +add_subdirectory(conf) +add_subdirectory(images) +add_subdirectory(scripts) + +# +# Installation +# + +install(FILES + AUTHORS + LICENSE + README + DESTINATION "${DOCDIR}" +) + +install(PROGRAMS + callflow + DESTINATION "${BINDIR}" +) + +# If the cmake version includes cpack, use it +if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") + set(CPACK_PACKAGE_EXECUTABLES callflow) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Callflow Sequence Diagram Generator") + + if(WIN32) + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32") + set(CPACK_GENERATOR ZIP) + elseif(APPLE) + # TODO + # see http://cmake.org/Wiki/CMake:CPackPackageGenerators#Bundle_.28OSX_only.29 + # + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-osx") + set(CPACK_PACKAGE_ICON "") + set(CPACK_BUNDLE_NAME ${PROJECT_NAME}) + set(CPACK_BUNDLE_ICON "") + set(CPACK_BUNDLE_PLIST "") + set(CPACK_GENERATOR BUNDLE) + else() + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}") + set(CPACK_GENERATOR TGZ) + set(CPACK_SOURCE_GENERATOR TBZ2) + endif() + + include(CPack) + +endif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") + Added: conf/CMakeLists.txt =================================================================== --- conf/CMakeLists.txt (rev 0) +++ conf/CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) @@ -0,0 +1,4 @@ +install(FILES + callflow.conf + DESTINATION etc/callflow +) Added: css/CMakeLists.txt =================================================================== --- css/CMakeLists.txt (rev 0) +++ css/CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) @@ -0,0 +1,5 @@ +install(FILES + callflow.css + DESTINATION share/callflow/css +) + Added: images/CMakeLists.txt =================================================================== --- images/CMakeLists.txt (rev 0) +++ images/CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) @@ -0,0 +1,8 @@ +install(FILES + frame_bottom.png + frame_dynamic.png + frameless.png + frame_right.png + index.tpl + DESTINATION share/callflow/images +) Added: js/CMakeLists.txt =================================================================== --- js/CMakeLists.txt (rev 0) +++ js/CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) @@ -0,0 +1,6 @@ +install(FILES + callflow.js + overlib.js + DESTINATION share/callflow/js +) + Added: man/CMakeLists.txt =================================================================== --- man/CMakeLists.txt (rev 0) +++ man/CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) @@ -0,0 +1,4 @@ +install(FILES + callflow.1 + DESTINATION "${MANDIR}" +) Added: scripts/CMakeLists.txt =================================================================== --- scripts/CMakeLists.txt (rev 0) +++ scripts/CMakeLists.txt 2011-10-27 18:56:39 UTC (rev 162) @@ -0,0 +1,10 @@ +install(FILES + callflow.awk + list-nodes.awk + long2html.awk + makevars.awk + marksession.awk + prunenodes.awk + removedups.sh + DESTINATION share/callflow/scripts +) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-10-24 20:45:23
|
Revision: 161 http://callflow.svn.sourceforge.net/callflow/?rev=161&view=rev Author: rbos Date: 2011-10-24 20:45:16 +0000 (Mon, 24 Oct 2011) Log Message: ----------- A script to make a release tarbal. Initial checkin Added Paths: ----------- mktar Added: mktar =================================================================== --- mktar (rev 0) +++ mktar 2011-10-24 20:45:16 UTC (rev 161) @@ -0,0 +1,56 @@ +#!/bin/bash +# +# Script to make a release tarbal + +PRGNAME=$(basename $0) + +CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | + awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') + +# Only include files that are known, any other file is to be ignored +FILES="AUTHORS +callflow +conf/callflow.conf +css/callflow.css +images/frame_bottom.png +images/frame_dynamic.png +images/frameless.png +images/frame_right.png +images/index.tpl +js/callflow.js +js/overlib.js +LICENSE +man/callflow.1 +README +scripts/callflow.awk +scripts/list-nodes.awk +scripts/long2html.awk +scripts/makevars.awk +scripts/marksession.awk +scripts/prunenodes.awk +scripts/removedups.sh" + +# Verify location +FILE=$(echo "$FILES" | head -1) +[[ ! -f "$FILE" ]] && { + ( echo "$PRGNAME: $FILE not found" + echo " might be in the wrong location" + ) >&2 + exit 1 +} + +TMPDIR=/tmp/$PRGNAME.$$ +mkdir -p $TMPDIR/callflow-$CALLFLOW_VERSION +tar cf - $FILES | (cd $TMPDIR/callflow-$CALLFLOW_VERSION; tar xf - ) + +TARBAL=/var/tmp/callflow-$CALLFLOW_VERSION.tar.bz2 +( cd $TMPDIR; tar cjf $TARBAL callflow-$CALLFLOW_VERSION) +rm -rf "${TMPDIR:xxxxx}" + +if [[ -f $TARBAL ]]; then + echo "$PRGNAME: tarbal stored at $TARBAL" +else + echo "$PRGNAME: tarbal $TARBAL not found," + echo " something went awfully wrong!" +fi + Property changes on: mktar ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-09-11 16:35:04
|
Revision: 160 http://callflow.svn.sourceforge.net/callflow/?rev=160&view=rev Author: rbos Date: 2011-09-11 16:34:58 +0000 (Sun, 11 Sep 2011) Log Message: ----------- Surpress inkscape progress messages Modified Paths: -------------- callflow conf/callflow.conf Modified: callflow =================================================================== --- callflow 2011-09-11 16:18:07 UTC (rev 159) +++ callflow 2011-09-11 16:34:58 UTC (rev 160) @@ -715,7 +715,7 @@ # Inkscape does not have a quiet option, it might get one in version 0.49 # Workaround; sent the output to /dev/null in case the files to be archived # will be listed on the screen - if [[ "$ARCHIVE_TYPE" == "files" ]]; then + if [[ "$ARCHIVE_TYPE" == "files" ]] || [[ "$INKSCAPE_MODE" == "QUIET" ]]; then inkscape --export-dpi=90 -C --export-background=white --export-png=$DESTDIR/callflow.png $DESTDIR/callflow.svg >/dev/null 2>&1 else inkscape --export-dpi=90 -C --export-background=white --export-png=$DESTDIR/callflow.png $DESTDIR/callflow.svg Modified: conf/callflow.conf =================================================================== --- conf/callflow.conf 2011-09-11 16:18:07 UTC (rev 159) +++ conf/callflow.conf 2011-09-11 16:34:58 UTC (rev 160) @@ -50,6 +50,11 @@ # Default value: yes SHOW_SDP=yes +# Inkscape does not have a quiet option, it might get one in version 0.49 +# Workaround; sent the output to /dev/null when INKSCAPE_MODE value is set QUIET +# Default value: QUIET +INKSCAPE_MODE=QUIET + # Duplicate packet removal: # # REMOVE_DUP_MODE, how aggressive should callflow be with respect to removing This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-09-11 16:18:13
|
Revision: 159 http://callflow.svn.sourceforge.net/callflow/?rev=159&view=rev Author: rbos Date: 2011-09-11 16:18:07 +0000 (Sun, 11 Sep 2011) Log Message: ----------- add --with-sdp and --no-sdp information to the manual page Modified Paths: -------------- man/callflow.1 Modified: man/callflow.1 =================================================================== --- man/callflow.1 2011-09-11 15:04:57 UTC (rev 158) +++ man/callflow.1 2011-09-11 16:18:07 UTC (rev 159) @@ -86,6 +86,11 @@ .TP .PD 0 +.B --no-sdp +Do not show detailed SDP information in the callflow + +.TP +.PD 0 .B --no-time Do not show the time. @@ -130,7 +135,12 @@ .BI --width-between-nodes " width" Distance between the nodes in final picture. The distance may vary between 100 and 250. Default = 200. +.TP +.PD 0 +.B --with-sdp +Show detailed SDP information in the callflow (default) + .SS Filtering the diagram A filter can be used to show only those frames that match the given filter criteria. This filter is for traces that have been captured with programs such as wireshark, snoop, tcpdump, thsark and the like. Callflow uses tshark's DISPLAY filter functionality to filter the trace. More information about tshark's DISPLAY filter can be obtained from the tshark man page. A useful filter for SIP traffic is "sip". This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-09-11 15:05:04
|
Revision: 158 http://callflow.svn.sourceforge.net/callflow/?rev=158&view=rev Author: rbos Date: 2011-09-11 15:04:57 +0000 (Sun, 11 Sep 2011) Log Message: ----------- - Add the arguments --no-sdp and --with-sdp to control the presentation of the detailed SDP in the callflow Modified Paths: -------------- callflow conf/callflow.conf scripts/callflow.awk Modified: callflow =================================================================== --- callflow 2011-09-11 14:16:47 UTC (rev 157) +++ callflow 2011-09-11 15:04:57 UTC (rev 158) @@ -295,6 +295,8 @@ --no-loops Prevent flows from and to the same equipment to be represented. + --no-sdp + Do not show detailed SDP information in the SIP information line --no-time Do not show the time. @@ -321,6 +323,9 @@ Distance between adjacent nodes in final picture. The width may vary between 100 and 250. Default = 200. + --with-sdp + Show detailed SDP in the SIP information line (default) + EOF } @@ -329,8 +334,8 @@ # Command line argument parsing, the allowed arguments are # alphabetically listed, keep it this way please. LOPT="archive:,browser" -LOPT="$LOPT,capture-filter:,help,list-nodes,no-loops,no-time,nodenames:,refresh-cache" -LOPT="$LOPT,remove-duplicate-frames,title:,width-between-nodes:,version" +LOPT="$LOPT,capture-filter:,help,list-nodes,no-loops,no-sdp,no-time,nodenames:,refresh-cache" +LOPT="$LOPT,remove-duplicate-frames,title:,with-sdp,width-between-nodes:,version" # Note that we use `"$@"' to let each command-line parameter expand to a # separate word. The quotes around `$@' are essential! @@ -370,6 +375,9 @@ noLocalLoop=1; #echo " * Flows from and to the same equipment will not be shown" ;; + --no-sdp) + OPT_SHOW_SDP=no + ;; --no-time) OPT_SHOW_TIME=no #echo " * Time will not be shown" @@ -393,6 +401,9 @@ OPT_WIDTH_BETWEEN_NODES=$2; shift #echo " * Width between nodes to use: $OPT_WIDTH_BETWEEN_NODES" ;; + --with-sdp) + OPT_SHOW_SDP=yes + ;; --version|-v) echo "$PRGNAME version: $PRGVRSN"; exit;; --) shift; break;; *) echo "unknow argument \"$1\""; exit $ERR_ARGUMENT;; @@ -484,6 +495,14 @@ TITLE="$inputfile" fi +if [[ -z "$OPT_SHOW_SDP" ]]; then + [[ -z "$SHOW_SDP" ]] && { + SHOW_SDP=yes + } +else + SHOW_SDP=$OPT_SHOW_SDP +fi + # DESTDIR DESTDIR=`ls $inputfile | sed -r "s/(.+)\.(.+)/\1/"`; mkdir -p $DESTDIR @@ -654,6 +673,7 @@ topMargin = 50 bottomMargin = 50 showTime = "$SHOW_TIME" + showSDP = "$SHOW_SDP" if ( showTime == "yes" ) { leftMargin = 125 } else { Modified: conf/callflow.conf =================================================================== --- conf/callflow.conf 2011-09-11 14:16:47 UTC (rev 157) +++ conf/callflow.conf 2011-09-11 15:04:57 UTC (rev 158) @@ -35,7 +35,7 @@ WEBSERVER_URL= # WIDTH_BETWEEN_NODES, the distance between the adjacent nodes in the -# callflow diagram.i +# callflow diagram. # Default value = 200 # Minimun value = 100, Maximum value = 250, WIDTH_BETWEEN_NODES= @@ -46,6 +46,10 @@ # All values are listed at e.g.: http://www.w3schools.com/css/pr_font_font-size.asp SIP_MSG_FONT_SIZE= +# SHOW_SDP, show detailed SDP information in the callflow +# Default value: yes +SHOW_SDP=yes + # Duplicate packet removal: # # REMOVE_DUP_MODE, how aggressive should callflow be with respect to removing Modified: scripts/callflow.awk =================================================================== --- scripts/callflow.awk 2011-09-11 14:16:47 UTC (rev 157) +++ scripts/callflow.awk 2011-09-11 15:04:57 UTC (rev 158) @@ -181,7 +181,7 @@ } printf ("</text>\n") - if ($9 ~ "SDP") { + if ((showSDP == "yes") && ($9 ~ "SDP")) { output = sprintf("%s: a=%s:%s %s %s", $10, $12, $13, $14, $15) } else { output = $10 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-09-11 14:16:53
|
Revision: 157 http://callflow.svn.sourceforge.net/callflow/?rev=157&view=rev Author: rbos Date: 2011-09-11 14:16:47 +0000 (Sun, 11 Sep 2011) Log Message: ----------- - Added SDP information Modified Paths: -------------- callflow scripts/callflow.awk Modified: callflow =================================================================== --- callflow 2011-09-04 19:41:17 UTC (rev 156) +++ callflow 2011-09-11 14:16:47 UTC (rev 157) @@ -76,7 +76,8 @@ # in (at least) 2 ways in SIP messages. The field can indeed be called "Call-ID", # but just "i" in abbreviated SIP messages! Both formats can be used in 1 call. tshark -r $inputfile $FARG "$FVAL" -t a -T fields -E separator='|' \ - -e frame.number -e ip.src -e ip.dst -e sip.CSeq -e sip.Call-ID | awk ' + -e frame.number -e ip.src -e ip.dst -e sip.CSeq -e sip.Call-ID \ + -e sdp.connection_info -e sdp.media -e sdp.media_attr | awk ' BEGIN { FS = "|" OFS = "|" @@ -89,8 +90,42 @@ NOC++ } - printf "%s||%s|%s|%s|{%s}\n", $1, $2, $3, $4, CALLID[$5] + # Process connection info and obtain the ip addr + sub("IN IP4 ", "", $6) + # Process SDP media info and obtain the port and RTP format + split($7, S, " ") + PORT = S[2] + FORMAT = S[4] + + # Process SDP media attributes and get the direction information + if ($8 ~ "sendrecv") { + DIRECTION = "sendrecv" + } else if ($8 ~ "recvonly") { + DIRECTION = "recvonly" + } else if ($8 ~ "sendonly") { + DIRECTION = "sendonly" + } else { + DIRECTION = "" + } + + # The printf line below results in the following fields and order. For now we assume + # that the delivered media contains audio, but that may change one day when + # for example audio and video are involved. + # + # No Description + # 1 frame.number + # 2 tracefile + # 3 ip.src + # 4 ip.dst + # 5 sip.CSeq + # 6 sip.Call-ID + # 7 sdp.connection_info (ip addr) + # 8 sdp.media (audio port) + # 9 sdp.media (audio format) + # 10 sdp.media_attr (audio direction (sendrecv, sendonly, recvonly)) + printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s\n", $1, $2, $3, $4, CALLID[$5], $6, PORT, FORMAT, DIRECTION + }' > $TMPDIR/${PRGNAME}-tshark-1.$$ # The second step in getting SIP data required by callflow. This step delivers @@ -126,6 +161,16 @@ split($0, A, " ") + # The line below results in the following fields and order. + # + # No Description + # 1 frame number + # 2 time + # 3 protocol + # 4 srcport + # 5 dstport + # 6 info + for (i = 1; i <= 5; i++) { printf "%s|", $i } @@ -138,8 +183,12 @@ printf "%s\n", $L }' > $TMPDIR/${PRGNAME}-tshark-2.$$ - + # Join the 2 datafiles that have been obtained above together + # When merged the first field (frame number) in the file ${PRGNAME}-tshark-2.$$ + # is combined with the first field (frame.number) in the file ${PRGNAME}-tshark-1.$$ + # So after the merge the total number of fields is 1 less, than the total number + # of fields. join -t "|" --nocheck-order $TMPDIR/${PRGNAME}-tshark-1.$$ $TMPDIR/${PRGNAME}-tshark-2.$$ > $TMPDIR/${PRGNAME}-tshark-3.$$ # Order the fields @@ -147,22 +196,28 @@ FS = "|" # The order in which the fields will be arranged in the output file - # 1: time - # 2: tracefile - # 3: frame.number - # 4: ip.src - # 5: ip.srcport - # 6: session information - # 7: ip.dst - # 8: ip.dstport - # 9: protocol - # 10: info field - # 11: SIP CSeq + # + # No Description + # 1 time + # 2 tracefile + # 3 frame.number + # 4 ip.src + # 5 ip.srcport + # 6 session information + # 7 ip.dst + # 8 ip.dstport + # 9 protocol + # 10 info field + # 11 SIP CSeq + # 12 Connection info (IP addr) + # 13 Media info (Port) + # 14 Media info (Protocol) + # 15 Media attribute direction # The array (A) that the 'split' command creates, maps the input fields - # to the output file order. As example: input field 7 is mapped to + # to the output file order. As example: input field 11 is mapped to # output field 1 and input field 5 is mapped to output field 11. - split("7 2 1 3 9 6 4 10 8 11 5", A, " ") + split("11 2 1 3 13 6 4 14 12 15 5 7 8 9 10", A, " ") } { # Look for "200 OK" or "200 Ok" and add the SIP method, from the Modified: scripts/callflow.awk =================================================================== --- scripts/callflow.awk 2011-09-04 19:41:17 UTC (rev 156) +++ scripts/callflow.awk 2011-09-11 14:16:47 UTC (rev 157) @@ -181,7 +181,13 @@ } printf ("</text>\n") - line(x1,x2,y,$10,c); + if ($9 ~ "SDP") { + output = sprintf("%s: a=%s:%s %s %s", $10, $12, $13, $14, $15) + } else { + output = $10 + } + + line(x1, x2, y, output, c); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-09-04 19:41:23
|
Revision: 156 http://callflow.svn.sourceforge.net/callflow/?rev=156&view=rev Author: rbos Date: 2011-09-04 19:41:17 +0000 (Sun, 04 Sep 2011) Log Message: ----------- added missed 'the' Modified Paths: -------------- scripts/callflow.awk Modified: scripts/callflow.awk =================================================================== --- scripts/callflow.awk 2011-09-04 19:39:11 UTC (rev 155) +++ scripts/callflow.awk 2011-09-04 19:41:17 UTC (rev 156) @@ -117,7 +117,7 @@ if ($0 ~ "^#") { - # The "!" is link identifier + # The "!" is the link identifier LINK = index($0, "!") if (LINK == 0) { # There is no link, everything behind the first "#" is the comment This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2011-09-04 19:39:17
|
Revision: 155 http://callflow.svn.sourceforge.net/callflow/?rev=155&view=rev Author: rbos Date: 2011-09-04 19:39:11 +0000 (Sun, 04 Sep 2011) Log Message: ----------- added missing 'are' Modified Paths: -------------- scripts/removedups.sh Modified: scripts/removedups.sh =================================================================== --- scripts/removedups.sh 2011-09-04 19:37:34 UTC (rev 154) +++ scripts/removedups.sh 2011-09-04 19:39:11 UTC (rev 155) @@ -78,7 +78,7 @@ # here anyway again, as this "remove duplicated frames mode" seems to be # the better one. The others may be removed, including the md5sum # processing done above. - # The code block /^[^#]/ takes care that comments skipped + # The code block /^[^#]/ takes care that comments are skipped awk -F"|" '/^[^#]/ {print $3, $1}' $DESTDIR/callflow.short | while read FRAME TIME; do MD5SUM=$(mkmd5sum $DESTDIR/frames/Frame${FRAME}.html | sed 's/ .*//') echo "$FRAME|$TIME|$MD5SUM" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |