Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 
New Member

IP Phones, RTP incompatibility

Hello All,

I’m developing a Java application to work with Cisco IP Phones 7940 & 7960. Application needs to be able to transmit RTP audio stream to the phone to be played through the speaker. Basically, I’m using Cisco SDK and sending "RTPRx://172.16.20.117:20482", "RTPTx://172.16.20.117:20480" commands to the Phone via XML object. The phone accepts them and starts transmitting/receiving RPT stream. In my application, I am able to receive RTP from the phone and play it on my computer. I am using latest Java Media Framework. However, if I try to transmit RTP to the phone, it does not work, phone’s speaker does not play the sound.

I use JMF Studio to transmit RTP, parameters are: Format RAW/RTP, Encoding ULAW/RTP, 8kHZ, 8 bit, mono, unsigned. JMF does not allow to change sample rate.

SDK doc says “G.711 mu-Law, packet size 20ms” – is it what I’m doing? Another Cisco doc says “RTP support included with JMF is largely incompatible with the RTP support in Cisco IP. To get around this problem, Cisco JTAPI include custom components that integrate with JMF to provide support”. I do have Cisco JTAPI, but I didn’t find mentioned components. Could anyone suggest a solution to this problem? Necessary codec or whatever for JMF would be that great!

Actually, I’m not limited to pure Java. I can use native C/C++ code via JNI, or I can use external RTP applications with appropriate interface. Those applications would accept a audio file and multicast RTP stream. I already have an app called “RAT” which does work with Cisco IP Phones, but it does not provide nice interface which I could call from Java application. Any link would be appreciated.

Thanks!

Denis Krylov.

4 REPLIES
New Member

Re: IP Phones, RTP incompatibility

Have you downloaded the IP Phone Services SDK yet? Look for this free download at www.cisco.com/go/developersupport . Also, a word of caution, this SDK is designed for CCM 3.3(3) which has the new RTP support objects available. Earlier versions would require different methods if available at all. Depends upon the version of CCM that you are developing to.

New Member

Re: IP Phones, RTP incompatibility

Denis,

JMStudio will stream as 60ms instead of 20ms so you can not heard the sound. I suggested to try the WinRTP which is using VC++ COM (Free).

http://www.vovida.org/applications/downloads/winRTP/

I hope you can send me you code if WinRTP can help you.

My email is chchuan@netvigator.com

New Member

Re: IP Phones, RTP incompatibility

Has anyone tried to do this using c#?

Re: IP Phones, RTP incompatibility

JMStudio doesn't work because of the packet size, but JMF can easily stream to Cisco IP phones. A working example can be found here:http://forums.cisco.com/eforum/servlet/NetProf?page=netprof&CommCmd=MB%3Fcmd%3Ddisplay_location%26location%3D.1dd5d0da

WinRTP does work, but I found it to be rather problematic. While I could stream from a MIC, there's no multicast support, and streaming is dependent on a mic being present in the system.. thus you cannot stream from a server that has no soundcard. Furthermore, I never managed to stream an audio file, even though that should be supported.. and if you've already used COM once, you know how cryptic its error messages can be.. add that to the fact that the only place to get help on WinRTP - the mailing list - is not really frequented a lot.

Being COM, it would be possible to use WinRTP in C# via COM Interop. Just add a reference to that COM component (obviously you have to register it first) to your project (you'll find it in the COM tab in the window where you add references), then instantiate the object and you're all set. But I have yet to see some sample code. Personally, having tried both JMF and WinRTP, I'd stick to the Java solution. And while COM interop tends to work just fine for some of my other projects, it's rather hard getting started from scratch... I found myself needing some small sample to get me started.

336
Views
0
Helpful
4
Replies
CreatePlease to create content