|Subject:||[Linphone-developers] Receiving RTP packets when none are being sent to me????|
|Date:||Mon, 8 Jul 2002 16:01:55 +0100|
I am writing (or at least trying to J) write a voice mail server that will be interact with Linphone. To this end I am using some of the code from Linphone as a basis to start from. I can successfully setup a SIP connection/dialog between Linphone and my Server and get the info necessary to set up an RTP session between them. Initially I am just taking the received data and piping it straight back out again to the caller. This should lead to the caller hearing themselves with a half second lag or so. The following code SHOULD setup an RTP session and do what I have described above:
ortp_init(); /*init the rtp library*/
ortp_scheduler_init(); /*not using the scheduler but init it anyway*/
rtpsession = rtp_session_new(RTP_SESSION_SENDRECV); /*set up an RTP session that can both send and receive*/
rtp_session_set_scheduling_mode(rtpsession, 0); /* not scheduled */
rtp_session_set_local_addr(rtpsession, locip4, locport); /*Set local IP address and port*/
rtp_session_set_remote_addr(rtpsession, remip4, remport); /*Remote IP address and port*/
rtp_session_set_payload_type(rtpsession, payload); /*set the payload type*/
rtp_session_set_jitter_compensation(rtpsession, jittcomp); /*set jitter compensation e.g. 40*/
tsinc = codinfo->fr_size/2;
while(iocond != 0)/*loop receiving and sending*/
err = rtp_session_recv_with_ts(rtpsession,rtpdata,codinfo->dt_size,ts,&havemore);/*used to receive data over RTP*/
err = rtp_session_send_with_ts(rtpsession,rtpdata,codinfo->dt_size,ts);/*used to send data over RTP*/
AM I missing something blatantly obvious???? I have even tried using the blocking mode to see if it made any difference but it did not.
I do have audio working on my two machines as I can use Linphone to communicate between both machines and the audio is fine. The Server does not need audio anyway as it only works with audio from the network never the sound card. The Server does not yet use codecs, but for the purpose described above it should not need to unless there is some hidden logic they perform beyond encoding/decoding the audio.
I get “err” returned as 160 ALL the time. Even when the connection to the other end is severed, this continues to loop and tell me it has received 160 bytes. Why is this happening?? Surely it should drop to 0 at that stage.
Any help is REALLY REALLY appreciated,
|[Prev in Thread]||Current Thread||[Next in Thread]|