|
The XXX server on 192.168.0.254 is not following the protocol. There
must be Expires information, either as a header or as a parameter on a
contact entry. look at the ProcessOkResponse function in RefreshMgr.cpp (or was it RefreshManager.cpp). Charlie yuhang wrote: hi all It seems that REGISTERED event may not fired.i checked out "http://scm.sipfoundry.org/rep/sipX/branches/sipXtapi" at version 7981, compiled with Visual Studio 2005 and got sipXtapi.dll and sipXtapid.dll. i run my sipXtapi based win32 console program at 192.168.0.178:5080. My sipXtapi based program simply do 2 things: 1) register, 2) wait several seconds and unregister. I run OnDo Server at 192.168.0.176:5060 and run XXX Server at 192.168.0.254:5060. When my sipXtapi based program register to 192.168.0.176:5060 it says: <-> Type LOCAL, Interface: eth1, Ip 192.168.0.178, Port 5080 <-> Type LOCAL, Interface: eth1, Ip 192.168.0.178, Port 5080 EVENT_CATEGORY_LINESTATE::PROVISIONED::PROVISIONED_NORMAL EVENT_CATEGORY_LINESTATE::REGISTERING::REGISTERING_NORMAL EVENT_CATEGORY_LINESTATE::REGISTERED::REGISTERED_NORMAL EVENT_CATEGORY_LINESTATE::UNREGISTERING::UNREGISTERING_NORMAL EVENT_CATEGORY_LINESTATE::UNREGISTERED::UNREGISTERED_NORMAL The sip messages can be found in reg192.168.0.176.5060.cap in attachment. When my sipXtapi based program register to 192.168.0.254:5060 it says: <-> Type LOCAL, Interface: eth1, Ip 192.168.0.178, Port 5080 <-> Type LOCAL, Interface: eth1, Ip 192.168.0.178, Port 5080 EVENT_CATEGORY_LINESTATE::PROVISIONED::PROVISIONED_NORMAL EVENT_CATEGORY_LINESTATE::REGISTERING::REGISTERING_NORMAL EVENT_CATEGORY_LINESTATE::UNREGISTERING::UNREGISTERING_NORMAL EVENT_CATEGORY_LINESTATE::UNREGISTERED::UNREGISTERED_NORMAL The sip messages can be found in reg192.168.0.254.5060.cap in attachment. As you can see, EVENT_CATEGORY_LINESTATE::REGISTERED::REGISTERED_NORMAL is not fired. ========= my sipXtapi based program does something like this =========== result = sipxInitialize(&hInst, 5080, 5080, -1, -2); result = sipxEventListenerAdd(hInst, EventCallbackProc, NULL); result = sipxConfigEnableRport(hInst, true); ... result = sipxConfigSetOutboundProxy(hInst, "192.168.0.254"); // result = sipxConfigSetOutboundProxy(hInst, "192.168.0.176"); result = sipxLineAdd(hInst, "[EMAIL PROTECTED]", &hLine); // result = sipxLineAdd(hInst, "[EMAIL PROTECTED]", &hLine); ::Sleep(500); result = sipxLineAddCredential( hLine, "user1", "password1", ""); result = sipxLineRegister(hLine, true); ::Sleep(6000); result = sipxLineRegister(hLine, false); ::Sleep(1000); result = sipxLineRemove(hLine); ::Sleep(1000); result = sipxEventListenerRemove(hInst, EventCallbackProc, NULL); ::Sleep(1000); result = sipxUnInitialize(hInst); ::Sleep(1000); =============================================================== my sipXtapi based program is in MyRegTest.rar, please extract to directory "sipXtapi\sipXcallLib\examples\MyRegTest". The compiled binary executable will be at "sipXtapi\sipXcallLib\examples\bin". i assume there is some RFC3261-compatible problem, but i can't figure out who goes wrong. any body who can help? and one more interesting thing: notice the last 200ok message in reg192.168.0.176.5060.cap, there is a line says: Contact: <sip:[EMAIL PROTECTED]:5080>;expires=3600;q=1.0;LINEID=a649b9c56e09 The param "expires=3600" is there. Does this mean UNREGISTER fails? I've tried eyeBeam, it can UNREGISTER OnDo Server correctly. A compatible problem with OnDo Server? |
_______________________________________________ sipxtapi-dev mailing list [email protected] List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
