You can subscribe to this list here.
2003 |
Jan
|
Feb
(3) |
Mar
(16) |
Apr
(11) |
May
(3) |
Jun
(109) |
Jul
(70) |
Aug
(22) |
Sep
(19) |
Oct
(4) |
Nov
(25) |
Dec
(46) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(68) |
Feb
(52) |
Mar
(54) |
Apr
(57) |
May
(13) |
Jun
(15) |
Jul
(16) |
Aug
(3) |
Sep
(43) |
Oct
(95) |
Nov
(106) |
Dec
(142) |
2005 |
Jan
(62) |
Feb
(190) |
Mar
(75) |
Apr
(117) |
May
(123) |
Jun
(64) |
Jul
(122) |
Aug
(95) |
Sep
(63) |
Oct
(102) |
Nov
(99) |
Dec
(85) |
2006 |
Jan
(59) |
Feb
(64) |
Mar
(138) |
Apr
(82) |
May
(62) |
Jun
(62) |
Jul
(72) |
Aug
(50) |
Sep
(21) |
Oct
(95) |
Nov
(95) |
Dec
(29) |
2007 |
Jan
(26) |
Feb
(36) |
Mar
(45) |
Apr
(12) |
May
(53) |
Jun
(38) |
Jul
(19) |
Aug
(87) |
Sep
(63) |
Oct
(272) |
Nov
(102) |
Dec
(63) |
2008 |
Jan
(54) |
Feb
(19) |
Mar
(84) |
Apr
(111) |
May
(17) |
Jun
(26) |
Jul
(18) |
Aug
(10) |
Sep
(14) |
Oct
(9) |
Nov
(4) |
Dec
(12) |
2009 |
Jan
(5) |
Feb
(7) |
Mar
(4) |
Apr
(8) |
May
(4) |
Jun
(7) |
Jul
|
Aug
(1) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
(6) |
Mar
(6) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(3) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Cyril V. <cyr...@me...> - 2004-11-15 20:51:06
|
De : mailto:st...@st... Emission : 15/11/2004 21:10:15 > Cyril VELTER wrote: > > > I have a patch for alaw support (I just reworted it from scratch, inspired by > >the ulaw codec and some sun free code). Is it possible to include this in CVS ? > >and where should I post the patch ? > > > > > > I got your patch off-list, and it's now included in CVS. I just had to > un-MSDOS-ify the files and merge new diffs. > > It compiles clean, but I haven't actually tried it, but I'm sure people > on the list will let us know how it works out.. Very nice, I just updated my local copy with cvs recompiled everthing and tested it with simpleclient/testcall (modified to force alaw usage) and it works. > > If someone wants to, you can probably make decoding much faster by > compiling a table at initialization time, and then just doing a table > lookup at run time, like we do for ulaw. There's really no downside to > this, because there are only 256 2-byte entries in the table, so it only > takes up 512 bytes. OTOH, for a client, this all doesn't make much > difference, because we're unlikely to tax anything with encoding or > decoding. > > Encoding is a bit different, because even with the method we use in > ulaw, there might still be some quantization. (and a 64K table does > take more memory, doesn't always fit in cache well, etc). You are right. I'll test to see if there is a real difference. cyril velter |
From: Steve K. <st...@st...> - 2004-11-15 20:10:22
|
Cyril VELTER wrote: > I have a patch for alaw support (I just reworted it from scratch, inspired by >the ulaw codec and some sun free code). Is it possible to include this in CVS ? >and where should I post the patch ? > > I got your patch off-list, and it's now included in CVS. I just had to un-MSDOS-ify the files and merge new diffs. It compiles clean, but I haven't actually tried it, but I'm sure people on the list will let us know how it works out.. If someone wants to, you can probably make decoding much faster by compiling a table at initialization time, and then just doing a table lookup at run time, like we do for ulaw. There's really no downside to this, because there are only 256 2-byte entries in the table, so it only takes up 512 bytes. OTOH, for a client, this all doesn't make much difference, because we're unlikely to tax anything with encoding or decoding. Encoding is a bit different, because even with the method we use in ulaw, there might still be some quantization. (and a 64K table does take more memory, doesn't always fit in cache well, etc). -SteveK |
From: Steve K. <st...@st...> - 2004-11-15 19:43:27
|
Cyril VELTER wrote: > I agree it depends on the application. iaxclient is a library and should not >IMHO modify the process priorityclass because it has no knowledge of what the >application do. Modifying the thread priority is OK because the library know >what the the thread is doing and that it needs a high priority to service >audio. > > Fair enough. I'll change this.. It's easy enough for people to set the priority of the rest of their application if they need to. > > I have a patch for alaw support (I just reworted it from scratch, inspired by >the ulaw codec and some sun free code). Is it possible to include this in CVS ? >and where should I post the patch ? > > Thanks! You can send it to me, or to the list.. -SteveK |
From: Cyril V. <cyr...@me...> - 2004-11-15 18:59:46
|
De : mailto:je...@ru... Emission : 15/11/2004 18:24:27 > > On Nov 15, 2004, at 11:46 AM, Steve Kann wrote: > > > Cyril VELTER wrote: > > > >> While evaluating iaxclient, I noticed a small bug in px_win_wmme.c > >> line 735 (_Px_InitOutputVolumeControls). > >> mixerOpen( ( LPHMIXER )( &mixer->hInputMixer ), hWaveOut, 0, 0, > >> MIXER_OBJECTF_HWAVEOUT ) ; > >> > >> > >> should be > >> mixerOpen( ( LPHMIXER )( &mixer->hOutputMixer ), hWaveOut, 0, 0, > >> MIXER_OBJECTF_HWAVEOUT ) ; > >> > >> > >> the cirrent code does not set the output volume of the right > >> interface (in the case the current device is not the first one) > >> > > I didn't write that code, but AFAIK it seemed to be working correctly > > for us. I'll ask the original author, who knows this code better than > > I do. > > hrm. > > yeah, seems it _should_ be "&mixer->hOutputMixer", but it doesn't seem > to have an effect one way or another. > > i'll test more with the corrected call, and then commit it - for > consistency's sake - > if all goes well. I have a configuration where it does make a difference : WinXP pro, SoundMAX integrated audio + Plantronics DA50 USB adapter. With this configuration, where I use the USB audio, setting output volume will set the output volume of the soundmax device. cyril velter. |
From: Cyril V. <cyr...@me...> - 2004-11-15 18:50:58
|
> Cyril VELTER wrote: > > >Regarding thread priority, it is better to set the thread priority directly. On > >windows, scheduling is done thread by thread and SetPriorityClass influence > >every thread in a process which is not good. It would be better to replace > > > > SetPriorityClass > > > >by > > > > SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL) > > > >this will only change the priority of the thread servicing audio and not any > >other threads (user interface ...) > > > > > It depends on what you're actually trying to do, or if your UI threads > can end up blocking your audio/network threads or now. I think that in > practice, it shouldn't make too much difference, because the UI thread > for a softphone will generally be simple enough that it won't use much > CPU anyway. However, if your UI thread can block processing in some way > (i.e. it might hold a mutex that the callbacks need to get), then having > it also run with elevated priority will prevent the audio/network thread > from blocking on that mutex. (I suppose, that a smart scheduler _might_ > be smart enough to see that a high-priority thread is blocking on a > mutex held by a lower-priority thread, and it could increase the > lower-priority thread's priority until it drops the mutex or something). > > In my application, I actually increase the priority of the whole > application when I launch it from another application, so this priority > stuff is redundant, and I just added it for the community. I'm more > than open to making it thread-specific if others agree.. I agree it depends on the application. iaxclient is a library and should not IMHO modify the process priorityclass because it has no knowledge of what the application do. Modifying the thread priority is OK because the library know what the the thread is doing and that it needs a high priority to service audio. > > >Is there any plan ta support Alaw (I'm in france, and it's the native pstn > >codec here) ? I've hacked some support base on asterisk code, but there might > >be licencing issues. > > > > > > I don't plan on writing it, but it's pretty simple, so someone could if > they had a few hours and some motivation. If it's based on asterisk > code, that's not OK licensing wise, unless you get a disclaimer from > digium to relicense it LGPL. I have a patch for alaw support (I just reworted it from scratch, inspired by the ulaw codec and some sun free code). Is it possible to include this in CVS ? and where should I post the patch ? cyril velter |
From: jeff o. <je...@ru...> - 2004-11-15 17:24:32
|
On Nov 15, 2004, at 11:46 AM, Steve Kann wrote: > Cyril VELTER wrote: > >> While evaluating iaxclient, I noticed a small bug in px_win_wmme.c >> line 735 (_Px_InitOutputVolumeControls). >> mixerOpen( ( LPHMIXER )( &mixer->hInputMixer ), hWaveOut, 0, 0, >> MIXER_OBJECTF_HWAVEOUT ) ; >> >> >> should be >> mixerOpen( ( LPHMIXER )( &mixer->hOutputMixer ), hWaveOut, 0, 0, >> MIXER_OBJECTF_HWAVEOUT ) ; >> >> >> the cirrent code does not set the output volume of the right >> interface (in the case the current device is not the first one) >> > I didn't write that code, but AFAIK it seemed to be working correctly > for us. I'll ask the original author, who knows this code better than > I do. hrm. yeah, seems it _should_ be "&mixer->hOutputMixer", but it doesn't seem to have an effect one way or another. i'll test more with the corrected call, and then commit it - for consistency's sake - if all goes well. j- |
From: Steve K. <st...@st...> - 2004-11-15 16:46:21
|
Cyril VELTER wrote: > While evaluating iaxclient, I noticed a small bug in px_win_wmme.c line 735 >(_Px_InitOutputVolumeControls). > >mixerOpen( > ( LPHMIXER )( &mixer->hInputMixer ), > hWaveOut, 0, 0, > MIXER_OBJECTF_HWAVEOUT > ) ; > > >should be > >mixerOpen( > ( LPHMIXER )( &mixer->hOutputMixer ), > hWaveOut, 0, 0, > MIXER_OBJECTF_HWAVEOUT > ) ; > > > the cirrent code does not set the output volume of the right interface (in the >case the current device is not the first one) > > I didn't write that code, but AFAIK it seemed to be working correctly for us. I'll ask the original author, who knows this code better than I do. >Regarding thread priority, it is better to set the thread priority directly. On >windows, scheduling is done thread by thread and SetPriorityClass influence >every thread in a process which is not good. It would be better to replace > > SetPriorityClass > >by > > SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL) > >this will only change the priority of the thread servicing audio and not any >other threads (user interface ...) > > It depends on what you're actually trying to do, or if your UI threads can end up blocking your audio/network threads or now. I think that in practice, it shouldn't make too much difference, because the UI thread for a softphone will generally be simple enough that it won't use much CPU anyway. However, if your UI thread can block processing in some way (i.e. it might hold a mutex that the callbacks need to get), then having it also run with elevated priority will prevent the audio/network thread from blocking on that mutex. (I suppose, that a smart scheduler _might_ be smart enough to see that a high-priority thread is blocking on a mutex held by a lower-priority thread, and it could increase the lower-priority thread's priority until it drops the mutex or something). In my application, I actually increase the priority of the whole application when I launch it from another application, so this priority stuff is redundant, and I just added it for the community. I'm more than open to making it thread-specific if others agree.. >Is there any plan ta support Alaw (I'm in france, and it's the native pstn >codec here) ? I've hacked some support base on asterisk code, but there might >be licencing issues. > > I don't plan on writing it, but it's pretty simple, so someone could if they had a few hours and some motivation. If it's based on asterisk code, that's not OK licensing wise, unless you get a disclaimer from digium to relicense it LGPL. -SteveK |
From: Cyril V. <cyr...@me...> - 2004-11-15 16:20:38
|
While evaluating iaxclient, I noticed a small bug in px_win_wmme.c line 735 (_Px_InitOutputVolumeControls). mixerOpen( ( LPHMIXER )( &mixer->hInputMixer ), hWaveOut, 0, 0, MIXER_OBJECTF_HWAVEOUT ) ; should be mixerOpen( ( LPHMIXER )( &mixer->hOutputMixer ), hWaveOut, 0, 0, MIXER_OBJECTF_HWAVEOUT ) ; the cirrent code does not set the output volume of the right interface (in the case the current device is not the first one) Regarding thread priority, it is better to set the thread priority directly. On windows, scheduling is done thread by thread and SetPriorityClass influence every thread in a process which is not good. It would be better to replace SetPriorityClass by SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL) this will only change the priority of the thread servicing audio and not any other threads (user interface ...) Is there any plan ta support Alaw (I'm in france, and it's the native pstn codec here) ? I've hacked some support base on asterisk code, but there might be licencing issues. cyril velter |
From: xavier d. <xa...@sy...> - 2004-11-15 08:21:04
|
Thanks for your help. > Maybe try removing -std=c99? No difference. I'm stupid, I forgot to mention than I don't have only one error but a lots. I only shown the first ones. Any idea ? Ast the stddef:212-213 #if !(defined (__GNUG__) && defined (size_t)) typedef __SIZE_TYPE__ size_t; /usr/include/time.h:76: error: syntax error before "typedef" __BEGIN_NAMESPACE_STD /* Returned by `time'. */ /usr/include/time.h:92: error: syntax error before "typedef" # include <bits/types.h> / make gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/usr/src/asterisk/include/asterisk/ -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o app_conference.o app_conference.c cc1: warning: -fprefetch-loop-arrays not supported for this target (try -march switches) In file included from /usr/include/bits/types.h:31, from /usr/include/sys/types.h:31, from /usr/include/asterisk/frame.h:23, from /usr/include/asterisk/channel.h:17, from /usr/include/asterisk/pbx.h:17, from app_conference.h:23, from app_conference.c:19: /usr/lib/gcc-lib/i486-linux/3.3.4/include/stddef.h:213: error: syntax error before "typedef" In file included from /usr/include/sys/types.h:133, from /usr/include/asterisk/frame.h:23, from /usr/include/asterisk/channel.h:17, from /usr/include/asterisk/pbx.h:17, from app_conference.h:23, from app_conference.c:19: /usr/include/time.h:76: error: syntax error before "typedef" /usr/include/time.h:92: error: syntax error before "typedef" In file included from /usr/include/asterisk/frame.h:23, from /usr/include/asterisk/channel.h:17, from /usr/include/asterisk/pbx.h:17, from app_conference.h:23, from app_conference.c:19: /usr/include/sys/types.h:158:20: missing binary operator before token "(" [...] |
From: Steve K. <st...@st...> - 2004-11-15 01:54:51
|
On Nov 14, 2004, at 3:30 PM, xavier dutoit wrote: > # make > gcc -pipe -std=c99 -Wall -Wmissing-prototypes -Wmissing-declarations > -g -I/usr/src/asterisk/include/asterisk/ -D_REENTRANT -D_GNU_SOURCE > -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays > -fsingle-precision-constant -DCRYPTO -DAPP_CONFERENCE_DEBUG > -Ilibspeex -DSILDET=2 -c -o app_conference.o app_conference.c > cc1: warning: -fprefetch-loop-arrays not supported for this target > (try -march switches) > In file included from /usr/include/bits/types.h:31, > from /usr/include/sys/types.h:31, > from /usr/include/asterisk/frame.h:23, > from /usr/include/asterisk/channel.h:17, > from /usr/include/asterisk/pbx.h:17, > from app_conference.h:23, > from app_conference.c:19: > /usr/lib/gcc-lib/i486-linux/3.3.4/include/stddef.h:213: error: syntax > error before "typedef" > In file included from /usr/include/sys/types.h:133, > from /usr/include/asterisk/frame.h:23, > from /usr/include/asterisk/channel.h:17, > from /usr/include/asterisk/pbx.h:17, > from app_conference.h:23, > from app_conference.c:19: > /usr/include/time.h:76: error: syntax error before "typedef" I have a debian unstable box, and a sarge box (but it might be a few weeks behind), and I don't have those files.. What's on the lines in question: /usr/lib/gcc-lib/i486-linux/3.3.4/include/stddef.h:213 and usr/include/time.h:76 Maybe try removing -std=c99? > > > Any idea ? > > Second question: On the makefile, what does mean : > # 0 = OFF 1 = astdsp 2 = speex > SILDET := 2 > It specifies which kind of VAD (silence detection) you might want to use. It is generally only effective to use this if you want to get indications of active speakers from the manager interface. -SteveK |
From: xavier d. <xa...@sy...> - 2004-11-14 19:30:07
|
Hello, I have some problems compiling app_conference (both asterisk and it fresh updated from the CVS) on my debian sarge. I've modified the Makefile to change the ASTERISK_INCLUDE_DIR and to comment out "CFLAGS += -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic". When I make, both from the app_conference folder or from asterisk (I've modified apps/Makefile to include the app_conference makefile and added app_conference.so), I got the same result: # make gcc -pipe -std=c99 -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/usr/src/asterisk/include/asterisk/ -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o app_conference.o app_conference.c cc1: warning: -fprefetch-loop-arrays not supported for this target (try -march switches) In file included from /usr/include/bits/types.h:31, from /usr/include/sys/types.h:31, from /usr/include/asterisk/frame.h:23, from /usr/include/asterisk/channel.h:17, from /usr/include/asterisk/pbx.h:17, from app_conference.h:23, from app_conference.c:19: /usr/lib/gcc-lib/i486-linux/3.3.4/include/stddef.h:213: error: syntax error before "typedef" In file included from /usr/include/sys/types.h:133, from /usr/include/asterisk/frame.h:23, from /usr/include/asterisk/channel.h:17, from /usr/include/asterisk/pbx.h:17, from app_conference.h:23, from app_conference.c:19: /usr/include/time.h:76: error: syntax error before "typedef" Any idea ? Second question: On the makefile, what does mean : # 0 = OFF 1 = astdsp 2 = speex SILDET := 2 ? FYI, I'm not very happy with the meetme app, where I got a very crappy sound with two iaxcomm and a zap FXO channel (however, it seems to work better with a SIP phone...). Xavier |
From: Steven S. <ss...@so...> - 2004-11-10 19:17:33
|
Steve Kann wrote: > > > Steven Sokol wrote: > >> Ok, I've been playing in the library again trying to get REGREL to >> work and I've found that I can send it all I want but that the curren >> chan_iax2 does not seem to do anything with it. Of course I am >> sending it with only a bare minimum of additional information -- I >> toss in most of the same IEs that are sent along with a REGREQ. >> >> I see the request hit Asterisk in the iax debug output, but it never >> seems to hit the proper point in the chan_iax2 code to unregister the >> host. I've added verbose statemements to chan_iax2 at line 5791 (the >> case statement handling IAX commands) but it never gets called. >> >> Does anybody have any idea what is going on with this? Here's my >> iaxc_unregister and the equivalent code in libiax2. Keep in mind >> that I have hacked the iaxc_register into iaxc_register2 and am >> keeping a list of valid registrations... > > > > > I'm not sure why it's not working, but I guess my question is -- is it > important to notify the server that you want to unregister, or would > it be sufficient to just let the registration expire? If you have > registrations last for say, 2 minutes, and then refresh every 30 > seconds, if you tell iaxclient to stop re-registering, the old > registration should only last between 90 and 120 seconds.. (change > numbers as appropriate). > Is there a real need for _immediate_ unregistration? > > -SteveK > I have one situation where it is, at least sort-of critical. I have a client who uses IAX Phone for home office/road warrior stuff, and a SIP hard-phone for the desk at work. He wants to have calls go to the IAX Phone if it is on-line, and to the SIP device if not. The code in his dial plan checks for an available IAX channel with ChanIsAvail and, if the device is registered, calls the IAX phone. If not, it checks the SIP phone and trys to call it. Unfortunately, there is a 90 - 120 second gap between shutting down the IAX phone and the system knowing that it is gone. While I know there are a number of ways of overcoming this, but it seems most elegant to be able to "sign off" at the end of a session. - SteveS > > >> >> [in iaxclient_lib.c]: >> >> int iaxc_unregister2(int regid) >> { >> struct iaxc_registration *prereg = NULL; >> struct iaxc_registration *oldreg = NULL; >> struct iaxc_registration *curreg = NULL; >> // Bail if the registration value is zero >> if (!registrations) >> return -1; >> // Set pointers to the base registrations value >> curreg = registrations; >> prereg = registrations; >> // Look for the registration by regid >> while (1) { >> if (curreg->regid == regid) { >> oldreg = curreg; >> break; >> } >> // cache the current registration for future use >> prereg = curreg; >> // get the next registration structure >> if (curreg->next) >> curreg = curreg->next; >> else >> return -2; // not found >> } >> // Hmmm... not found. >> if(!oldreg) { >> iaxc_usermsg(IAXC_ERROR, "Can't find registration to cancel."); >> return -3; >> } >> // Create a new session for this (should be every time) >> if(!oldreg->session) { >> oldreg->session = iax_session_new(); } >> // send out the unregister request >> iax_unregister(oldreg->session, oldreg->host, oldreg->user, >> oldreg->pass); >> // remove it from the list; >> if (oldreg->next) { >> if (prereg) >> prereg->next == oldreg->next; >> } >> // Destroy it >> free(oldreg); >> // return zero for success >> return 0; >> } >> >> [in iax.c (in libiax2)]: >> >> int iax_unregister(struct iax_session *session, char *server, char >> *peer, char *secret) >> { >> /* Send an un-registration request */ >> char tmp[256]; >> char *p; >> int res; >> int portno = IAX_DEFAULT_PORTNO; >> struct iax_ie_data ied; >> struct hostent *hp; >> tmp[255] = '\0'; >> strncpy(tmp, server, sizeof(tmp) - 1); >> p = strchr(tmp, ':'); >> if (p) >> portno = atoi(p); >> memset(&ied, 0, sizeof(ied)); >> if (secret) >> strncpy(session->secret, secret, sizeof(session->secret) - 1); >> else >> strcpy(session->secret, ""); >> /* Connect first */ >> hp = gethostbyname(tmp); >> if (!hp) { >> snprintf(iax_errstr, sizeof(iax_errstr), "Invalid hostname: >> %s", tmp); >> return -1; >> } >> memcpy(&session->peeraddr.sin_addr, hp->h_addr, >> sizeof(session->peeraddr.sin_addr)); >> session->peeraddr.sin_port = htons(portno); >> session->peeraddr.sin_family = AF_INET; >> strncpy(session->username, peer, sizeof(session->username) - 1); >> iax_ie_append_str(&ied, IAX_IE_USERNAME, peer); >> res = send_command(session, AST_FRAME_IAX, IAX_COMMAND_REGREL, 0, >> ied.buf, ied.pos, -1); >> DEBU(G "Sent Reg Release Message\n"); >> return res; >> } > > > |
From: Steve K. <st...@st...> - 2004-11-10 18:50:22
|
Steven Sokol wrote: > Ok, I've been playing in the library again trying to get REGREL to > work and I've found that I can send it all I want but that the curren > chan_iax2 does not seem to do anything with it. Of course I am > sending it with only a bare minimum of additional information -- I > toss in most of the same IEs that are sent along with a REGREQ. > > I see the request hit Asterisk in the iax debug output, but it never > seems to hit the proper point in the chan_iax2 code to unregister the > host. I've added verbose statemements to chan_iax2 at line 5791 (the > case statement handling IAX commands) but it never gets called. > > Does anybody have any idea what is going on with this? Here's my > iaxc_unregister and the equivalent code in libiax2. Keep in mind that > I have hacked the iaxc_register into iaxc_register2 and am keeping a > list of valid registrations... I'm not sure why it's not working, but I guess my question is -- is it important to notify the server that you want to unregister, or would it be sufficient to just let the registration expire? If you have registrations last for say, 2 minutes, and then refresh every 30 seconds, if you tell iaxclient to stop re-registering, the old registration should only last between 90 and 120 seconds.. (change numbers as appropriate). Is there a real need for _immediate_ unregistration? -SteveK > > [in iaxclient_lib.c]: > > int iaxc_unregister2(int regid) > { > struct iaxc_registration *prereg = NULL; > struct iaxc_registration *oldreg = NULL; > struct iaxc_registration *curreg = NULL; > // Bail if the registration value is zero > if (!registrations) > return -1; > // Set pointers to the base registrations value > curreg = registrations; > prereg = registrations; > // Look for the registration by regid > while (1) { > if (curreg->regid == regid) { > oldreg = curreg; > break; > } > // cache the current registration for future use > prereg = curreg; > // get the next registration structure > if (curreg->next) > curreg = curreg->next; > else > return -2; // not found > } > // Hmmm... not found. > if(!oldreg) { > iaxc_usermsg(IAXC_ERROR, "Can't find registration to cancel."); > return -3; > } > // Create a new session for this (should be every time) > if(!oldreg->session) { > oldreg->session = iax_session_new(); } > // send out the unregister request > iax_unregister(oldreg->session, oldreg->host, oldreg->user, > oldreg->pass); > // remove it from the list; > if (oldreg->next) { > if (prereg) > prereg->next == oldreg->next; > } > // Destroy it > free(oldreg); > // return zero for success > return 0; > } > > [in iax.c (in libiax2)]: > > int iax_unregister(struct iax_session *session, char *server, char > *peer, char *secret) > { > /* Send an un-registration request */ > char tmp[256]; > char *p; > int res; > int portno = IAX_DEFAULT_PORTNO; > struct iax_ie_data ied; > struct hostent *hp; > tmp[255] = '\0'; > strncpy(tmp, server, sizeof(tmp) - 1); > p = strchr(tmp, ':'); > if (p) > portno = atoi(p); > memset(&ied, 0, sizeof(ied)); > if (secret) > strncpy(session->secret, secret, sizeof(session->secret) - 1); > else > strcpy(session->secret, ""); > /* Connect first */ > hp = gethostbyname(tmp); > if (!hp) { > snprintf(iax_errstr, sizeof(iax_errstr), "Invalid hostname: > %s", tmp); > return -1; > } > memcpy(&session->peeraddr.sin_addr, hp->h_addr, > sizeof(session->peeraddr.sin_addr)); > session->peeraddr.sin_port = htons(portno); > session->peeraddr.sin_family = AF_INET; > strncpy(session->username, peer, sizeof(session->username) - 1); > iax_ie_append_str(&ied, IAX_IE_USERNAME, peer); > res = send_command(session, AST_FRAME_IAX, IAX_COMMAND_REGREL, 0, > ied.buf, ied.pos, -1); > DEBU(G "Sent Reg Release Message\n"); > return res; > } |
From: Steven S. <ss...@so...> - 2004-11-10 18:37:53
|
Ok, I've been playing in the library again trying to get REGREL to work and I've found that I can send it all I want but that the curren chan_iax2 does not seem to do anything with it. Of course I am sending it with only a bare minimum of additional information -- I toss in most of the same IEs that are sent along with a REGREQ. I see the request hit Asterisk in the iax debug output, but it never seems to hit the proper point in the chan_iax2 code to unregister the host. I've added verbose statemements to chan_iax2 at line 5791 (the case statement handling IAX commands) but it never gets called. Does anybody have any idea what is going on with this? Here's my iaxc_unregister and the equivalent code in libiax2. Keep in mind that I have hacked the iaxc_register into iaxc_register2 and am keeping a list of valid registrations... [in iaxclient_lib.c]: int iaxc_unregister2(int regid) { struct iaxc_registration *prereg = NULL; struct iaxc_registration *oldreg = NULL; struct iaxc_registration *curreg = NULL; // Bail if the registration value is zero if (!registrations) return -1; // Set pointers to the base registrations value curreg = registrations; prereg = registrations; // Look for the registration by regid while (1) { if (curreg->regid == regid) { oldreg = curreg; break; } // cache the current registration for future use prereg = curreg; // get the next registration structure if (curreg->next) curreg = curreg->next; else return -2; // not found } // Hmmm... not found. if(!oldreg) { iaxc_usermsg(IAXC_ERROR, "Can't find registration to cancel."); return -3; } // Create a new session for this (should be every time) if(!oldreg->session) { oldreg->session = iax_session_new(); } // send out the unregister request iax_unregister(oldreg->session, oldreg->host, oldreg->user, oldreg->pass); // remove it from the list; if (oldreg->next) { if (prereg) prereg->next == oldreg->next; } // Destroy it free(oldreg); // return zero for success return 0; } [in iax.c (in libiax2)]: int iax_unregister(struct iax_session *session, char *server, char *peer, char *secret) { /* Send an un-registration request */ char tmp[256]; char *p; int res; int portno = IAX_DEFAULT_PORTNO; struct iax_ie_data ied; struct hostent *hp; tmp[255] = '\0'; strncpy(tmp, server, sizeof(tmp) - 1); p = strchr(tmp, ':'); if (p) portno = atoi(p); memset(&ied, 0, sizeof(ied)); if (secret) strncpy(session->secret, secret, sizeof(session->secret) - 1); else strcpy(session->secret, ""); /* Connect first */ hp = gethostbyname(tmp); if (!hp) { snprintf(iax_errstr, sizeof(iax_errstr), "Invalid hostname: %s", tmp); return -1; } memcpy(&session->peeraddr.sin_addr, hp->h_addr, sizeof(session->peeraddr.sin_addr)); session->peeraddr.sin_port = htons(portno); session->peeraddr.sin_family = AF_INET; strncpy(session->username, peer, sizeof(session->username) - 1); iax_ie_append_str(&ied, IAX_IE_USERNAME, peer); res = send_command(session, AST_FRAME_IAX, IAX_COMMAND_REGREL, 0, ied.buf, ied.pos, -1); DEBU(G "Sent Reg Release Message\n"); return res; } |
From: Nathan S. <iax...@np...> - 2004-11-09 18:15:18
|
Michael Van Donselaar wrote: > > > > >>-----Original Message----- >>From: iax...@li... >>[mailto:iax...@li...] On >>Behalf Of Nathan Sharp >>Sent: Tuesday, November 09, 2004 11:06 AM >>To: mi...@va... >>Cc: iax...@li... >>Subject: Re: [Iaxclient-devel] Crash w/ IAXComm talking to >>another IAXComm >> >>Michael, >> Thanks so much for the quick reply! To answer your >>questions, I am calling through an Asterisk 1.0.1 server >>(with Speex disabled). I am not using the echo cancellation >>feature. >> >> Could this be the same problem? >>http://sourceforge.net/mailarchive/forum.php?thread_id=5836576 >>&forum_id=29380 >> >> >> > >I'm really not totally sure, but I think there's still a problem with codec >negotiation. > >Could you try calling peer to peer and see what you get? > > Sure enough, I did just find something that works based on that comment: disallow=all allow=gsm in the iax.conf setting for this client. I can now dial to FWD fine (I can't try the RH8 box until I get home). As an aside, I tried allow=ulaw first (so my asterisk box wouldn't have to convert when connecting to FWD), and it crashed as well. Thanks for the hint! That will get me running for now (although I await a better version soon!) >I am also going to post new binaries tonite or tomorrow compiled on RH9 and >WinXP. They will have CVS updates for iaxclient, and be set to prefer iLBC. > > > >> Only the existence of NAT or not doesn't seem to matter for >>me. I have hooked up my asterisk server to a FWD account >>using iax2.fwdnet.net and I've found that the client crashes >>also if I try to connect to FWD through my asterisk server. >> >>Feature Requests? My top priorities, in order: >>1) Secure against malicious incoming packets >> >> > >I don't know what to do here > > Code review and time will find these. It is a small target for malware writers right now too. > > >>2) Low Latency (10-2004 version seems much better than the >>earlier version, when it doesn't crash). >> >> > >See Steve Kann's comments about this. I'll recompile with a lower latency, >and see how it works. > > Yea, I found some stuff on the environment variable. The Linux version seems much better than the Windows version. I mention it because it makes the most difference to the "naturalness" of phone conversations. It is one of the main reasons I don't use a cell phone. I appreciate that the software has gotten better and that you guys are still working on it :-) > > >>3) Reliable. The earlier version has never crashed yet on >>me, it just has much higher latency. >> >> > >That's a feature everyone can use! > > > >>4) Easy to install/use (so I can hand it out to family and >>friends). You are pretty close on this front already. There >>are a couple of minor GUI issues which could be cleaned up. >> >> > >You shoulda seen the earlier versions! I think I've got the install down to >the easiest I can without going to the point of using an installer: a >single file that you can run from anywhere. > > Good Work! >Quick hint that I should put in the QUICKSTART: I trim down the registry >and export the HKEY/CU/Software/iaxcomm node and ship my family the binary >and the reg key. "Double click the .reg file then double click the phone." > > Great idea! >Since this list is for all iaxclient stuff, email me off list with your GUI >ideas. > > Will do. > > >>5) Control over the encoding format >> >> > >Yes, I need to add controls to override the defaults. > > > >>And as an aside for later: Some type of network level >>encryption would be great (if it didn't make latency bad). >> >> > >Any ideas on this, guys? > >I know just enough about encryption to know that ROT-13 ing the encoded >payload is probably not the route to take. > > This is somewhat of a pipe dream, I think. I dream of software that makes encryption so easy to use that I can use it with my mother. I have no expectations of the such anytime soon. I just saw the tunneling idea on the listserve and that will work for the time being. |
From: Steve K. <st...@st...> - 2004-11-09 18:03:12
|
Michael Van Donselaar wrote: > > > > >>-----Original Message----- >>From: iax...@li... >>[mailto:iax...@li...] On >>Behalf Of Nathan Sharp >>Sent: Tuesday, November 09, 2004 11:06 AM >>To: mi...@va... >>Cc: iax...@li... >>Subject: Re: [Iaxclient-devel] Crash w/ IAXComm talking to >>another IAXComm >> >>Michael, >> Thanks so much for the quick reply! To answer your >>questions, I am calling through an Asterisk 1.0.1 server >>(with Speex disabled). I am not using the echo cancellation >>feature. >> >> Could this be the same problem? >>http://sourceforge.net/mailarchive/forum.php?thread_id=5836576 >>&forum_id=29380 >> >> >> > >I'm really not totally sure, but I think there's still a problem with codec >negotiation. > >Could you try calling peer to peer and see what you get? > > It could be another problem in native transfer, though, like the one we fixed a couple of weeks ago (Are you binaries from past that date?). I think this is the problem referred to in that post. I fixed that on 10/29. >I am also going to post new binaries tonite or tomorrow compiled on RH9 and >WinXP. They will have CVS updates for iaxclient, and be set to prefer iLBC. > > > >> Only the existence of NAT or not doesn't seem to matter for >>me. I have hooked up my asterisk server to a FWD account >>using iax2.fwdnet.net and I've found that the client crashes >>also if I try to connect to FWD through my asterisk server. >> >>Feature Requests? My top priorities, in order: >>1) Secure against malicious incoming packets >> >> > >I don't know what to do here > > This, and encryption below, seem to be libiax2 and IAX2 protocol issues. There's a bug in digium's CVS discussing IAX2 encryption. Of course, if you control both endpoints, you could always run IAX2 (and iaxclient) through an encrypted tunnel. I will probably offer an API in iaxclient so that you can integrate something like this at the code level soon, but even without that, you can tunnel easily because IAX2 is so nat-friendly. I.e. you run like this: [iaxclient] <localhost interface> [tunnel program] <encrypted tunneled link over internet] <tunnel program> [localhost interface] <asterisk>. You'd make calls, register, etc via a localhost URL, I.e. dial foo:bar@localhost:port/extension. This all works fine. I think zebedee is a program that could do the tunneling for you. [...] > >Any ideas on this, guys? > >I know just enough about encryption to know that ROT-13 ing the encoded >payload is probably not the route to take. > > See above, and bugs.digium.com for info.. -SteveK |
From: Dennis W. <den...@ya...> - 2004-11-09 17:53:16
|
I know that some work has been done in the past for MSVC support but am not completely sure of its outcome or current status. I (and I think many others) would appreciate knowing the current status of things. Depending on the level of needed work to complete this task I would be willing to pay a bounty for this work to be done. /Dennis --- Iftikhar Qureshi <ift...@ya...> wrote: > > Can someone point to current library source code > that I can compile in VC++ 6.0 on win32. > > The code I got from from cvs doesnt compile > properly... > > I'm using the code that comes in the iaxclient > module. > > > --------------------------------- > Do you Yahoo!? > Check out the new Yahoo! Front Page. www.yahoo.com ===== Dennis White Telefonik - "Unleashing Powers of Technology" http://www.telefonik.com |
From: Michael V. D. <mi...@va...> - 2004-11-09 17:44:58
|
> -----Original Message----- > From: iax...@li... > [mailto:iax...@li...] On > Behalf Of Nathan Sharp > Sent: Tuesday, November 09, 2004 11:06 AM > To: mi...@va... > Cc: iax...@li... > Subject: Re: [Iaxclient-devel] Crash w/ IAXComm talking to > another IAXComm > > Michael, > Thanks so much for the quick reply! To answer your > questions, I am calling through an Asterisk 1.0.1 server > (with Speex disabled). I am not using the echo cancellation > feature. > > Could this be the same problem? > http://sourceforge.net/mailarchive/forum.php?thread_id=5836576 > &forum_id=29380 > I'm really not totally sure, but I think there's still a problem with codec negotiation. Could you try calling peer to peer and see what you get? I am also going to post new binaries tonite or tomorrow compiled on RH9 and WinXP. They will have CVS updates for iaxclient, and be set to prefer iLBC. > Only the existence of NAT or not doesn't seem to matter for > me. I have hooked up my asterisk server to a FWD account > using iax2.fwdnet.net and I've found that the client crashes > also if I try to connect to FWD through my asterisk server. > > Feature Requests? My top priorities, in order: > 1) Secure against malicious incoming packets I don't know what to do here > 2) Low Latency (10-2004 version seems much better than the > earlier version, when it doesn't crash). See Steve Kann's comments about this. I'll recompile with a lower latency, and see how it works. > 3) Reliable. The earlier version has never crashed yet on > me, it just has much higher latency. That's a feature everyone can use! > 4) Easy to install/use (so I can hand it out to family and > friends). You are pretty close on this front already. There > are a couple of minor GUI issues which could be cleaned up. You shoulda seen the earlier versions! I think I've got the install down to the easiest I can without going to the point of using an installer: a single file that you can run from anywhere. Quick hint that I should put in the QUICKSTART: I trim down the registry and export the HKEY/CU/Software/iaxcomm node and ship my family the binary and the reg key. "Double click the .reg file then double click the phone." Since this list is for all iaxclient stuff, email me off list with your GUI ideas. > 5) Control over the encoding format Yes, I need to add controls to override the defaults. > And as an aside for later: Some type of network level > encryption would be great (if it didn't make latency bad). Any ideas on this, guys? I know just enough about encryption to know that ROT-13 ing the encoded payload is probably not the route to take. > Thanks again! > Nathan > > Michael Van Donselaar wrote: > > > > Are you calling peer-to -peer (XP to RH8), or are both > phones registered with an > asterisk server? > > Do you have echo cancel turned on? I think there's > still a problem in there. I > probably ought to disable that. > > > > Feature requests are welcome too! > > > > > --- > Incoming mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.791 / Virus Database: 535 - Release Date: 11/8/2004 > > > --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.791 / Virus Database: 535 - Release Date: 11/8/2004 |
From: Michael V. D. <mi...@va...> - 2004-11-09 17:33:55
|
Dan, please email the xrc to me off-list along with the best translations for remote, state, and any others. I need to look into the best way to do this, and can't promise how soon I can get to it, but will work on it. > -----Original Message----- > From: iax...@li... > [mailto:iax...@li...] On > Behalf Of administrator tootai > Sent: Tuesday, November 09, 2004 10:59 AM > To: Iaxclient-list > Subject: [Iaxclient-devel] Feature request > > Hi, > > I finished the french translation for iaxComm (rc directory. > xrc file) but I'm now sticked with all the text which is > hardcoded. Could you try to think about this? For instance, > State and Remote in the main window, the default values, aso. > They are a few of them. > > Thanks > > -- > Daniel > > > ------------------------------------------------------- > This SF.Net email is sponsored by: > Sybase ASE Linux Express Edition - download now for FREE > LinuxWorld Reader's Choice Award Winner for best database on Linux. > http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click > _______________________________________________ > Iaxclient-devel mailing list > Iax...@li... > https://lists.sourceforge.net/lists/listinfo/iaxclient-devel > > --- > Incoming mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.791 / Virus Database: 535 - Release Date: 11/8/2004 > > --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.791 / Virus Database: 535 - Release Date: 11/8/2004 |
From: administrator t. <ad...@to...> - 2004-11-09 17:13:35
|
Hi, I finished the french translation for iaxComm (rc directory. xrc file) but I'm now sticked with all the text which is hardcoded. Could you try to think about this? For instance, State and Remote in the main window, the default values, aso. They are a few of them. Thanks -- Daniel |
From: Nathan S. <iax...@np...> - 2004-11-09 17:05:59
|
Michael, Thanks so much for the quick reply! To answer your questions, I am calling through an Asterisk 1.0.1 server (with Speex disabled). I am not using the echo cancellation feature. Could this be the same problem? http://sourceforge.net/mailarchive/forum.php?thread_id=5836576&forum_id=29380 Only the existence of NAT or not doesn't seem to matter for me. I have hooked up my asterisk server to a FWD account using iax2.fwdnet.net and I've found that the client crashes also if I try to connect to FWD through my asterisk server. Feature Requests? My top priorities, in order: 1) Secure against malicious incoming packets 2) Low Latency (10-2004 version seems much better than the earlier version, when it doesn't crash). 3) Reliable. The earlier version has never crashed yet on me, it just has much higher latency. 4) Easy to install/use (so I can hand it out to family and friends). You are pretty close on this front already. There are a couple of minor GUI issues which could be cleaned up. 5) Control over the encoding format And as an aside for later: Some type of network level encryption would be great (if it didn't make latency bad). Thanks again! Nathan Michael Van Donselaar wrote: > >Are you calling peer-to -peer (XP to RH8), or are both phones registered with an >asterisk server? > >Do you have echo cancel turned on? I think there's still a problem in there. I >probably ought to disable that. > > > > >Feature requests are welcome too! > > |
From: Michael V. D. <mic...@va...> - 2004-11-09 15:59:09
|
On Tue, 09 Nov 2004 07:02:28 -0500, Nathan Sharp = <iax...@np...> wrote: >Hi, > I recently found your IAXComm client and for the most part think it is= =20 >great! I am using Asterisk 1.0.1 and IAXComm 10-2004 and I can use the=20 >echo test and voicemail features of my server just fine. However,=20 >whenever I try to call from my Windows XP box to my RedHat 8 box, both=20 >clients crash instantly when I click to answer the call. Unfortunately=20 >I don't seem to have all the necessary devel libraries to compile a=20 >newer version. Is there any debugging in particular that might be=20 >useful? The only thing I can think of that is unusual is that I had to=20 >explicitly disable the speex codec on the server because otherwise it=20 >would accept the call in that format, then bail out because I don't have= =20 >speex installed there. Are you calling peer-to -peer (XP to RH8), or are both phones registered = with an asterisk server? Do you have echo cancel turned on? I think there's still a problem in = there. I probably ought to disable that. > > Kind regards, and thanks for such great software! > Nathan =46eature requests are welcome too! > > > >------------------------------------------------------- >This SF.Net email is sponsored by: >Sybase ASE Linux Express Edition - download now for FREE >LinuxWorld Reader's Choice Award Winner for best database on Linux. >http://ads.osdn.com/?ad_id=3D5588&alloc_id=3D12065&op=3Dclick >_______________________________________________ >Iaxclient-devel mailing list >Iax...@li... >https://lists.sourceforge.net/lists/listinfo/iaxclient-devel |
From: Nathan S. <iax...@np...> - 2004-11-09 12:02:42
|
Hi, I recently found your IAXComm client and for the most part think it is great! I am using Asterisk 1.0.1 and IAXComm 10-2004 and I can use the echo test and voicemail features of my server just fine. However, whenever I try to call from my Windows XP box to my RedHat 8 box, both clients crash instantly when I click to answer the call. Unfortunately I don't seem to have all the necessary devel libraries to compile a newer version. Is there any debugging in particular that might be useful? The only thing I can think of that is unusual is that I had to explicitly disable the speex codec on the server because otherwise it would accept the call in that format, then bail out because I don't have speex installed there. Kind regards, and thanks for such great software! Nathan |
From: daniel h. <de...@to...> - 2004-11-08 18:20:37
|
Steve Kann a =E9crit : > daniel huhardeaux wrote: > >> >> Ok, I got it: problem is echo cancelation. If it's activated I have=20 >> my audio problems. > > > > OK, so, if you turn off EC, everything works right? Yes --=20 Daniel |
From: Steve K. <st...@st...> - 2004-11-08 17:58:24
|
daniel huhardeaux wrote: > > Ok, I got it: problem is echo cancelation. If it's activated I have my > audio problems. OK, so, if you turn off EC, everything works right? EC was actually _really_ broken recently, as the libspeex API to it changed, and our code didn't. So we were passing in arrays of float, but it now expects arrays of short. I actually just changed this about 10 minutes before I read this mail; I was going through things to eliminate the warnings in the original iaxclient code (as opposed to the tons of warnings thrown by GSM and libiax2). However, the EC is still experimental at best. It probably won't help you to use it, and it will often make things worse. It's a great area for someone with some audio processing experience to contribute (by working with the speex project primarily). -SteveK |