we have developped an application that answers to a call and send a RTP stream to the calling Phone using JMF.
We defined a Cti Port on CCM, register is using JTAPI. When a call is received on the cti port, we accept it, answer it (the IP Phone then shows to be connected).
We then retrieve Cti Port Terminal RTPOutputProperties to get calling IP Phone IP Address and UDP port.
We then send a RTP stream from the server to the IP Phone using JMF in G711µLaw. (We have desactived RTCP protocol not supported by Cisco (?) as explained in JTAPI Developper Guide).
We have checked on IP Phone stream statistics and using a sniffer that the packets are transmitted correctly to the IP Phone.
The only issue, is that we hear nothing on the calling phone ???
Do we forget to do something ? Any idea ?
Thanks and regards,
A while ago, I posted sample code using the JMF to stream WAV files to Cisco IP phones. Most likely your transcoding is not in order or you have the wrong packet size. Have a look at the code I posted, it has worked just fine for a lot of people. It's a bit rough on the edges, but it'll get you started.
You are right.It was a problem of packet size, we where sending 30ms instead of 20ms.
I understand we have to get packet size to use from CiscoRTPOutputProperties before sending the stream ?
I could really use some help with this - having no luck at all. I know there are examples posted here, but i can't seem to access the attachments.
anyway, i'm trying to stream a WAV file to a phone using JMF. I create a Processor, set its content descriptor to RAW, set the format of the TrackControls to AudioFormat.ULAW_RTP, 8000, 8, 1, and set the codec chain, with the Packetizer packet size set to 160, Then use RTPManager to create a SendStream using the processor's data output, then start the stream.
if i do a trace, see UDP packets going from the server to the phone on the port + 1 (RTCP, i guess), but the phone doesn't respond, and the stream never starts.
You do not describe how you handle the CTI side (with JTAPI ?). You should follow the different steps described in the first conversation message. Did you Accept the call and answer the phone ?
Whe have desactivated the RTCP protocol in JMF, however it may work with it.
I don't use CTI - I send the phone a CiscoIPPhoneExecute object to tell it to start receiving an RTP stream.
I think disabling the RTCP in JMF is what I'm after, although I have seen various conversations stating that it can't be done. how do you do it?
I reposted the source code in August and attachments are good for one year. You can most definitely download the code from this thread: http://forums.cisco.com/eforum/servlet/NetProf?page=netprof&forum=IP%20Communications%20and%20Video&topic=IP%20Phone%20Services%20for%20Developers&CommCmd=MB%3Fcmd%3Dpass_through%26location%3Doutline%40%5E1%40%40.1dd5d0da/20#selected_message
That post also has a link to the JMF forum where you can learn how to launch streaming with a different TTL. You do not have to worry about RTCP, my code doesn't do anything with it.. it uses up two ports per stream but the UDP traffic is on the port you specify and RTCP doesn't matter.. IP phones simply ignore it or so it seems.
To answer to your previous question : we have desactivated RTCP by modifying JMF source code (RTPSocketAdapter.Java). However this does not seem to be necessary as I can read in the previous post.