×

Discussion Board

Results 1 to 6 of 6
  1. #1
    Registered User
    Join Date
    May 2004
    Posts
    14

    Audio playing over RTP on 6600 and 6620.

    Hi Friends,

    I have an application which communicates with an external server (own proprietary server) via SIP. On startup, my application registers with this server as a predefined user. Server is also configured with announcement files per user, which are played when an INVITE is received for that user. Playing means that the server reads this file and generates RTP packets and sends it to the application who sends INVITE. There is a default announcement, which sends approx 3700 RTP packets over the network when an INVITE is received.

    In the emulator environment (SDK 2.0), my application and the server are in the same local network and hence Ethereal running on my machine shows the same count of RTP packets received. The application communicates with the server for RTP packets over UDP. For audio playing, the app uses CMdaAudioOutputStream, whose WriteL() is called with a buffer containing the RTP payload. The app also maintains a count of the packets received, which is incremented just after the RecvFrom() call and a count of packets played, which is incremented in the MaoscPlayComplete() method if aError == KErrNone. Both these counts are same around 3500, which is less than the actual packets sent from the server. But the announcement is played with acceptable audio quality. The difference in the number of packets displayed in Ethereal and that received by my application could be due to the Socket Receive Buffer size (currently set to 256K).

    I have also tested the same application on the Nokia 6600 over GPRS with the server having a real IP. Even in this case, the application is able to receive RTP packets and play them, but the audio quality is very poor. The application COUNTS show that only around 800 (out of 3700) packets are received and played by the application. This may be due to the GPRS network delay.

    My questions are
    1. Can I do something to increase the audio quality on the emulator? I mean, what changes do I need to do in my applications so that it receives all the packets?

    2. How do I confirm that this huge loss of packets on the handset is completely due to the network delay? The socket receive buffer size could also be a problem. This value is set to 256K but I cannot increase this while running the application on the handset, as it may not actually allocate that much memory for my application socket queue.

    3. I have installed this application using the same SIS file as that for 6600 on the Nokia 6620. The application runs properly, but the playing of audio is even worse than that of 6600. Is there any difference in the audio APIs for 6600 and 6620?

    Please help me out. I was unable to find any document that mentions about differences between 6600 and 6620 (apart from the device specifications document).

    Regards,
    Ravi

  2. #2
    Super Contributor
    Join Date
    Apr 2003
    Location
    Czech Republic
    Posts
    915
    I'd say that the size of "socket buffer" shouldn't be a bottleneck. I guess you should look little bit more closely on the data you are sending (if the network / gprs) can handle such a payload (meaning amount of data) and possibly use some compresion for it.

    What kind of data are you sending? AMR would be a nice choice.

    Also what kind of RTP stack do you have? Is working correctly? Or is it written by you and you just ask if the problem can be there?..:-)

    Are you using some control mechanism / protocol like RTCP or RTPS?

    There is some kind of QoS in RTCP protocol...

  3. #3
    Registered User
    Join Date
    May 2004
    Posts
    14
    Thanks for your response.

    Yes, I can understand that the network may not be able to handle high bit rate payload like PCM etc. We are using G.729A encoding to send packets over the network. AMR is definitely a good choice, but my efforts to make AMR encoding work with audio streaming on the Nokia 6600 failed.

    As far as RTP and related control protocols are concerned, neither are we using a full fleged RTP stack, nor do we use RTCP etc. We have a simple code that receives RTP packets from the socket, does some basic validation of the RTP headers, chops the header and send the payload to the AudioEngine's callback method, which just calls the AudioStream's WriteL() method with this payload.

    Since this code is very simple, it does not take too much of processing time and hence almost all the RTP packets received by the application are processed and played properly. The problem basically lies in the huge difference between the number of packets sent by the server and that received by the application.

    Hope to hear from you soon.

    Thanks & Regards,
    Ravi

  4. #4
    Registered User
    Join Date
    Oct 2004
    Posts
    12

    are u still working on the same thing

    Hi ravi,
    Are u still stuck with the same problem or you have fixed it.

    Thanks.
    Rgds.
    nitin.p

  5. #5
    Registered User
    Join Date
    Dec 2007
    Posts
    26

    Re: Audio playing over RTP on 6600 and 6620.

    Hi Ravi,

    May I know how you manage to use G.729A codec in your application. I want to use G.729/G.729A codec in my application by targeting third edition phone. Can you guide me in this respect. If you give that part of code then it will be a great help for me.
    Thanking you in advance.

    Regards,
    Girish

    Quote Originally Posted by ravinathwani View Post
    Thanks for your response.

    Yes, I can understand that the network may not be able to handle high bit rate payload like PCM etc. We are using G.729A encoding to send packets over the network. AMR is definitely a good choice, but my efforts to make AMR encoding work with audio streaming on the Nokia 6600 failed.

    As far as RTP and related control protocols are concerned, neither are we using a full fleged RTP stack, nor do we use RTCP etc. We have a simple code that receives RTP packets from the socket, does some basic validation of the RTP headers, chops the header and send the payload to the AudioEngine's callback method, which just calls the AudioStream's WriteL() method with this payload.

    Since this code is very simple, it does not take too much of processing time and hence almost all the RTP packets received by the application are processed and played properly. The problem basically lies in the huge difference between the number of packets sent by the server and that received by the application.

    Hope to hear from you soon.

    Thanks & Regards,
    Ravi

  6. #6
    Registered User
    Join Date
    May 2008
    Posts
    1

    Re: Audio playing over RTP on 6600 and 6620.

    Hi I am vaqar. I am working on hardware implementation of VoIP on FPGA. I have written code for sender but cannot able to formulate the reveiver code. Can you guide me about my project as I have read about you that u have sent and received audio through 6600.
    waiting for your reply
    Takecare and have a nice day.


    Quote Originally Posted by ravinathwani View Post
    Thanks for your response.

    Yes, I can understand that the network may not be able to handle high bit rate payload like PCM etc. We are using G.729A encoding to send packets over the network. AMR is definitely a good choice, but my efforts to make AMR encoding work with audio streaming on the Nokia 6600 failed.

    As far as RTP and related control protocols are concerned, neither are we using a full fleged RTP stack, nor do we use RTCP etc. We have a simple code that receives RTP packets from the socket, does some basic validation of the RTP headers, chops the header and send the payload to the AudioEngine's callback method, which just calls the AudioStream's WriteL() method with this payload.

    Since this code is very simple, it does not take too much of processing time and hence almost all the RTP packets received by the application are processed and played properly. The problem basically lies in the huge difference between the number of packets sent by the server and that received by the application.

    Hope to hear from you soon.

    Thanks & Regards,
    Ravi

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •