RTP payload(RFC 2833) DTMF handler in JMF

hi all,
anybody tell how I receive RTP payload format vai JMF .I am able to receive DTMF through SIP INFO.
[email protected]

Hi Teodor.
Thanks for your answer.
This is my dial-peer 4000:
dial-peer voice 4000 voip
service session
destination-pattern [2-9]T
rtp payload-type nte 98
voice-class codec 55
session protocol sipv2
session target ipv4:65.xxx.xxx.35
dtmf-relay rtp-nte
The voice class codec 55 puts the g729a as the preferred one.
Your answer gave me the idea where to look and found that the calls that doesn't match the dial peer 4000 and go by the default (PeerID= 0) are shown at the show call history voice command as using tx_DtmfRelay=rtp-nte
while the calls that do match the dp 4000 for an unknown reason are shown as using tx_DtmfRelay=inband-voice.
I am looking for a reason but I think it is with the supplier of the DIDs as another supplier using the same dp4000 and also G729a codec looks like using rtp-nte.
If you have any further idea please let me know.
Regards

Similar Messages

  • MTP Required on G.729 for RFC 2833?

    I have a call that passes through the following devices:
    Cisco 7942 --(SCCP)--> Cisco CME (28xx ISR) --(SIP Trunk)--> UCM 7.0 --(MGCP)--> Cisco 28xx ISR --> PRI
    I'm not able to get DTMF to relay reliably when using G.729 (Annex A or B).  In the Cisco UCM trace, I see "No more MTP resources available."  I'm not sure why an MTP resource would be required for DTMF since it should be using RFC 2833 throughout.
    The dial-peer on CME is:
    dial-peer voice 2 voip
    destination-pattern ....T
    session protocol sipv2
    session target ipv4:10.0.20.60
    dtmf-relay rtp-nte
    The MGCP configuration on the PRI gateway is:
    mgcp
    mgcp call-agent 10.0.20.60 2427 service-type mgcp version 0.1
    mgcp dtmf-relay voip codec all mode nte-ca
    mgcp rtp unreachable timeout 1000 action notify
    mgcp modem passthrough voip mode nse
    mgcp package-capability rtp-package
    no mgcp package-capability res-package
    mgcp package-capability sst-package
    no mgcp package-capability fxr-package
    mgcp package-capability pre-package
    no mgcp timer receive-rtcp
    mgcp sdp simple
    mgcp rtp payload-type g726r16 static
    I've tried both NTE modes on the gateway, neither seem to work.  Any assistance would be greatly appreciated.

    CM will need to invoke an MTP, unless you configure the MGCP gateway for RTP-NTE with:
    mgcp dtmf-relay voip codec all mode nte-gw
    If you configure that and flap the MGCP process and click 'reset gateway' from CM, CM will have that endpoint registered with an RTP-NTE cap, so since it is RTP-NTE on both sides, RTP-NTE will flow from CME directly to the MGCP gateway.  If this still doesn't work, collect CM traces and these debugs for a failure, maybe there's a payload type issue.
    MGCP gateway:
    debug mgcp pack
    debug voip rtp sess name
    SIP gateway:
    debug ccsip all
    debug voip rtp sess name
    The other option is to configure MGCP NTFY:
    mgcp dtmf-relay voip codec all mode out-of-band
    With this configuration, you need to have the MRG on the SIP trunk containing an IOS SW MTP for g.729 so that it can get invoked and terminate RTP-NTE and notify CM via SCCP that it needs to send an MGCP NTFY to the MGCP gateway.
    For both configurations, make sure you configure 'rtp-nte' on the SIP trunk configuration in CM.

  • Can I have a custom RTP payload, and still use a MediaLocator?

    Hi,
    I think I am a little confused. Can I have a custom RTP payload, and still use Manager.createPlayer(MediaLocator locator) to create my player?
    This doesn't seem possible because the RTPManger's addPayload(Format format, int payloadType) method isn't static, forcing me to always create my RTPManager first.
    Is this a valid observation, or am I missing something?
    Your comments are highly appreciated.
    Kind regards,
    Erwin

    Thanks for your prompt reply.
    The short answer is yes.
    The MediaLocator is used to identify the source, or destination for a media stream. For example this could be a file (file://c:\mydisk\audio.wav) or a URL (http://mydomain/music/audio.wav)
    Ok, I get that, but the MediaLocator is also used to identify the protocol, rtp in this case, and the protocol in its turn is used by the framework to locate the DataSource. I am not suggesting what you write is incorrect, I am only trying to understand how this works the way it does.
    RTP is used to transport streaming media in real time over a network (usually UDP).And that is exactly what I need it for.
    The receiver of an RTP stream is an RTP receiver. Players take the datasource(created from the MediaLocator) and feed the data to the RTP manager so it can be streamed across the network or vice versa.
    The vice versa part is what I am interested in. I need to handle a proprietary video format, packed as RTP, and shipped over UDP. My initial approach was to simply register my DePacketizer with the PlugInManager, and add my custom payload type to the RTPHandler (addFormat(Format fmt, int type)). That obviously doesn't work.
    So what I'm trying to convey is that the MediaLocator used in creating a Player will be different, and is used for a different purpose, than the Internet address, and Port used to create an RTPManager.I need a good night of sleep to think that over. I.m.h.o. there is no reason to handle "http://host:port/video/whatever.ext" different from "rtp://host:port/video/whatever.ext". The only difference is that in the first case I can build my graph based on the extension of whatever, and in the second case I have to wait for my first packet in order to determine the payload type. In both cases I expect "DataSource ds = Manager.createDataSource(ml) to work (and it probably does for the standard payload types).
    The JMF framework has a .../media/protocol/rtp/DataSource class as well as a .../media/protocol/http/DataSource class.
    Is this making any sense?Not sure yet, but I certainly appreciate your help.
    Note: In general you don't need to create a custom Payload for RTP.
    What if I want to ship a proprietary video format?
    Thanks a lot,
    Erwin

  • Problem with the examples of Transmitting and Receiving Custom RTP Payloads

    I have tried the examples of this web:
    http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/CustomPayload.html
    Transmitting and Receiving Custom RTP Payloads
    I run the examples all right.
    But I want to transmit the sound using my own format, so i want to change the file PcmPacketizer.java
    and PcmDepacketizer.java
    I think the sound data is in the byte[] inData ---- {byte[] inData = (byte[])inBuf.getData();}
    so i change the data with my own function, so the inData have the diffrent length:
    then i transmit the data with the packet header
    public synchronized int process(Buffer inBuf, Buffer outBuf) {
    int inLength = inBuf.getLength();
    byte[] inData = (enbase((byte[])inBuf.getData()));
    byte[] outData = (byte[])outBuf.getData();
         if (outData == null || outData.length < PACKET_SIZE) {
         outData = new byte[PACKET_SIZE];
         outBuf.setData(outData);
         // Generate the packet header.
         int rate = (int)inFormat.getSampleRate();
         int size = (int)inFormat.getSampleSizeInBits();
         int channels = (int)inFormat.getChannels();
         outData[0] = 0;     // filler
         outData[1] = (byte)((rate >> 16) & 0xff);
         outData[2] = (byte)((rate >> 8) & 0xff);
         outData[3] = (byte)(rate & 0xff);
         outData[4] = (byte)inFormat.getSampleSizeInBits();
         outData[5] = (byte)inFormat.getChannels();
         outData[6] = (byte)inFormat.getEndian();
         outData[7] = (byte)inFormat.getSigned();
         int frameSize = inFormat.getSampleSizeInBits() * inFormat.getChannels();
         // Recompute the output format if the input format has changed.
         // The crucial info is the frame rate and size. These are used
         // to compute the actual rate the data being sent.
         if (rate != (int)outFormat.getFrameRate() ||
         frameSize != outFormat.getFrameSizeInBits()) {
              outFormat = new AudioFormat(CUSTOM_PCM,
                        AudioFormat.NOT_SPECIFIED, // rate
                        AudioFormat.NOT_SPECIFIED, // size
                        AudioFormat.NOT_SPECIFIED, // channel
                        AudioFormat.NOT_SPECIFIED, // endian
                        AudioFormat.NOT_SPECIFIED, // signed
                        size * channels,     // frame size
                        rate,               // frame rate
                        null);
    if (inLength + historyLength >= DATA_SIZE) {
         // Enough data for one packet.
                   int copyFromHistory = Math.min(historyLength, DATA_SIZE);
                   System.arraycopy(history, 0, outData, HDR_SIZE , copyFromHistory);
    int remainingBytes = DATA_SIZE - copyFromHistory;
    System.arraycopy(inData, inBuf.getOffset(),
                   outData, copyFromHistory + HDR_SIZE, remainingBytes);
    historyLength -= copyFromHistory;
    inBuf.setOffset( inBuf.getOffset() + remainingBytes);
    inBuf.setLength( inLength - remainingBytes);
         outBuf.setFormat(outFormat);
         outBuf.setLength(PACKET_SIZE);
         outBuf.setOffset(0);
    return INPUT_BUFFER_NOT_CONSUMED ;
    if (inBuf.isEOM()) { // last packet
    System.arraycopy(history, 0, outData, HDR_SIZE, historyLength);
    System.arraycopy(inData, inBuf.getOffset(),
                   outData, historyLength + HDR_SIZE, inLength);
         outBuf.setFormat(outFormat);
         outBuf.setLength(inLength + historyLength + HDR_SIZE);
         outBuf.setOffset(0);
    historyLength = 0;
    return BUFFER_PROCESSED_OK;
    // Not enough data for one packet. Save the remainder
         // for next time.
    System.arraycopy(inData, inBuf.getOffset(),
                   history, historyLength,inLength) ;
    historyLength += inLength;
    return OUTPUT_BUFFER_NOT_FILLED ;
    I think I change the data use my own function debase(), so i should decode the data in the file:PcmDepacketizer.java
    but int PcmDepacketizer.java the example is so simple that i don't know how to find and change the data.
    there is only a few lines here:
    Object outData = outBuf.getData();
         outBuf.setData(inBuf.getData());
         inBuf.setData(outData);
         outBuf.setLength(inBuf.getLength() - HDR_SIZE);
         outBuf.setOffset(inBuf.getOffset() + HDR_SIZE);
         System.out.println("the outBuf length is "+inBuf.getLength());
    I write a function : public static byte [] debase(byte[] str)
    but i don't know where can i use it.
    please tell me what should i do or where is wrong about my thought.

    the function in PcmPackettizer.java is
    public static byte[] enbase(byte [] b) {
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         //byte[] oo = new byte[(b.length + 2) / 3*4];
         //for (int i = 0; i < (b.length + 2) / 3; i++) {
         for (int i = 0; i < (b.length + 2) / 3; i++) {
              short [] s = new short[3];
              short [] t = new short[4];
              for (int j = 0; j < 3; j++) {
                   if ((i * 3 + j) < b.length)
                        s[j] = (short) (b[i*3+j] & 0xFF);
                   else
                        s[j] = -1;
              t[0] = (short) (s[0] >> 2);
              if (s[1] == -1)
                   t[1] = (short) (((s[0] & 0x3) << 4));
              else
                   t[1] = (short) (((s[0] & 0x3) << 4) + (s[1] >> 4));
              if (s[1] == -1)
                   t[2] = t[3] = 64;
              else if (s[2] == -1) {
                   t[2] = (short) (((s[1] & 0xF) << 2));
                   t[3] = 64;
              else {
                   t[2] = (short) (((s[1] & 0xF) << 2) + (s[2] >> 6));
                   t[3] = (short) (s[2] & 0x3F);
              for (int j = 0; j < 4; j++)
                   os.write(t[j]);
                   //os.write(t[j],(3*i+j),1);
                   //os.write(Base64.charAt(t[j]));
         //return new String(os.toByteArray());
         return os.toByteArray();
    just like the base64 function

  • AVReceive2 gives error:  No format has been registered for RTP Payload type

    Hello,
    I am using the AVReceive2 program (http://java.sun.com/products/java-media/jmf/2.1.1/solutions/AVReceive.html#requirements) as posted to hopefully play back RTP in real time. I have it set to receive a known good RTP stream and I receive the following error:
    No format has been registered for RTP Payload type 8
    I have seen posts for a similar error but it seemed to be in the context of an A-law add on which am I not doing. Am I missing a plug-in or modification to the code?
    thanks in advance,
    Erich

    Hi Erich,
    I have the same problem when I using AVReceive2.java .Could yuo describe your solution in order to solve the issue?
    In order to create the RTP stream I used VLC and is impossible to change the encapsulation method and then the payload type .
    What kind of streaming server are yuo used?
    My e-mail address is [email protected]
    If you can , please write me your proceeding in order to solve the problem.
    Thank you

  • Firefox webrtc rtp payload type

    I'm seeing an issue when placing a webrtc call with firefox when the answer SDP has different payload types than the offer. for example, i get an offer from firefox that has the opus codec with payload type 109. if the answer SDP comes in with the opus codec and payload type 110, audio will not be heard. looking in the WebRTC.log file you will see a whole bunch of "IncomingRTPPacket received invalid payloadtype".
    i believe the correct behavior in this case is for firefox to transmit opus with RTP payload type 110 (ie the remote payload type) and expect to receive opus with payload type 109. it looks like firefox will send with 110 and expect to receive with 110.
    the same scenario with chrome does not have a problem. if i change the SDP answer to match the payload type of the offer, audio can be heard in firefox.
    the same issue can be seen with VP8 video or other codecs with dynamic payload types.
    for reference, the relevant excerpt from rfc3264:
    "In the case of RTP, if a particular codec was referenced with a
    specific payload type number in the offer, that same payload type
    number SHOULD be used for that codec in the answer. "
    in this case the answer SDP is violating the SHOULD in the rfc, but this is sometimes unavoidable when interworking SDP between devices (ie some sort of back-to-back signaling agent).

    That RFC is a proposed standard at the moment [http://datatracker.ietf.org/doc/rfc3264/]
    However, this would be a great bug for tech evangelism, I would encourage you to file a bug with some technical examples. Way to keep the web open!

  • Support RTP payload type 8 and 13

    I am trying to use JMF to play back recorded RTP streams containing RTP payload type 8 (ALaw) and 13 (CN). It seems these are not supported by default.
    Did anybody add support to JMF to support these payload types succesfully? Help is greatly appreciated.

    Hello
    i have a same problem.so i was asking if you solved it or not.
    Thanks

  • Dynamic rtp payload type 123

    Hello,
    We have a problem about dynamic rtp payload type 123. Wireshark is shown rtp packets which dynamic rtp payload type is 123 malformed.
    why do cisco gateways send dynamic rtp payload type 123 packets to non-cisco gateways? Can we disable dynamic rtp payload type 123 nagotiation?
    please help,
    Thanks
    Omer

    Hello again,
    Signaling Protocol is H323. I can not take debug h323 etc  logs because of the device has too many calls. But you can find below rtp debug that i took before.
    I can not share AS full config because privacy stuff.
    voice service voip
    fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711ulaw
    h323
      emptycapability
      h225 timeout setup 10
    modem passthrough nse codec g711ulaw
    sip
      bind control source-interface Loopback3
      bind media source-interface Loopback3
    no voice-fastpath enable
    dial-peer voice 1 voip
    description INCOMING Traffic
    service incomingcallcontrol
    voice-class aaa 3
    voice-class codec 101
    incoming called-number B00290..........$
    dtmf-relay rtp-nte h245-signal h245-alphanumeric
    fax-relay ecm disable
    fax rate 14400
    ip qos dscp cs3 signaling
    no vad
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs tx s=10.10.10.1(23690), d=172.20.60.2(12994), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    RTP(54397): fs rx s=10.10.11.1(20928), d=10.10.10.1(23946), pt=123, ts=1303D47D, ssrc=20351C0, marker=0
    Regards

  • Custom RTP Payloads

    Hi all
    In the "Transmitting and Receiving Custom RTP Payloads"
    http://java.sun.com/products/java-media/jmf/2.1.1/solutions/CustomPayload.html
    I want to do packetizer/depacketizer for video
    so, I have VideoPacketizer.java and VideoDepacketizer.java like PcmDepacketizer/PcmPacketizer
    public class VideoPacketizer implements Codec {
    public VideoPacketizer() {
         supportedInputFormats = new VideoFormat[] {
         new VideoFormat(
              VideoFormat.RGB
    supportedOutputFormats = new VideoFormat[] {
         new VideoFormat(
    CUSTOM_VIDEO
              System.out.println(supportedOutputFormats[0].getEncoding());
              System.out.println("PA construct ok!");
    public synchronized int process(Buffer inBuf, Buffer outBuf) {
    int inLength = inBuf.getLength();
    byte[] inData = (byte[])inBuf.getData();
    byte[] outData = (byte[])outBuf.getData();
         if (outData == null || outData.length < PACKET_SIZE) {
         outData = new byte[PACKET_SIZE];
         outBuf.setData(outData);
         outData[0] = 0;
         if (first) {
              outFormat = new VideoFormat(CUSTOM_VIDEO,
    new Dimension(160, 120),
                   VideoFormat.NOT_SPECIFIED,
                   null,
                   VideoFormat.NOT_SPECIFIED);
              first = false;
              System.out.println("first................................");
    When I run AVCustomTrans.java,it has a error
    Error : Format of Stream not supported in RTP Session Manager
    I know that my custom_video don't supported RTP
    so,I wonder how can I do that.
    thanks a lot.
    fcustd

    Have you solved this problem.
    Please can you tell me how i can implement a video packetizer/depacketizer.
    It would be very helpfull.
    Thanks a lot

  • Can someone help me with "no format has been reg. for RTP Payload type 10"

    I am trying to send audio from Mac to PC. Mac uses quicktime for java and PC uses jmf. I looked at the Jmf supported formats list and on the SDP file for mac i used payload types like :
    m=audio 2656 RTP/AVP 0
    c=IN IP4 239.60.60.60
    . I also tried other formats too but I always get "no format has been registered for rtp payload type 10". on the pc side. Anyone can help me out? thanks!

    Sprint's unlimited wireless service is actually ten bucks more a month than my Verizon service, according to Sprint's Web site.
    And Verizon's customer support is the best in the industry.
    I have never experienced a "throttling" with my Verizon account. And I have never experienced any limited bandwidth usage problem.

  • Custom RTP payload

    I used the sample "Custom RTP payload"of sun,sed when program run it tell on console that "the track is not possibile to send as MyPCM Format" and it is sent with another format!! Why????

    I used the sample "Custom RTP payload"of sun,sed when program run it tell on console that "the track is not possibile to send as MyPCM Format" and it is sent with another format!! Why????

  • Custom RTP Payload Types in JMF

    I have a completely non-audio/video content type that I've sourced from an SVG based whiteboard, which generates a Media Locator. Instantiating a DataSource via the Manager from this Media Locator grabs the correct whiteboard from a static list, and generates a series of controls for how often full updates of the board are sent, collision handling, etc. (Works)
    This generates a custom Format output which is basically the SVG's XML representation (Works)
    Feeding this into a processor, you can request BZIP compression of this data to minimize the transmission bandwidth (works)
    Further feeding this data into a a custom packetizer class breaks the data into chunks, and adds FEC packets to the stream when the buffer has to be broken into 2 or more chunks. Output is a derivative of the earlier custom format. (Works)
    Muxing this data back together gets you a custom DataSource of type "fec.rtp", which technically could handle any data type, but only advertises support for my custom packetized data formats. (Muxer is based on RTPSyncBufferMux - Works)
    Here's where things are getting frustrating. Calling com.sun.media.rtp.RTPSessionMgr.formatSupported (part of RTPSyncBufferMux) will tell you that I've correctly registered these custom formats for RTP transmission, but attempting to create a sendStream gives this error:
    javax.media.format.UnsupportedFormatException: Format of Stream not supported in RTP Session Manager
    at com.sun.media.rtp.RTPSessionMgr.createSendStream(RTPSessionMgr.java:1104)
    at com.sun.media.rtp.RTPSessionMgr.createSendStream(RTPSessionMgr.java:1262)
    This is extremely frustrating to put it mildly to have gotten this far and not be able to proceed, but I'm smack up against a brick wall at this point, and pressed for time to get this done. Basically I just want RTP Session Manager to take one buffer at a time and send it over the network. The FEC Depacketizer handles the work of reassembling the chunks, and passing along the data once it has enough to reconstruct a full buffer. (Uses an expiring cache so the data goes away automatically if too much is dropped to reconstruct a full buffer)
    My gut tells me there's some sort of helper that processes the dataSource, and hands data to the RTP Session Manager in a way that it understands that it has a "single packet chunk" (I've seen some classes in the com.sun.media tree that suggest as much to me) but I haven't figured this part out yet. Does anyone have experience enough with this particular API to point me in the right direction?
    Is there any good documentation for the com.sun.media tree incidentally? I'm using a LOT of helper classes from in there because once you look at the source, it's easy to see how useful they are, but it's a pain to dig through 5 or 6 classes to find out what I need to override and what I shouldn't touch.

    Switched everything over to using RTPManager, and found I had to register the type with each individual instance, instead of just doing it once. The resulting exception is now further down in the RTPSessionMgr source, which I'm assuming is progress, though that's a dangerous assumption.
    javax.media.format.UnsupportedFormatException: Format not supported
            at com.sun.media.rtp.RTPSessionMgr.createSendStream(RTPSessionMgr.java:1147)
            at com.sun.media.rtp.RTPSessionMgr.createSendStream(RTPSessionMgr.java:1262)
            at SVGEditorPanelTest.DialogTest(SVGEditorPanelTest.java:238)Here's the code, from RTPManager.newInstance to SendStream.start
            // Create the transmitter
            RTPManager rtpMgr = RTPManager.newInstance();
            Codec c = new Packetizer();
            // Register the RTP stream formats
            Format f = c.getSupportedOutputFormats(null)[0];
            Logger.global.info("Registering format: " + f);
            rtpMgr.addFormat(f, 105);
            SessionAddress localAddr = new SessionAddress(InetAddress.getLocalHost(), 1057);
            String cname = "test@localhost";
            String username = System.getProperty("User.name");
            // create our local Session Address
            SourceDescription[] userdesclist = new SourceDescription[]{
                new SourceDescription(SourceDescription.SOURCE_DESC_EMAIL,
                "[email protected]",
                1,
                false),
                new SourceDescription(SourceDescription.SOURCE_DESC_CNAME,
                cname,
                1,
                false),
                new SourceDescription(SourceDescription.SOURCE_DESC_TOOL,
                "Whiteboard Test",
                1,
                false),
                new SourceDescription(SourceDescription.SOURCE_DESC_NAME,
                username,
                1,
                false)
            rtpMgr.initialize(new SessionAddress[]{localAddr}, userdesclist, 0.05,
                    0.25, null);
            SessionAddress destAddr = new SessionAddress(
                    InetAddress.getByName("127.0.0.1"),
                    1058);
            System.out.println("Adding target: " + destAddr.toString());
            rtpMgr.addTarget(destAddr);
            System.out.println("--- Creating Send Stream on port " + localAddr.getDataPort() + " ---");
            System.out.println("Content Type: " + dataOutput.getContentType());
            System.out.println("Stream Format: " + format + "(" + format.getDataType().getCanonicalName() + ")");
            Object[] controls = dataOutput.getControls();
            for (int i = 0; i < controls.length; i++) {
                System.out.println("Control Type: " + controls.getClass().getName());
    rtpMgr.getLocalParticipant().setSourceDescription(userdesclist);
    try {
    SendStream sendStream = rtpMgr.createSendStream(dataOutput, 0);
    sendStream.start();
    System.out.println("New Stream SSRC: " + sendStream.getSSRC());
    System.out.println("New Stream Source: " + sendStream.getDataSource());
    } catch (UnsupportedFormatException ex) {
    System.out.println("Failed format is: " + ex.getFailedFormat());
    throw ex;
    It may be worth noting that this is part of a Unit Test, hence the lack of exception handling.
    Stdout looks like:RTP Format Supported
    Adding target: DataAddress: /127.0.0.1
    ControlAddress: /127.0.0.1
    DataPort: 1058
    ControlPort: 1059
    --- Creating Send Stream on port 1057 ---
    Content Type: fec.rtp
    Stream Format: bzipsvgwb/rtp(byte[])
    Failed format is: bzipsvgwb/rtp
    Edited by: sh0ckbyt3 on Dec 29, 2008 12:05 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • H.263/RTP payload

    As we know jmf can stream in h.263/rtp with payload 34. i am streaming h.263/rtp to a device which does not understand payload 34 rather payload 96 whihc is used by h.263-1998 and 2000 updated versions.
    Do anyone has any idea how can change payload from 34 to compatible with 96.
    Sorry if it is not the right place/forum to ask this question. But if any one has any idea where i can ask question regarding transcoding h.263/rtp packets from the one compatible with rfc 2190 (which is supported by jmf and is almost outdated) to packets compatible with rfc 2429.

    Sorry captfoss i was on leave for some time so could not respond to your reply on time.
    While working today i found that JMF has a videoformat :-VideoFormat.H263_1998_RTP which is compaitable with RFC 2429. But there is a problem - i tried several times to transcode my h263 file i am reading from local computer to h263_1998_RTP format but it fails giving following error:-
    Failed to realize: com.sun.media.ProcessEngine@19209ea
      Cannot build a flow graph with the customized options:
        Unable to transcode format: H263, 176x144, FrameRate=15.0, Length=76032 0 extra bytes
          to: H263-1998/RTP
          outputting to: RAW/RTP
    Error: Unable to realize com.sun.media.ProcessEngine@19209eathen i checked in jmf registery i found a codec -com.sun.media.codec.video.vh263.Native Decoder -This Decoder converts h263,h263/rtp as well as h263-1998/rtp into yuv format. but i could not found any encoder which converts any format(yuv or rgb or h263 or any other) to h263-1998/rtp.
    Is there any way by which i can transcode to h263-1998/rtp???

  • Comfort noise packet suppression and dtmf handling

    I receive rtp packets from a gateway(dsp) which sends rtp packets with payload 13 which is for comfort noise.I would like to discard these packets and receive the actual payload 0 packets but i am having trouble in doing the same.Also if i were to handle a payload which was not defined say to handle dtmf payloads as named telephony events is there any way to do it?

    Hi,
    I'm having the same trouble with payload changes, but using payload 19 and payload 0, and I want discard these packets too. Did you solve your problem? How?
    Thanks,
    Vitor.

  • RFC JDBC Exception Handling

    Hello,
    i have the following scenario:
    RFC receiver adapter (synchronous) <> XI <> JDBC receiver adapter (to MS SQL-database)
    Is it possible to catch JDBC-exceptions, e.g. "duplicate primary key" and pass it to the calling rfc adapter?
    thanks for your help
    Christian

    Hello,
    still my problem is the exception handling of the synchronous JDBC - call.
    If an error occurs I get the error "no payload found" in sxmb_moni_bpe
    I think this is a problem of where the error occur, in the SOAP header
    In sxmb_moni i get the following Error:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Aufruf eines Adapters
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'KUNDEN' (structure 'STATEMENT_NAME'): com.microsoft.sqlserver.jdbc.SQLServerException: Verletzung der PRIMARY KEY-Einschränkung 'PK_Kunden'. Ein doppelter Schlüssel kann in das 'dbo.KUNDEN'-Objekt nicht eingefügt werden.</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Has anybody got any idea where my mistake is?#
    I´m at loss.
    If you need further information, contact me. I´ll send you the required informations.
    Thanks and regards
    Christian

Maybe you are looking for

  • Lost Video IN\Out put

    I have lost my video in/out via firewire. I have check and the firewire reads my DSR-11. I have control (play, ff, rw) but i am not recieving any video or audio. Audio/Video settings-----DV NTSC 48khm Device Control-----------Firewire NTSC View Video

  • Mail using java

    Hello Every one i just want send a simple mail using java or jsp.. so can any one help me ?

  • Display info in new window

    I have detail information about some article,now I need to print this details, but before user wants to open new window with the same content and after that print everything... Help me please!

  • Disparity in software update - n79

    When i try to update my n79 software/firmware through the nokia site at http://www.nokia-asia.com/get-support-and-software/download-software/device-software-update/can-i-up... it says the latest available is Version:  11.049 which is wat i have insta

  • Upgrade from PSE8 to Photoshop or CS4: question

    I'm confused about something. I have PSE8 for Mac. I would like to get Photoshop. Does this mean I have to get CS4? Is there a standalone Photoshop without all the other Creative Suite things? Also I can't pay $700. Anyone know of any deals, or bundl