
Originally Posted by
MKechlibar
Can you recommend some Symbian-based tool to me? Wireshark etc. do not run on Symbian OS AFAIK. I have tried Ping only. Ping ran with latencies from 100 to 700 ms, but with almost no timeouts.
I am not aware of such tool neither, however a packet sniffer does not have to be running on the endpoints. If the device itself would receive packets, probably your application would receive them too. A sniffer would show if the packets leave the server at all.
In VoIP software, one generally needs two sockets: an UDP socket for SIP connection and an UDP socket for RTP connection. The former needs to be connected for a longer time, the latter for duration of the call.
However, my RSockets are plagued by unpredictable timeouts (> several seconds), over both WLAN and GPRS/EDGE. Is that normal in real devices?
You mean delays? The concept of 'connection timeout' is hard to interpret in the context of a connection-less protocol. Otherwise several seconds of delay seems to be unusual in a local WLAN test environment. What happens if you try your server with a PC-based VoIP client?
I wanted to get rid of the problem by removing the Connect() operation of the RSocket, and I ran straightly into the problem described in the first post: only the first RecvFrom() works for me.
Can I use some flags or some priorities in order to improve timeout behavior of a RSocket?
I really do not know, here is my complete UDP code:
Code:
void CSocketActive::SetupSocketL(const TDesC &aIP)
{
User::LeaveIfError(iSocket.Open(iServ,KAfInet,KSockDatagram,KProtocolInetUdp,iConnection));
iSendAddr.SetAddress(KInetAddrAny);
iSendAddr.SetPort(5566);
User::LeaveIfError(iSocket.Bind(iSendAddr));
iSendAddr.Input(aIP);
}
void CSocketActive::StartSend()
{
iSocket.SendTo(iSendElement,iSendAddr,0,iStatus);
SetActive();
iState=ESend;
}
void CSocketActive::StartRecv()
{
iSocket.RecvFrom(iRecvElement,iRecvAddr,0,iStatus);
SetActive();
iState=ERecv;
}