Alfred Stainer | 2 Aug 2010 11:33
Picon

Sangoma ISDN: no audio problem

Hi,

I'm using Yate with Sangoma A108 boards (configured as ISDN) on a CentOS 5.5 system.

I have the problem that, after 1 or 2 days of usage, in some E1 trunk doesn't pass the audio.

To solve the problem I have to: 
1. stop yate, 
2. do a "wanrouter restart", 
3. start yate

The Wanpipe driver I'm using is 3.3.14.11.

Anyone has found the same issue?

There is a way to detect the "no audio" on isdn trunks?

Any suggestion?

Thanks in advance,

Alfred
Francisco Morales | 2 Aug 2010 17:15
Picon
Favicon

Radius for my postpaid billing

  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

Rob Koliha | 2 Aug 2010 18:19
Favicon

H323 to SIP Codec Questions

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.

 

Dario | 2 Aug 2010 18:34
Picon

yate + gnugk

Hi
My system contains Debian 5.0 Gnugk 0.12 and I have an account on 12voip SIP provider.
My terminals are H.323 Siemens optiPoint 300 phones and work OK on gnugk.

Now we need to link gnugk Yate Yate or how to be a gatekeeper.
No way to merge them or how to Yate zajedno.Tried to perform all the instructions but I'm not going.
If you can help small

Sorry for the English Google.

Regards
Dario
Diana Cionoiu | 2 Aug 2010 18:43
Picon
Favicon

Re: H323 to SIP Codec Questions

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.
>

Francisco Morales | 3 Aug 2010 11:53
Picon
Favicon

Radius log

Hello all,

As I can I set a high vervose level of "log" in yradius.conf  ??

Thank's in advance,
Fco. Morales

Francisco Olarte (M | 5 Aug 2010 13:13

Segmentation fault on registered h323 calls ( solved using h323plus )

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










Jan Willamowius | 5 Aug 2010 15:16
Face
Picon
Favicon

Re: Segmentation fault on registered h323 calls ( solved using h323plus )

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

Francisco Morales | 10 Aug 2010 15:48
Picon
Favicon

Radius

Hello all,

I am desperate to find some solution to use radius for accounting purposes ...

Can someone help me, please

Thank's in advance,
Fco. Morales

Marian | 10 Aug 2010 16:50
Picon
Favicon

Re: Radius for my postpaid billing

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
>


Gmane