< Previous by Date | Date Index | Next by Date > |
< Previous in Thread | Thread Index |
OK I found the problem. Here is my commit comment:
Project
resiprocate
New Revision
Committer
sgodin (Scott Godin)
Date
2011-07-05 09:49:59 -0500 (Tue, 05 Jul 2011)
Log
-major bug for windows - code to signal that per thread random number generation was initialized on Windows was accidentally deleted on commit 9043 - this leads to duplicate random numbers, in particular duplicate SIP TIDs were being generated, and some messaging was not making it to the wireModified:
This needs to be back ported into a 1.7 patch release.Thanks,ScottOn Tue, Jul 5, 2011 at 10:02 AM, Scott Godin <sgodin@xxxxxxxxxxxxxxx> wrote:
Interesting. You are now the second person to see this. Looks like two separate transactions are going out with the same transaction id. It seems to me that something must have changed in the random number seeding logic between the two releases.To see what I mean, search for the TID string z9hG4bK-d8754z-e714ef3fe714ef3f-1---d8754z- in your logs. You will see that the INVITE to hold 105, and the INVITE to pull 106 off hold are using the same TID. The log then shows this error that explains why the 2nd message didn't make it onto the wire:WARNING | 20110704-122148.870 | Test Phone | RESIP:TRANSACTION | 5624 | transactionstate.cxx:993 | TU sent us a duplicate INVITE: fix this!Now - just need to figure out why.ScottOn Mon, Jul 4, 2011 at 12:32 AM, Karlsson <boost.regex@xxxxxxxxx> wrote:
_______________________________________________Now I attached the wireshark trace file and resiprocate log in email.My test case is:1: Run my App(built base on resip 1.7) on PC a, and register to server as 101.2: Make call to 106 and the call is established.3. Hold the 106 from 101.4: Make call to 105 and the call is established.5: Click a button of my App, in this button event, I do: hold 105 and un-hold the 106.After these steps, the 106 still in hold state - I'm expect the 106 will be un-hold, in the wireshark trace, we can't found the INVITE message of un-hold 106, seems it does not sent out by resip.Same code same test case, the 1.6 resip works fine.I have attached the logs in email, please help.Thanks
On Wed, Jun 29, 2011 at 5:06 PM, Karlsson <boost.regex@xxxxxxxxx> wrote:I'm sure I found a bug with the v1.7,
I'm implemented the hold and unhold feature with resip as below code:
void UserAgent::hold(long callID, const SdpContents & sdpContent)
{
try
{
ServerInviteSessionMap::iterator iter = mServerInviteSessionMap.find(callID);
if (iter != mServerInviteSessionMap.end())
{
iter->second->provideOffer(sdpContent);
return;
}
ClientInviteSessionMap::iterator iter2 = mClientInviteSessionMap.find(callID);
if (iter2 != mClientInviteSessionMap.end())
{
iter2->second->provideOffer(sdpContent);
}
}
catch (...)
{
}
}
void UserAgent::unHold(long callID, const resip::SdpContents & sdpContent)
{
try
{
ServerInviteSessionMap::iterator iter = mServerInviteSessionMap.find(callID);
if (iter != mServerInviteSessionMap.end())
{
iter->second->provideOffer(sdpContent);
return;
}
ClientInviteSessionMap::iterator iter2 = mClientInviteSessionMap.find(callID);
if (iter2 != mClientInviteSessionMap.end())
{
iter2->second->provideOffer(sdpContent);
}
}
catch (...)
{
}
}
in my APP it has a button to switch two sessions:
CPhoneAppDlg::OnButton1()
{
hold(line1);
unhold(line2);
}
These code are works fine with the resip 1.6 and early versions, but with the 1.7, in the wireshark, I can't found the INVITE message of the "unhold(line2);", seems the resip does not sent out INVITE message of "unhold(line2);
All other codes are same, just if use the DLL and header files with 1.6 then all are works if use the 1.7 then got this bug, please check.
Thanks
--
havesoftware, Inc.Jakson KalssonSenior Programmer
--havesoftware, Inc.Jakson KalssonSenior Programmer
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/