Dealing with a heap of SIP logs to pin point a certain call might sometimes be a difficult journey.
However, we also need a tool able to parse text formatted sip logs on a platform with dozen of *NIX servers.
The SIP applications are themself responsible to output formatted logs; the developers did not want to run infinite tcpdump for each application port on each server.
Moreover, the developers wanted to create a command line tool that can operate directly on the servers without windowing requirements.
Sip Viewer is a free and open-source tool that aims to output the extracted call flows as simple ASCII ladders directly in the command prompt (or using an eclipse plugin).
Lastly, another important feature was to control the parser to not only aggregate according the the call-id header, but to extend our application logic in order to correlate many dialogs linked by a Back to Back User agent.
Detailed instructions on how to install and use the SipTextViewer utility on your Mac are available HERE.
Here are some key features of "SipTextViewer":
· Parse sip logs and aggregate sessions
· Able to match many dialogs in the context of a back to back user agent
· Configurable parser to suit specific log formats.
2 parsers available by default:
· plain text (default) : see format example.
· For jainsip users, you can override the stack implementation with this class to enable plain text logs.
· if using the to/from tags token matching strategy to correlate dialogs in the context of a back to back user agent, the regex used to distinguish the token is configurable (--parser-b2b-token-regex)
· xml (jain-sip default): see format example.
· use with : -p javax.sip.viewer.parser.XmlLogParser
· more than 1 file can be provided on command line (useful when logger does rolling)
· also able to parse gzip files (by example, our environment archives the files each night).
· note: if you parse big files you might need to extend memory using -Xmx java parameter.
· you can filter by call ID, B2B sip tag token, caller name, caller phone number and destination phone number.
· you can use the error only filter to only expose the messages containing an error response code.
· Organize the sip messages into an ASCII ladder.
· All related traces are linked under the ASCII ladder
· Name resolution (Reverse DNS) of the actor's ip to title the ASCII ladder (configurable, false by default)
· each arrow is prefixed with a flag to distinguish the call leg (according to call-id).
What's New in This Release: [ read full changelog ]
· When a trace includes an invite dialog and a subscribe dialog, if the event id of the subscribe dialog matches the callId header of the invite dialog the traces will be correlated