From: Steven S. <ss...@so...> - 2003-12-30 17:33:28
|
Steve,=20 I downloaded the tarball with (I assume) the code changes. I am still both loosing live calls and failing to receive incoming calls. I am running on Windows XP with the source compiled in GCC under MingGW. This only appears to be an issue under IAX2. Thanks, Steve -----Original Message----- From: iax...@li... [mailto:iax...@li...] On Behalf Of Steve Kann Sent: Monday, December 29, 2003 1:50 PM To: iax...@li... Cc: Babar Shafiq; Steve Underwood Subject: [Iaxclient-devel] iaxclient lib (mainly libiax2) changes.. I've applied a few patches to the library: 1) First, I applied the two patches that SteveU sent to me, as they were delivered.=A0 Thanks so much, Steve.=A0 I'm thinking it's highly likely = this will fix the problems that people have been reporting on the asterisk mailing list (but not here too much), where: =A0=A0 a) asterisk is timing out live calls, because of ping timeouts = (the pings were a bit late, and were getting=20 =A0=A0=A0 =A0=A0=A0 dropped). =A0=A0 b) The client was missing incoming calls at times. 2) Second, I applied changes to address the Win32 build issues outlined in the patch that Babar submitted on 19 December (Thanks, Babar!). The changes I applied weren't exactly as he had them in the patch, but I think that I addressed each of the issues, with one exception.=A0 Going through them: a) sendto type mismatch:=A0 I made an alternate declaration of sendto_t which I believe should match the Win32 header declaration better.=A0 = [this is a proper fix, instead of casting to int]. b) His change to the order of elements in struct { } buf inside of iax.c:=A0 I think that this change is _incorrect_.=A0 Can someone who = knows MSVC help out with this?=A0 I did not apply this.=A0 Here's the relevant section from his diff: 616,619d615 < struct { < struct iax_frame fr2; < unsigned char buffer[4096]; /* Buffer -- must preceed fr2 */ < } buf; 620a617,620 =20 > struct { > unsigned char buffer[4096]; /* Buffer -- must preceed fr2 */ > struct iax_frame fr2; > } buf; =20 Basically, this is all Mark's doing :)=A0 What mark is trying to do is allocate an extra 4K past the end of fr2, so that we can use the zero-length afdata member at the end of the frame with 4k of room.=A0 = MSVC complains here at the declaration stage. c) __FUNCTION__ not defined in MSVC:=A0 Only used __FUNCTION__ is = __GNUC__ is defined.=A0 (maybe I could have just done ifdef __FUNCTION__ there? d) #define snprintf to _snprintf.. e) structure packing stuff.=A0 Did basically the same thing, but without totally repeating all the declarations.=A0 Just surrounded them with appropriate preprocessor-fu to make both MSVC and GNUC happy. f) inline define. g) add time.h to iaxclient_lib.h, instead of just to winfuncs.h I've only tested this by compiling here on Linux so far.=A0 If someone could be so kind as to try this out on Win32 and especially with MSVC. -SteveK |