Author |
|
Jalal Vetran
Joined: April 24 2006 Location: Iran Posts: 188
|
Posted: February 21 2007 at 3:14am | IP Logged
|
|
|
Hi
When two Media Engine programs are communicating on two computers and we use Windows Task Manager to End Task one point the other end point does not make any sense. This also happens when we eject network cable from Network Card. This means you don't check TCP disconnect on SIP TCP connection.
I also enabled SIP Keep alive message using EnableKeepAliveTransmissions function. But it did not solve any problem.
Best Regards
Jalal Abedinejad
|
Back to Top |
|
|
support Administrator
Joined: January 26 2005 Location: United States Posts: 1666
|
Posted: February 22 2007 at 1:06pm | IP Logged
|
|
|
Hi Jalal,
Thanks for the posting. The VOIP Media engine uses UDP over IP for all SIP and RTP traffic. No TCP.
We have been asked this “cable unplugged” question in the past. Check out this previous post:
MakeCall: How do I determine connection problem
We are aware of some possible solutions to the problem but we have decided on the course of action. For example see:
IOCTL_NDIS_QUERY_GLOBAL_STATS
We agree with you. Accurately detecting the network cable unplugged condition or a disabled NIC adaptor would be very useful. Post any suggestion you may have.
Support
|
Back to Top |
|
|
Jalal Vetran
Joined: April 24 2006 Location: Iran Posts: 188
|
Posted: February 24 2007 at 8:01am | IP Logged
|
|
|
Hi
I thought your connection for SIP is TCP. But this does not matter for Windows End Task.
I have tested another softphone named phoner from http://www.phoner.de. This program terminates the active call which the other end point is End Tasked from Windows Task Manager. I also teste phoner with your sample Softphone. When softphone sample is end tasked , the phoner detects, but vice versa is not correct.
I also know that UDP has also OnDisconnect Event like TCP. When a program is End Tasked from windows, the program has no time to Disconnect UDP socket or send any packet. But when windows wants to release all resources for that program, it finds that a UDP socket is open, then windows closes the UDP socket. So the other end point will get an OnDisconnect Event for that socket.
Does SIP has a KeepAlive Message that force point to answer with a message? If so then you may send periodically this message, and when no answer is received in a fixed amount of time then disconnect the line. This will solve the problem of Network Cable unplug.
Thanks
Jalal Abedinejad
|
Back to Top |
|
|
Jalal Vetran
Joined: April 24 2006 Location: Iran Posts: 188
|
Posted: February 24 2007 at 8:20am | IP Logged
|
|
|
For more information see following paragraph from http://www.codeproject.com/ce/CCESocket.asp.
UDP socket: you receive EVN_CONNLOST if the other peer "disconnects". This happens only if you try to send data to a disconnected peer (to my knowledge, this should not happen, however, this is what I experimented using the Winsock APIs). If you are a client and wants to make a new connection, call Connect. If you are a server, you can use or ignore the event, it doesn't interfere with the server operation. Note that if you continue to send data to a disconnected peer, CCESocket will ignore your trials, and send functions will return 0 sent bytes.
|
Back to Top |
|
|
support Administrator
Joined: January 26 2005 Location: United States Posts: 1666
|
Posted: February 26 2007 at 8:26am | IP Logged
|
|
|
Thanks Jalal, we will take a look...
|
Back to Top |
|
|