[Iaxclient-cvs] SF.net SVN: iaxclient: [1286]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2007-11-28 05:19:12
|
Revision: 1286 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1286&view=rev Author: dohpaz Date: 2007-11-27 21:19:17 -0800 (Tue, 27 Nov 2007) Log Message: ----------- Fix oops. Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-11-28 04:08:06 UTC (rev 1285) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-11-28 05:19:17 UTC (rev 1286) @@ -1423,7 +1423,7 @@ s0->transferpeer = s1->callno; s1->transferpeer = s0->callno; - DEBU(G fprintf(stderr, "iax_setup_transfer(%d, %d) transfer_id=%d\n", s0->callno, s1->callno, transfer_id); + DEBU(G "iax_setup_transfer(%d, %d) transfer_id=%d\n", s0->callno, s1->callno, transfer_id); res = send_command(s0, AST_FRAME_IAX, IAX_COMMAND_TXREQ, 0, ied0.buf, ied0.pos, -1); if (res < 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[Iaxclient-cvs] SF.net SVN: iaxclient: [1288]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2007-11-28 18:26:25
|
Revision: 1288 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1288&view=rev Author: dohpaz Date: 2007-11-28 10:26:29 -0800 (Wed, 28 Nov 2007) Log Message: ----------- Better diagnostic for transfer. Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-11-28 05:30:17 UTC (rev 1287) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-11-28 18:26:29 UTC (rev 1288) @@ -1424,6 +1424,8 @@ s1->transferpeer = s0->callno; DEBU(G "iax_setup_transfer(%d, %d) transfer_id=%d\n", s0->callno, s1->callno, transfer_id); + DEBU(G "\torg: callno=%d peercallno=%d peeraddr=%s\n", s0->callno, s0->peercallno, inet_ntoa(s0->peeraddr.sin_addr)); + DEBU(G "\tnew: callno=%d peercallno=%d peeraddr=%s\n", s1->callno, s1->peercallno, inet_ntoa(s1->peeraddr.sin_addr)); res = send_command(s0, AST_FRAME_IAX, IAX_COMMAND_TXREQ, 0, ied0.buf, ied0.pos, -1); if (res < 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[Iaxclient-cvs] SF.net SVN: iaxclient: [1319]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2007-12-19 20:01:14
|
Revision: 1319 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1319&view=rev Author: dohpaz Date: 2007-12-19 12:01:18 -0800 (Wed, 19 Dec 2007) Log Message: ----------- Better conditionalize some debug output. Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-12-19 19:51:40 UTC (rev 1318) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-12-19 20:01:18 UTC (rev 1319) @@ -1446,11 +1446,14 @@ s0->transferpeer = s1->callno; s1->transferpeer = s0->callno; +#ifdef DEBUG_SUPPORT + if (debug) { + DEBU(G "iax_setup_transfer(%d, %d) transfer_id=%d\n", s0->callno, s1->callno, transfer_id); + DEBU(G "\torg: callno=%d peercallno=%d peeraddr=%s peerport=%d\n", s0->callno, s0->peercallno, inet_ntoa(s0->peeraddr.sin_addr), ntohs(s0->peeraddr.sin_port)); + DEBU(G "\tnew: callno=%d peercallno=%d peeraddr=%s peerport=%d\n", s1->callno, s1->peercallno, inet_ntoa(s1->peeraddr.sin_addr), ntohs(s1->peeraddr.sin_port)); + } +#endif - DEBU(G "iax_setup_transfer(%d, %d) transfer_id=%d\n", s0->callno, s1->callno, transfer_id); - DEBU(G "\torg: callno=%d peercallno=%d peeraddr=%s peerport=%d\n", s0->callno, s0->peercallno, inet_ntoa(s0->peeraddr.sin_addr), ntohs(s0->peeraddr.sin_port)); - DEBU(G "\tnew: callno=%d peercallno=%d peeraddr=%s peerport=%d\n", s1->callno, s1->peercallno, inet_ntoa(s1->peeraddr.sin_addr), ntohs(s1->peeraddr.sin_port)); - res = send_command(s0, AST_FRAME_IAX, IAX_COMMAND_TXREQ, 0, ied0.buf, ied0.pos, -1); if (res < 0) { return -1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[Iaxclient-cvs] SF.net SVN: iaxclient: [1326]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2007-12-21 14:54:11
|
Revision: 1326 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1326&view=rev Author: dohpaz Date: 2007-12-21 06:54:16 -0800 (Fri, 21 Dec 2007) Log Message: ----------- Pull out patch 1850525 until we can work out where these sessions should be destroyed. Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-12-21 14:52:48 UTC (rev 1325) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-12-21 14:54:16 UTC (rev 1326) @@ -1629,7 +1629,6 @@ */ case IAX_EVENT_REJECT: case IAX_EVENT_HANGUP: - case IAX_EVENT_REGACK: /* Destroy this session -- it's no longer valid */ destroy_session(event->session); return event; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[Iaxclient-cvs] SF.net SVN: iaxclient: [1328]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2008-01-08 23:01:11
|
Revision: 1328 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1328&view=rev Author: dohpaz Date: 2008-01-08 15:01:12 -0800 (Tue, 08 Jan 2008) Log Message: ----------- Always note lastsent at the end of calc_timestamp() even if it's a genuine AST_FRAME_IAX packet. Brings inline with what's in chan_iax2.c. Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2007-12-21 15:52:10 UTC (rev 1327) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2008-01-08 23:01:12 UTC (rev 1328) @@ -662,9 +662,7 @@ } /* Record the last sent packet for future reference */ - /* unless an AST_FRAME_IAX */ - if (!genuine) - session->lastsent = ms; + session->lastsent = ms; #ifdef USE_VOICE_TS_PREDICTION /* set next predicted ts based on 8khz samples */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[Iaxclient-cvs] SF.net SVN: iaxclient: [1329]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2008-01-09 07:59:35
|
Revision: 1329 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1329&view=rev Author: dohpaz Date: 2008-01-08 23:59:40 -0800 (Tue, 08 Jan 2008) Log Message: ----------- Only call complete_transfer once in per code path in iax_handle_txready(). Make sure to clear transfer_moh if iax_unquelch is called. Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2008-01-08 23:01:12 UTC (rev 1328) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2008-01-09 07:59:40 UTC (rev 1329) @@ -1504,12 +1504,9 @@ short s0_org_peer, s1_org_peer; if (s->transfer_moh) { - s->transfer_moh = 0; iax_unquelch(s); } - complete_transfer(s, s->peercallno, 0, 1); - s->transferring = TRANSFER_REL; s0 = s; @@ -1527,6 +1524,9 @@ iax_finish_transfer(s1, s0_org_peer); return 1; } + else { + complete_transfer(s, s->peercallno, 0, 1); + } return 0; } @@ -2052,6 +2052,10 @@ int iax_unquelch(struct iax_session *session) { + if (session->transfer_moh) { + session->transfer_moh = 0; + } + return send_command(session, AST_FRAME_IAX, IAX_COMMAND_UNQUELCH, 0, NULL, 0, -1); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[Iaxclient-cvs] SF.net SVN: iaxclient: [1334]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2008-01-29 21:26:56
|
Revision: 1334 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1334&view=rev Author: dohpaz Date: 2008-01-29 13:27:00 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Revert out change 1328. Causes more problems then it attempted to fix. Need to figure out why it works in asterisk but not iaxclient. Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2008-01-24 20:15:59 UTC (rev 1333) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2008-01-29 21:27:00 UTC (rev 1334) @@ -662,7 +662,9 @@ } /* Record the last sent packet for future reference */ - session->lastsent = ms; + /* unless an AST_FRAME_IAX */ + if (!genuine) + session->lastsent = ms; #ifdef USE_VOICE_TS_PREDICTION /* set next predicted ts based on 8khz samples */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[Iaxclient-cvs] SF.net SVN: iaxclient: [1336]
branches/team/elbunce/iaxclient/lib/libiax2/ src/iax.c
From: <do...@us...> - 2008-01-30 16:18:01
|
Revision: 1336 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1336&view=rev Author: dohpaz Date: 2008-01-30 08:18:05 -0800 (Wed, 30 Jan 2008) Log Message: ----------- Revert Lee Howard's timestamp changeset (rev 1316) It causes large amounts of video frames to be sent as full IAX2 frames, which is incorrect according to the IAX2 protocol and causes a lot of grief for people running on spotty network connections (grief == VNAK storms). Revision Links: -------------- http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1316&view=rev Modified Paths: -------------- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c Modified: branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c =================================================================== --- branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2008-01-29 22:58:40 UTC (rev 1335) +++ branches/team/elbunce/iaxclient/lib/libiax2/src/iax.c 2008-01-30 16:18:05 UTC (rev 1336) @@ -1075,7 +1075,7 @@ struct iax_frame *fr; int res; int sendmini=0; - unsigned int nextpred; + unsigned int lastsent; unsigned int fts; if (!pvt) @@ -1084,15 +1084,14 @@ return -1; } + /* this must come before the next call to calc_timestamp() since + calc_timestamp() will change lastsent to the returned value */ + lastsent = pvt->lastsent; + /* Calculate actual timestamp */ fts = calc_timestamp(pvt, ts, f); - /* If the next predicted VOICE timestamp will overflow the 16-bit - portion of the timestamp then we send a full VOICE frame to - keep the 32-bit portion of the timestamp synchronized. */ - nextpred = pvt->nextpred; - - if (((fts & 0xFFFF0000L) == (nextpred & 0xFFFF0000L)) + if (((fts & 0xFFFF0000L) == (lastsent & 0xFFFF0000L)) /* High two bits are the same on timestamp, or sending on a trunk */ && (f->frametype == AST_FRAME_VOICE) /* is a voice frame */ && @@ -1108,7 +1107,7 @@ /* Bitmask taken from chan_iax2.c... I must ask Mark Spencer for this? I think not... */ if ( f->frametype == AST_FRAME_VIDEO ) { - if (((fts & 0xFFFF8000L) == (nextpred & 0xFFFF8000L)) + if (((fts & 0xFFFF8000L) == (lastsent & 0xFFFF8000L)) /* High two bits are the same on timestamp, or sending on a trunk */ && ((f->subclass & ~0x01) == pvt->svideoformat) /* is the same type */ ) @@ -2580,7 +2579,7 @@ /* don't run last_ts backwards; i.e. for retransmits and the like */ if (ts > session->last_ts && - ((fh->type == AST_FRAME_IAX || fh->type == AST_FRAME_VOICE) && + (fh->type == AST_FRAME_IAX && subclass != IAX_COMMAND_ACK && subclass != IAX_COMMAND_PONG && subclass != IAX_COMMAND_LAGRP)) @@ -2705,7 +2704,6 @@ */ e->etype = -1; e->session = session; - e->ts = ts; switch(fh->type) { case AST_FRAME_DTMF: e->etype = IAX_EVENT_DTMF; @@ -2718,6 +2716,7 @@ case AST_FRAME_VOICE: e->etype = IAX_EVENT_VOICE; e->subclass = subclass; + e->ts = ts; session->voiceformat = subclass; if (datalen) { memcpy(e->data, fh->iedata, datalen); @@ -2798,14 +2797,17 @@ case IAX_COMMAND_LAGRQ: /* Pass this along for later handling */ e->etype = IAX_EVENT_LAGRQ; + e->ts = ts; e = schedule_delivery(e, ts, updatehistory); break; case IAX_COMMAND_POKE: e->etype = IAX_EVENT_POKE; + e->ts = ts; break; case IAX_COMMAND_PING: /* PINGS and PONGS don't get scheduled; */ e->etype = IAX_EVENT_PING; + e->ts = ts; break; case IAX_COMMAND_PONG: e->etype = IAX_EVENT_PONG; @@ -2974,6 +2976,7 @@ case AST_FRAME_VIDEO: e->etype = IAX_EVENT_VIDEO; e->subclass = subclass; + e->ts = ts; session->videoformat = e->subclass; memcpy(e->data, fh->iedata, datalen); e->datalen = datalen; @@ -3091,8 +3094,7 @@ e->subclass = session->voiceformat; e->datalen = datalen; memcpy(e->data, mh->data, datalen); - e->ts = (session->last_ts & 0xFFFF0000L) | (ntohs(mh->ts) & 0xFFFF); - e->ts = unwrap_timestamp(e->ts, session->last_ts); + e->ts = (session->last_ts & 0xFFFF0000) | ntohs(mh->ts); return schedule_delivery(e, e->ts, 1); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |