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/
_______________________________________________
sipxtapi-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Reply via email to