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

Voice capturing, voice streaming

Hello everyone!

I'm new in developing services for cisco ip phones. I have developed some simple services and now i want to build more advanced ones.

I want to capture voice stream going out from the phone. Could anybody provide me the ordered steps i have to follow in order to do that? Do i need to use JMF?

I have tryied to test the intercom feature (so i gain little experience with voice streaming through ip phones)but it didn't work and i can't figure out why! We have installed CallManager Express 3.3 and i red that for intercom i have to use the even UDP ports 5000 to 8000 Hexadecimal. Eventhought it shows on the transmiter phone streaming going out and in the receiver phone streaming coming in, i can't hear anything! Do i have to manipulate the stream before send it to the reading port or the phone makes the stream automaticaly in the apropriate format (G.711 mu-Law) before serving?

My code follows :

(Transmiter Phone)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1253"%>

<%

Response.Expires = -1

%>

<%

Response.ContentType = "text/xml"

%>

<CiscoIPPhoneText>

<Title>Intercom</Title>

<Prompt>Press 'Talk' To Transmit..</Prompt>

<Text>Intercom with 192.168.100.5</Text>

<SoftKeyItem>

<Name>Stop</Name>

<URL>RTPTx:Stop</URL>

<Position>1</Position>

</SoftKeyItem>

<SoftKeyItem>

<Name>Talk</Name>

<URL>RTPTx:192.168.100.5:21000</URL>

<Position>2</Position>

</SoftKeyItem>

<SoftKeyItem>

<Name>Exit</Name>

<URL>SoftKey:Exit</URL>

<Position>4</Position>

</SoftKeyItem>

</CiscoIPPhoneText>

(Receiver Phone)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1253"%>

<%

Response.Expires = -1

%>

<%

Response.ContentType = "text/xml"

%>

<CiscoIPPhoneText>

<Title>Intercom</Title>

<Prompt>Press 'Listen' To Receive..</Prompt>

<Text>Intercom with 192.168.100.10</Text>

<SoftKeyItem>

<Name>Stop</Name>

<URL>RTPRx:Stop</URL>

<Position>1</Position>

</SoftKeyItem>

<SoftKeyItem>

<Name>Listen</Name>

<URL>RTPRx:192.168.100.10:21000:100</URL>

<Position>2</Position>

</SoftKeyItem>

<SoftKeyItem>

<Name>Exit</Name>

<URL>SoftKey:Exit</URL>

<Position>4</Position>

</SoftKeyItem>

</CiscoIPPhoneText>

Thanks for your time, regards!

KOSMAS!

4 REPLIES

Re: Voice capturing, voice streaming

If you want to have buttons that allow talking/listening when pressed, you must use the tag for RTPTx/Rx, and the RTPRx:Stop/RTPTx:Stop tag in the tag.

Also, RTPRx:192.168.100.10:21000:100, that syntax is rather new and depending on your phone load, it may not be supported so I'd try without the volume parameter as well. Also, I use the Java Media Framework (JMF) which has a nice streaming sending and receiving application... I usually try streaming to my PC first and check with the JMF player if I really get something, then turn to phones.

New Member

Re: Voice capturing, voice streaming

Dear Stephan,

Thanks for your response and your suggestions!

But..

1) I have already tried to use the tag but for a strange reason it didn't work. Maybe it works with specific URIs?? (can i find documentation for this tags or other additional tags not described in SDK?)!

2)The volume parameter is new but i red that if a phone does not support this parameter it is not a problem. The phone just ignores this parameter and keep the volume settings that the phone already has(for good and for bad, i made a test without this parameter but it didn't worked also)!

3)I have never used the JMF before but i know that i can stream sound using this, easily.

I also have some more specific questions that i'm seeking answers and i wonder if you can help me, if possible..

1) We use CallManager Express 3.3 which is on a router. I cannot ping that router from my pc due to safety reasons! Can this be a reason for my example application not working? I mean, since i cannot ping the router how can my (transmitter) ip phone use router's UDP port to transmit the stream?

2)Do i have to convert the source stream to the format that the phone understands (G.711 mu-Law) or this manipullation is done from the phone automatically?

3)Do i need to make settings on CME in order to tell which phones will be used for the intercom (because i haven't done any, just the example as it is!)?

4)With JMF, can i get the source stream from a port on the CME router eventhough i cannot ping router's ip??

5)Can i instruct the phone to trasmit the sound stream to a pc port (i red that it only uses router's even UDP ports from 5000 to 8000 Hexadecimal)?

6)Could you provide me with a simple sound stream example that worked for you in order to test it to my system and make my conclutions easier?

Note: I use as transmitter a 7940 type ip phone and a 7970 and 7940 as receivers.

Thanks a lot for your response, your help is appreciated!

KOSMAS

Re: Voice capturing, voice streaming

You are correct insofar that URLDown only permits certain operations. They are limited to "non feedback" operations (that's in no documentation, TAC told me after I opened a case), so stuff that gives no visual feedback and that doesn't send anything to the webserver. The RTPxyz operations are a prime example, as are other internal URLs (pressing buttons and perhaps also dialling). Also, URLDown isn't universally supported. I find that it best works on the old phones (so the 7960/40 series). I don't recall on which phones it failed outright or if it still does (new phone loads and all), but the tag does act differently on different phones.

1) Not being able to ping the router shouldn't matter because the RTP stream goes directly from phone A to phone B (but from a manageability point of view I question the "wisdom" of blocking ping reply.. pings are here for a reason and that's to check if IP connectivity is still okay.. if you get rid of that, you have no effective way of telling if a box is up or not unless you go on site).

2) it's done automatically. You only have to worry about this if you write your own streaming application (check my jmf based streamer I posted a while back).

3) I'm not that familiar with CME, but afaik you can define service urls or at least one page for a phone, so if you want users to be able to access the service somehow, defining a service url would make sense, would it not? Otherwise, how can a user access the service?

4) You'll get it from the phone, not the router. Unless CME does MOH in which case you should also be able to receive that from the router (if it's multicast only)

5) Yes absolutely. That's why I suggested JMF in the first place. You can also try multicast just in time.. many were the occasions that I screwed up the unicast settings when it comes to RTPRx/Tx.. multicast is much easier with respect to that because there's just one IP and one port.

6) I converted a couple MP3s to a CD quality (44.1 KHz, 16 bit) wav and streamed that.

New Member

Re: Voice capturing, voice streaming

If all those you said are totaly correct i still cannot understand why the simple application i presented does not work!

I tried to download the application that you posted in past time but i can't because the downloading period has expired. So i guess i'm still in darkness.

If you find any additional info for my case please let it out.

Thanks a lot for your time!

KOSMAS

131
Views
0
Helpful
4
Replies
CreatePlease to create content