Sangoma ISDN: no audio problem
Hi,
Hi,
I’m happy to report that we successfully connected Yate with an Avaya h323 system and a Digium Switchvox (SIP) today. I had to load CentOS 5.5 on a new virtual machine for it though, as the Windows distribution of Yate didn’t have a g.729 codec plugin available. Much happier to have it on *nix anyway.
To reduce the need for double licensing of g.729, can I force calls over SIP to run over alaw/ulaw when the call is received via h323 and g.729, or does the codec have to remain the same on both sides? Is any additional configuration required for this if converting the codec is possible?
Thanks!
--
Rob Koliha
Development and Infrastructure Services
AVG Technologies USA, Inc.
Hello Rob, Yes you can. You just need to setup the proper codecs in ysipchan.conf and in h323chan.conf. You can also setup the codecs by route using the formats parameter like this: ^100$=sip/sip:\0 <at> 10.0.0.1;formats=alaw,mulaw Diana P.S. I'm not sure if this is the correct name of the parameter but it's pretty close. Rob Koliha wrote: > > I’m happy to report that we successfully connected Yate with an Avaya > h323 system and a Digium Switchvox (SIP) today. I had to load CentOS > 5.5 on a new virtual machine for it though, as the Windows > distribution of Yate didn’t have a g.729 codec plugin available. Much > happier to have it on *nix anyway. > > To reduce the need for double licensing of g.729, can I force calls > over SIP to run over alaw/ulaw when the call is received via h323 and > g.729, or does the codec have to remain the same on both sides? Is any > additional configuration required for this if converting the codec is > possible? > > Thanks! > > -- > > *Rob Koliha* > > Development and Infrastructure Services > > AVG Technologies USA, Inc. >
We are running yate for interconnects, mainly as h233->sip converter.
We repeatedely got signal 11 when working registered to a gatekeeper. It looked like some race condition in openh323 code, as backtraces showed both in openh323 transport threads and in yate thread2.
This ocurred both when calls were passed to sip and when calls where routed to a conference ( one for each call ), or parked ( we did this to rule out the possibility of sip being the cause). It looked like some kind of race condition as it happened earlier both when call load was raised , when cpu was slower and when call duration was lowered.
When we worked without registering the h323 endpoint to a gatekeeper every test went fine.
This was tested with yate 2.0 / oh323 1.18 + pw 1.10, yate 2.2 / oh323 1.18 + pw 1.10 and oh323 1.19 + pw 1.11 and yate 3.0 / oh323 1.19 + pw 1.11
As we need to be registered to the gatekeeper to work properly ( we use a home-brew central gatekeeper wich does the routing ), and although I've read in the list that h323chan will need to be rewritten to work with h323plus I decided to give a try.
After a surprisingly short hack session I've managed to build yate 3 with h323plus. Not only this, it's working registered to a gatekeeper, and it doesn't dump ( or at least not in our tests, the openh323 1.19 version core dumped under a 240 call load in less than a minute, this doesn't. Also it dumped under a 120 call 30 to 300 seconds duration call load in minutes, we have it running for a couple of hours and it hasn't got a single hiccup ( after being 15 minutes in 240 10-50 seconds calls in the same instance ). We are going to leave it running but it seems pretty stable.
So I'm thinking our problem is in openh323. I'm not knowledgeable enough in configure / yate sources to make a full patch, but I'd like to share what I did in case someone wants to consider adding h323 plus support to yate.
This is what I did.
1.- Downloaded and installed ptlib 2.8.2 and h323plus-20100525 ( from cvs ).
This versions were chosen because we use gnugk too and I have just compiled them when building a static binary for gnugk2.3.2 which I was planning to use as a h323-h323 gateway to isolate yate from the central gatekeeper.
I unpacked them in ~/src/ptlib-2.8.2 and ~/src/h323plus-20100525 and configured them like this:
for pwlib:
~/src/ptlib-2.8.2 $ ./configure --prefix=$HOME
for h323plus:
~/src/h323plus-20100525 $
./configure --prefix=$HOME \
--disable-video \
--disable-h460 \
--disable-h46018 \
--disable-h46023 \
--disable-h460p \
--disable-t38 \
--disable-t120 \
--disable-file \
--enable-gnugk
( h323plus directed me to run aclocal <at> plugins dir, I did it and it worked fine )
This configuration was choosen for the GNUGK, I wanted to use the same libs in yate.
Then I ran make opt in both of them ( gone well ) and exported variables to point at them:
export PTLIBDIR=~/src/ptlib-2.8.2
export PWLIBDIR=$PTLIBDIR
export OPENH323DIR=~/src/h323plus-20100525
export H323PLUSDIR=$OPENH323DIR
2.- Hacked a little to make yate configure script find everything. What I did was:
2.a.- Hack lib directory in ptlib, which has a different name:
~/src/ptlib-2.8.2 $ mkdir lib
~/src/ptlib-2.8.2 $ cd lib
~/src/ptlib-2.8.2/lib $ cp ../lib_linux_x86_64/libpt.so libpt_r.so
2.b.- Hack lib directory in h323plus, same reason:
~/src/h323plus-20100525/lib $ ln -s libh323_linux_x86_64_.so libh323_linux_x86_64_r.so
2.c - run yate3 configure script. I used the same previously used with openh323 1.19 ( from which I copied the dir structure in the previous links ).
./configure \
--prefix=$HOME \
--enable-inline \
--disable-dahdi \
--disable-zaptel \
--disable-wpcard \
--disable-tdmcard \
--disable-wanpipe \
--disable-ilbc \
--enable-rtti \
--without-libpq \
--without-mysql \
--without-wphwec \
--without-libgsm \
--without-libspeex \
--without-amrnb \
--without-spandsp \
--with-pwlib=$PWLIBDIR \
--with-openh323=$OPENH323DIR \
--with-openssl \
--without-libqt4
This ran ok, and properly found ptlib/h323plus:
....
checking for Pwlib in /home/gnugk/src/ptlib-2.8.2... sources RTTI: none
checking for OpenH323 in /home/gnugk/src/h323plus-20100525... sources 1.22.0
....
3.- The I started the make session, which I'll describe:
3.-a first make gave a lot of error relating to unknwon BOOL type in h323chan. Looking at the docs I saw BOOL type was now called PBoolean, so I added
typedef PBoolean BOOL;
at the top, between
#include <string.h>
and
using namespace TelEngine;
3.b Second make, this time I got a single error:
g++ -Wall -I.. -I.. -O2 -fno-check-new -frtti -fno-exceptions -fPIC -DHAVE_GCC_FORMAT_CHECK -finline -Winline -export-dynamic -shared -Wl,--unresolved-symbols=ignore-in-shared-libs -Wl,--retain-symbols-file,/dev/null -o h323chan.yate -DPHAS_TEMPLATES -D_REENTRANT -DP_HAS_SEMAPHORES -I/home/gnugk/src/ptlib-2.8.2/include -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix -I/home/gnugk/src/ptlib-2.8.2/include/ptlib -I/home/gnugk/src/h323plus-20100525/include h323chan.cpp -L/home/gnugk/src/h323plus-20100525/lib -lh323_linux_x86_64_r -L/home/gnugk/src/ptlib-2.8.2/lib -lpt_r -L.. -lyate
h323chan.cpp: In function 'void<unnamed>::ListRegisteredCaps(int)':
h323chan.cpp:641: error: conversion from '__gnu_cxx::__normal_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >' to non-scalar type '__gnu_cxx::__normal_iterator<const PString*, std::vector<PString, std::allocator<PString> > >' requested
h323chan.cpp:641: error: no match for 'operator!=' in 'find != list.std::vector<_Tp, _Alloc>::end [with _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Alloc = std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]()'
/home/gnugk/src/ptlib-2.8.2/include/ptlib/pluginmgr.h: At global scope:
/home/gnugk/src/ptlib-2.8.2/include/ptlib/pluginmgr.h:167: warning: 'PFactoryLoader::PluginLoaderStartup_loader' defined but not used
make[1]: *** [h323chan.yate] Error 1
The guilty party was the ListRegisteredCaps function:
static void ListRegisteredCaps(int level)
{
PFactory<H323Capability>::KeyList_T list = PFactory<H323Capability>::GetKeyList();
for (std::vector<PString>::const_iterator find = list.begin(); find != list.end(); ++find)
Debug(level,"Registed capability: '%s'",(const char*)*find);
}
Which has two problems, first the for should be written using list declared type, not assuming it:
for (PFactory<H323Capability>::KeyList_T::const_iterator find = list.begin(); find != list.end(); ++find)
And second, once fixed this basic_string is not convertible to const char *, so :
Debug(level,"Registed capability: '%s'",find->c_str());
Which left the function as:
static void ListRegisteredCaps(int level)
{
PFactory<H323Capability>::KeyList_T list = PFactory<H323Capability>::GetKeyList();
#if 0
for (std::vector<PString>::const_iterator find = list.begin(); find != list.end(); ++find)
Debug(level,"Registed capability: '%s'",(const char*)*find);
#else
for (PFactory<H323Capability>::KeyList_T::const_iterator find = list.begin(); find != list.end(); ++find)
Debug(level,"Registed capability: '%s'",find->c_str());
#endif
}
Once this was fixed compilation went ok, but then I got link errors.
3.c.- Link error due to 64 bit fixing.
One of the link errors was an undefined reference to H323GatekeeperServer::MonitorMain(PThread, int).
Dumping the libh323_.a I noticed it had a H323GatekeeperServer::MonitorMain(PThread, long) inside.
The declaration of the method in h323plus gkserver.cxx was H323GatekeeperServer::MonitorMain(PThread, INT).
And I found this definition inside ptlibs header files:
/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib/contain.h
81-#ifdef P_64BIT
82:typedef long INT;
83:typedef unsigned long UINT;
84-#else
85:typedef int INT;
86:typedef unsigned int UINT;
87-#endif
So I went into the modules/Makefile and changed:
h323chan.yate: LOCALFLAGS = -DPHAS_TEMPLATES -D_REENTRANT -DP_HAS_SEMAPHORES -I/home/gnugk/src/ptlib-2.8.2/include -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix -I/home/gnugk/src/ptlib-2.8.2/include/ptlib -I/home/gnugk/src/h323plus-20100525/include
to
h323chan.yate: LOCALFLAGS = -DP_64BIT -DPHAS_TEMPLATES -D_REENTRANT
-DP_HAS_SEMAPHORES -I/home/gnugk/src/ptlib-2.8.2/include
-I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib
-I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix
-I/home/gnugk/src/ptlib-2.8.2/include/ptlib
-I/home/gnugk/src/h323plus-20100525/include
This led to make ok, make install ok. Then I just did
export LD_LIBRARY_PATH=~/lib:$OPENH323DIR/lib:$PWLIBDIR/lib_linux_x86_64_o
and ~/bin/yate ran ok.
After that we copied our test configs and everything is running well,
If someone wants to consider adding support for this configuration to yate I can provide more info.
------------------
Francisco Olarte Sanz.
---DIFF for h323chan.cpp------------
gnugk <at> gkaps ~ $ diff -u ~yate/src/yate/modules/h323chan.cpp yate3-ptx/modules/h323chan.cpp
--- /home/yate/src/yate/modules/h323chan.cpp 2010-03-12 16:44:09.000000000 +0100
+++ yate3-ptx/modules/h323chan.cpp 2010-08-04 17:14:40.961827685 +0200
<at> <at> -82,6 +82,7 <at> <at>
#include <yateversn.h>
#include <string.h>
+typedef PBoolean BOOL;
using namespace TelEngine;
namespace { // anonymous
<at> <at> -637,8 +638,13 <at> <at>
static void ListRegisteredCaps(int level)
{
PFactory<H323Capability>::KeyList_T list = PFactory<H323Capability>::GetKeyList();
+#if 0
for (std::vector<PString>::const_iterator find = list.begin(); find != list.end(); ++find)
Debug(level,"Registed capability: '%s'",(const char*)*find);
+#else
+ for (PFactory<H323Capability>::KeyList_T::const_iterator find = list.begin(); find != list.end(); ++find)
+ Debug(level,"Registed capability: '%s'",find->c_str());
+#endif
}
#else
// This class is used just to find out if a capability is registered
It would be great if these changes could be included into the standard Yate release! Reagrds, Jan -- Jan Willamowius, jan@..., http://www.gnugk.org/ Francisco Olarte (M) wrote: > We are running yate for interconnects, mainly as h233->sip converter. > > We repeatedely got signal 11 when working registered to a gatekeeper. It > looked like some race condition in openh323 code, as backtraces showed both > in openh323 transport threads and in yate thread2. > > This ocurred both when calls were passed to sip and when calls where routed > to a conference ( one for each call ), or parked ( we did this to rule out > the possibility of sip being the cause). It looked like some kind of race > condition as it happened earlier both when call load was raised , when cpu > was slower and when call duration was lowered. > > When we worked without registering the h323 endpoint to a gatekeeper every > test went fine. > > This was tested with yate 2.0 / oh323 1.18 + pw 1.10, yate 2.2 / oh323 1.18 > + pw 1.10 and oh323 1.19 + pw 1.11 and yate 3.0 / oh323 1.19 + pw 1.11 > > As we need to be registered to the gatekeeper to work properly ( we use a > home-brew central gatekeeper wich does the routing ), and although I've read > in the list that h323chan will need to be rewritten to work with h323plus I > decided to give a try. > > After a surprisingly short hack session I've managed to build yate 3 with > h323plus. Not only this, it's working registered to a gatekeeper, and it > doesn't dump ( or at least not in our tests, the openh323 1.19 version core > dumped under a 240 call load in less than a minute, this doesn't. Also it > dumped under a 120 call 30 to 300 seconds duration call load in minutes, we > have it running for a couple of hours and it hasn't got a single hiccup ( > after being 15 minutes in 240 10-50 seconds calls in the same instance ). We > are going to leave it running but it seems pretty stable. > > So I'm thinking our problem is in openh323. I'm not knowledgeable enough in > configure / yate sources to make a full patch, but I'd like to share what I > did in case someone wants to consider adding h323 plus support to yate. > > > This is what I did. > > 1.- Downloaded and installed ptlib 2.8.2 and h323plus-20100525 ( from cvs ). > > > This versions were chosen because we use gnugk too and I have just compiled > them when building a static binary for gnugk2.3.2 which I was planning to > use as a h323-h323 gateway to isolate yate from the central gatekeeper. > > I unpacked them in ~/src/ptlib-2.8.2 and ~/src/h323plus-20100525 and > configured them like this: > > for pwlib: > > ~/src/ptlib-2.8.2 $ ./configure --prefix=$HOME > > for h323plus: > > ~/src/h323plus-20100525 $ > ./configure --prefix=$HOME \ > --disable-video \ > --disable-h460 \ > --disable-h46018 \ > --disable-h46023 \ > --disable-h460p \ > --disable-t38 \ > --disable-t120 \ > --disable-file \ > --enable-gnugk > > ( h323plus directed me to run aclocal <at> plugins dir, I did it and it worked > fine ) > > This configuration was choosen for the GNUGK, I wanted to use the same libs > in yate. > > Then I ran make opt in both of them ( gone well ) and exported variables to > point at them: > > export PTLIBDIR=~/src/ptlib-2.8.2 > export PWLIBDIR=$PTLIBDIR > export OPENH323DIR=~/src/h323plus-20100525 > export H323PLUSDIR=$OPENH323DIR > > > 2.- Hacked a little to make yate configure script find everything. What I > did was: > > 2.a.- Hack lib directory in ptlib, which has a different name: > > ~/src/ptlib-2.8.2 $ mkdir lib > ~/src/ptlib-2.8.2 $ cd lib > ~/src/ptlib-2.8.2/lib $ cp ../lib_linux_x86_64/libpt.so libpt_r.so > > 2.b.- Hack lib directory in h323plus, same reason: > > ~/src/h323plus-20100525/lib $ ln -s libh323_linux_x86_64_.so > libh323_linux_x86_64_r.so > > 2.c - run yate3 configure script. I used the same previously used with > openh323 1.19 ( from which I copied the dir structure in the previous links > ). > > ./configure \ > --prefix=$HOME \ > --enable-inline \ > --disable-dahdi \ > --disable-zaptel \ > --disable-wpcard \ > --disable-tdmcard \ > --disable-wanpipe \ > --disable-ilbc \ > --enable-rtti \ > --without-libpq \ > --without-mysql \ > --without-wphwec \ > --without-libgsm \ > --without-libspeex \ > --without-amrnb \ > --without-spandsp \ > --with-pwlib=$PWLIBDIR \ > --with-openh323=$OPENH323DIR \ > --with-openssl \ > --without-libqt4 > > This ran ok, and properly found ptlib/h323plus: > .... > checking for Pwlib in /home/gnugk/src/ptlib-2.8.2... sources RTTI: none > checking for OpenH323 in /home/gnugk/src/h323plus-20100525... sources 1.22.0 > .... > > > 3.- The I started the make session, which I'll describe: > > 3.-a first make gave a lot of error relating to unknwon BOOL type in > h323chan. Looking at the docs I saw BOOL type was now called PBoolean, so I > added > > typedef PBoolean BOOL; > > at the top, between > > #include <string.h> > > and > > using namespace TelEngine; > > > 3.b Second make, this time I got a single error: > > g++ -Wall -I.. -I.. -O2 -fno-check-new -frtti -fno-exceptions -fPIC > -DHAVE_GCC_FORMAT_CHECK -finline -Winline -export-dynamic -shared > -Wl,--unresolved-symbols=ignore-in-shared-libs > -Wl,--retain-symbols-file,/dev/null -o h323chan.yate -DPHAS_TEMPLATES > -D_REENTRANT -DP_HAS_SEMAPHORES -I/home/gnugk/src/ptlib-2.8.2/include > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib > -I/home/gnugk/src/h323plus-20100525/include h323chan.cpp > -L/home/gnugk/src/h323plus-20100525/lib -lh323_linux_x86_64_r > -L/home/gnugk/src/ptlib-2.8.2/lib -lpt_r -L.. -lyate > h323chan.cpp: In function 'void<unnamed>::ListRegisteredCaps(int)': > h323chan.cpp:641: error: conversion from > '__gnu_cxx::__normal_iterator<std::basic_string<char, > std::char_traits<char>, std::allocator<char> >*, > std::vector<std::basic_string<char, std::char_traits<char>, > std::allocator<char> >, std::allocator<std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > > >' to non-scalar type > '__gnu_cxx::__normal_iterator<const PString*, std::vector<PString, > std::allocator<PString> > >' requested > h323chan.cpp:641: error: no match for 'operator!=' in 'find != > list.std::vector<_Tp, _Alloc>::end [with _Tp = std::basic_string<char, > std::char_traits<char>, std::allocator<char> >, _Alloc = > std::allocator<std::basic_string<char, std::char_traits<char>, > std::allocator<char> > >]()' > /home/gnugk/src/ptlib-2.8.2/include/ptlib/pluginmgr.h: At global scope: > /home/gnugk/src/ptlib-2.8.2/include/ptlib/pluginmgr.h:167: warning: > 'PFactoryLoader::PluginLoaderStartup_loader' defined but not used > make[1]: *** [h323chan.yate] Error 1 > > The guilty party was the ListRegisteredCaps function: > > > static void ListRegisteredCaps(int level) > { > PFactory<H323Capability>::KeyList_T list = > PFactory<H323Capability>::GetKeyList(); > for (std::vector<PString>::const_iterator find = list.begin(); find != > list.end(); ++find) > Debug(level,"Registed capability: '%s'",(const char*)*find); > } > > Which has two problems, first the for should be written using list declared > type, not assuming it: > > for (PFactory<H323Capability>::KeyList_T::const_iterator find = > list.begin(); find != list.end(); ++find) > > And second, once fixed this basic_string is not convertible to const char *, > so : > > Debug(level,"Registed capability: '%s'",find->c_str()); > > Which left the function as: > > static void ListRegisteredCaps(int level) > { > PFactory<H323Capability>::KeyList_T list = > PFactory<H323Capability>::GetKeyList(); > #if 0 > for (std::vector<PString>::const_iterator find = list.begin(); find != > list.end(); ++find) > Debug(level,"Registed capability: '%s'",(const char*)*find); > #else > for (PFactory<H323Capability>::KeyList_T::const_iterator find = > list.begin(); find != list.end(); ++find) > Debug(level,"Registed capability: '%s'",find->c_str()); > #endif > } > > Once this was fixed compilation went ok, but then I got link errors. > > 3.c.- Link error due to 64 bit fixing. > > One of the link errors was an undefined reference to > H323GatekeeperServer::MonitorMain(PThread, int). > > Dumping the libh323_.a I noticed it had a > H323GatekeeperServer::MonitorMain(PThread, long) inside. > > The declaration of the method in h323plus gkserver.cxx was > H323GatekeeperServer::MonitorMain(PThread, INT). > > And I found this definition inside ptlibs header files: > > /home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib/contain.h > 81-#ifdef P_64BIT > 82:typedef long INT; > 83:typedef unsigned long UINT; > 84-#else > 85:typedef int INT; > 86:typedef unsigned int UINT; > 87-#endif > > So I went into the modules/Makefile and changed: > > > h323chan.yate: LOCALFLAGS = -DPHAS_TEMPLATES -D_REENTRANT -DP_HAS_SEMAPHORES > -I/home/gnugk/src/ptlib-2.8.2/include > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib > -I/home/gnugk/src/h323plus-20100525/include > > to > > h323chan.yate: LOCALFLAGS = -DP_64BIT -DPHAS_TEMPLATES -D_REENTRANT > -DP_HAS_SEMAPHORES -I/home/gnugk/src/ptlib-2.8.2/include > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix/ptlib > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib/unix > -I/home/gnugk/src/ptlib-2.8.2/include/ptlib > -I/home/gnugk/src/h323plus-20100525/include > > > This led to make ok, make install ok. Then I just did > > export LD_LIBRARY_PATH=~/lib:$OPENH323DIR/lib:$PWLIBDIR/lib_linux_x86_64_o > > and ~/bin/yate ran ok. > > After that we copied our test configs and everything is running well, > > > If someone wants to consider adding support for this configuration to yate I > can provide more info. > > > > ------------------ > > Francisco Olarte Sanz. > > > > ---DIFF for h323chan.cpp------------ > > gnugk <at> gkaps ~ $ diff -u ~yate/src/yate/modules/h323chan.cpp > yate3-ptx/modules/h323chan.cpp > --- /home/yate/src/yate/modules/h323chan.cpp 2010-03-12 > 16:44:09.000000000 +0100 > +++ yate3-ptx/modules/h323chan.cpp 2010-08-04 17:14:40.961827685 +0200 > <at> <at> -82,6 +82,7 <at> <at> > #include <yateversn.h> > > #include <string.h> > +typedef PBoolean BOOL; > > using namespace TelEngine; > namespace { // anonymous > <at> <at> -637,8 +638,13 <at> <at> > static void ListRegisteredCaps(int level) > { > PFactory<H323Capability>::KeyList_T list = > PFactory<H323Capability>::GetKeyList(); > +#if 0 > for (std::vector<PString>::const_iterator find = list.begin(); find != > list.end(); ++find) > Debug(level,"Registed capability: '%s'",(const char*)*find); > +#else > + for (PFactory<H323Capability>::KeyList_T::const_iterator find = > list.begin(); find != list.end(); ++find) > + Debug(level,"Registed capability: '%s'",find->c_str()); > +#endif > } > #else > // This class is used just to find out if a capability is registered
Hi, Change [yateserver] section name to [nas yateserver] Change radsec=radiusserver to radsec=server in [nas yateserver] section Change [radiusserver] section name to [radius server] Radius server sections must be named [radius server_name_specified_in_nas_section] Marian Francisco Morales wrote: > Hello all: > > I have thought of using radius for my postpaid billing, but I can not > make it work, the file "log" says this: > > "Initializing module Radiusq client" > > But I find no communication with the radius server. > > My yradius.conf: > -----------------------------> > [general] > enabled = true > addr=192.168.0.249 > port=1810 > nas_id=yate > local_time=true > priority=55 > > [yateserver] > rad_acct = yes > radsec = radiusserver > > [radiusserver] > server = 192.168.0.254 > auth_port = 1812 > acct_port = 1813 > secret = mysecret > disable_auth = on > timeoutsecs = 5 > retries = 2 > add:NAS-Identifier=yate > add:NAS-IP-Address=192.168.0.249 > > --------------------------------------> > > Any help, please ?? > > Fco. Morales >
RSS Feed27 | |
|---|---|
21 | |
116 | |
64 | |
33 | |
57 | |
65 | |
84 | |
107 | |
93 | |
112 | |
45 | |
97 | |
117 | |
98 | |
105 | |
148 | |
124 | |
63 | |
48 | |
130 | |
65 | |
93 | |
73 | |
111 | |
133 | |
133 | |
95 | |
92 | |
70 | |
53 | |
66 | |
92 | |
51 | |
50 | |
67 | |
96 | |
53 | |
67 | |
84 | |
46 | |
69 | |
152 | |
90 | |
44 | |
46 | |
80 | |
90 | |
43 | |
95 | |
31 | |
68 | |
84 | |
83 | |
41 | |
104 | |
157 | |
153 | |
235 | |
59 | |
142 | |
94 | |
63 | |
57 | |
99 | |
69 | |
69 | |
79 | |
97 | |
111 | |
117 | |
91 | |
61 | |
119 | |
77 | |
9 | |
65 | |
2 | |
6 | |
24 | |
16 | |
12 | |
67 | |
39 | |
27 | |
34 | |
45 | |
42 | |
64 | |
36 | |
14 | |
1 | |
1 | |
8 | |
2 | |
11 | |
9 |