I am having a bit of an issue with getting G.711 to stream in the way I need. The intention is to replace the RTP stream output of a Cisco Call Manager's hold music with our own RTP stream.
The RTP stream coming from CCM contains one stream which reports it is ulaw 8000hz, as does my stream, however the phones refuse to play more than a few frames of audio from the VLC stream.
Looking on the wire, Cisco looks something like this:
Code: Select all
Data: 80002CB92597E5800000067ED4CECAC2C0BEBDBCBCBDBDBF...
Data: 80002CBA2597E6200000067E5A5C5D5D5E656E7EF0EEE9E8...
Data: 80002CBB2597E6C00000067ED5D2CECCCAC7C6C4C2C2C3C5...
Data: 80002CBC2597E7600000067E403F3F3F3F404143464B525E...
Data: 80002CBD2597E8000000067ED1D8E0F273665F5D5C5E6471...
Data: 80002CBE2597E8A00000067EB9B9BABABBBDBEC1C5C9CCCE...
The VLC output looks like this:
Code: Select all
Data: 808045EA196C1DD7C6697351C3CAC8BBBACCC8B4AEADADA8...
Data: 800045EB196C1F67C6697351B2B2BCBDBDC4EF5CCDC0D4E9...
Data: 800045EC196C1F67C6697351CAD2C1BABBC6C7B6B4BAB1AA...
Data: 808045ED196C1F67C6697351B1AFB0AFAFADA9AAACA8A5A7...
Data: 800045EE196C20F7C6697351BFD4BEB8C6D3C4BCBFC9BEB2...
Data: 800045EF196C20F7C6697351B5AEADB0AFACABACACA8A6AB...
With VLC rtcp-mux turned off:
Code: Select all
Data: 808045EA197EABBEC6697351C3CAC8BBBACCC8B4AEADADA8...
Data: 800045EB197EAD4EC6697351B2B2BCBDBDC4EF5CCDC0D4E9...
Data: 800045EC197EAD4EC6697351CAD2C1BABBC6C7B6B4BAB1AA...
Data: 808045ED197EAD4EC6697351B1AFB0AFAFADA9AAACA8A5A7...
Data: 800045EE197EAEDEC6697351BFD4BEB8C6D3C4BCBFC9BEB2...
Data: 800045EF197EAEDEC6697351B5AEADB0AFACABACACA8A6AB...
Additionally, the Cisco call manager sends out packets at intervals of exactly 20ms (or at least, they arrive with 20ms spacing on the client), but the VLC media player seems to be sending at dynamic intervals.
I have no issues listening to either stream with the VLC client, however the Cisco phone only wants to listen to the Cisco server properly. I am wondering if anyone has got any ideas about where to look and what to do.
Is the Cisco server sending a standard RTP/UDP stream of some sort?
Why does Cisco send all packets 172 bytes and VLC send some larger and some smaller?
Would my source file make a difference? To my understanding Cisco is playing directly from a ulaw source file, but VLC refuses to read any ulaw file, so I am forced to transcode to ulaw from a wav.
Any help appreciated!