I've created a short guide on how SIP manages audio streams and the sorts of things that go wrong when those streams traverse NATs. The full guide can be read at SIP and Audio Guide.

To complement the guide I've whipped together a diagnostics tool.

SIPSorcery RTP Diagnostics Tool

In an attempt to help people diagnose RTP audio issues I have created a new tool that provides some simple diagnostic messages about receiving and transmitting RTP packets from a SIP device. The purpose of the tool is twofold:

1. On a SIP call indicate the expected socket the RTP packets were expected from and the actual socket they came from,
2. On a SIP call indicate whether it was possible to transmit RTP packets to the
same socket the SIP caller was sending from.

To use the tool take the following steps:

1. Open http://diags.sipsorcery.com in a browser and click the Go button. Note that the web page uses web sockets which are only supported in the latest web browsers, I’ve tested it in Chrome 16, Firefox 9.0.1, Internet Explorer 9,
2. A message will be displayed that contains a SIP address to call. Type that into your softphone or set up a SIPSorcery dialplan rule to call it,
3. If the tool receives a call on the SIP address it will display information about how it received and sent RTP packets.

The tool is very rudimentary at this point but if it proves useful I will be likely to expend more effort to polish and enhance it. If you do have any feedback or feature requests please do add a comment.

Waiting for call to 993507@diags.sipsorcery.com
INVITE request received from udp:69.59.142.213:5060 for sip:993507@diags.sipsorcery.com.
Advertised RTP remote socket 9x.48.xx.xx:16396, expecting from 9x.48.xx.xx:16396.
RTP received from 9x.48.xx.xx:16396.
Sending dummy packet to 9x.48.xx.xx:16396.
Test completed. There were no RTP send or receive errors.

Is the 993507 uri unique to each person, is it permanent or does it gets re-cycled?
Update: just found that it generates a random temporary one for each time. No worries, still good.

Requests:
1. Maybe you can give each SS user a permanent URI that uses "Tropo" to do txt-2-speech report rather than having to use a browser? Will allow for "away from desk" testing.
2. It will be useful to add a "advanced" toggle box and display the full SIP handshake/message (all headers) exchanged?

The suggestion about text-to-speech won't really work as if there is a problem with the audio streams, which is what the tool is designed to help with, there's either not going to be any speech to convert or any converted text to listen to.

The second suggestion is certainly achievable. I'll put in on the list for the next batch of work I do on the tool.