Alexis Sturm wrote:
< I capture RTP payload but with other codec types than G.711, like
G.729 or G.723. But it seems like these
< payload type are
supported by the application while trying to save the payload in .au format.
Does anyone know
<if this will be
supported in the future?
It is currently supported
to save G.711 (A-law respectivelly U-law) as au-file directly from
Ethereal.
G.729 and G.723 codecs are
covered by several patents. I think that it might not be possible to
integrate
support for these codecs
directly in Ethereal due to this.
With Ethereal 0.9.16
version it is possible to save the RTP stream in rtpdump format. You can then
use e.g.
the rtpplay program to
send the rtp stream towards e.g. JMF JMStudio.
http://www.ethereal.com/lists/ethereal-users/200311/msg00191.html
http://www.cs.columbia.edu/IRT/software/rtptools/
http://java.sun.com/products/java-media/jmf/
I have tried this for
several different codecs (H.263 video, H.261 video, G.723.1, GSM , ...) towards
JMF JMStudio and/or QuickTime Player.
uNFORTUNATELY Neither of
JMPlayer and QuickTime Player supports G.729.
<Also, is there a way
to assign permanent specific UDP ports (or a range of
ports), so that the ethereal will
<recognize and decode
these packets as RTP packets? Using the option decode
as every time isnt
<convenient!...
If there is
H.323-signalling, RTSP-signalling or SIP-signalling in the capture it may work
automatically.
The SIP support has been
added recently, so it is not included in the Ethereal 0.9.16
version.
So if you are using SIP
then it may be worth trying out the CVS version.
If you have possibilities
to build Ethereal from source code it is very easy to add some UDP port
numbers
in proto_reg_handoff_rtp
in packet-rtp.c.
In the example below I
have added so that udp-port 30100 and 30102 is dissected as
RTP.
void
proto_reg_handoff_rtp(void)
{
dissector_handle_t
rtp_handle;
data_handle = find_dissector("data");
/*
* Register this dissector as one that can be selected by
a
* UDP port number.
*/
rtp_handle =
find_dissector("rtp");
dissector_add_handle("udp.port",
rtp_handle);
dissector_add("udp.port", 30100, rtp_handle); /* UDP port 30100
- added */
dissector_add("udp.port",
30102, rtp_handle); /* UDP port 30102 - added */
}