Page 1 of 1

VICIdial without Meetme

PostPosted: Thu Jan 16, 2014 12:33 pm
by mav2287
I have been working on a little pet project to get VICIdial to run on a Apple OS X server. So far it has actually gone rather well. There are a few bugs to chase out, but it is running smoothly. The only thing this box can't do is be the asterisk server, because dahdi won't install on OS X due to kernel issues. I found some documentation on using the conference app instead of meetme, but it seems outdated. I wanted to see if any work has been done to use a different conferencing app other than Meetme with VICIdial.

OS X install thread
http://www.vicidial.org/VICIDIALforum/v ... =4&t=32317

Re: VICIdial without Meetme

PostPosted: Thu Jan 16, 2014 2:50 pm
by mflorell
I got app_conference working several years ago, but abandoned it because it had the same problem of all non-hardware-timer conferencing engines, at higher loads the audio went bad and all recordings associated with the conference went bad too. This doesn't happen with meetme, and I haven't found another engine that works at high load as well as meetme does.

Re: VICIdial without Meetme

PostPosted: Thu Jan 16, 2014 4:00 pm
by mav2287
Matt you must have know that this thread was aimed at you a bit. I have tried for a few weeks now to find a way to get dahdi to install on OS X, but the issue seems to be that it wants to create a kernel module and can't with the darwin kernel. I was hoping that there would be a way to switch from meetme to something like conf_bridge without a ton of trouble as we aren't using hardware timers. The only other way I can see to complete the install would be to find a way to install dahdi without installing the kernel module, however if my understanding of dahdi is correct then it wouldn't work.

Re: VICIdial without Meetme

PostPosted: Sat Jan 18, 2014 8:25 am
by mflorell
I really haven't done anything recently on this, nothing even since Dahdi was forked from zaptel. The issue with all software timers becoming unreliable at even moderate loads kind of killed any hope of using them with Vicidial, so I stopped trying and focused on other development.

I will say that app_conference did work, it had all of the functions of a normal Vicidial server and was essentially a drop-in replacement for meetme. Unfortunately, when we got to about 75% of the load that a meetme system could handle we began to have recording problems, then with just a little more load the agents began to report audio problems. That's what killed it.

Re: VICIdial without Meetme

PostPosted: Sun Jan 19, 2014 2:19 am
by mav2287
If it will still work with asterisk 1.8 and the current version of VICIdial it will definitely be worth the 25% loss. It would be one of the final pieces of the puzzle to complete the port to OS X. I can then easily get around the 75% issue by just clustering servers. I tried to install App_conference with no luck even after playing with the 64 Makefile. I included the output below, I'm not sure what is causing the issues but it does't seem to like the include files. I tried to run the make file on a regular VICIbox install and it also kicked out lot of errors. Those are included below as well.

Code: Select all
bash-3.2# make
gcc -pipe -fPIC -Wall -Wmissing-prototypes -Wmissing-declarations -g  -I/usr/local/include/asterisk/ -D_REENTRANT -D_GNU_SOURCE  -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2   -c -o app_conference.o app_conference.c
In file included from /usr/include/sys/time.h:198,
                 from /usr/local/include/asterisk/abstract_jb.h:33,
                 from /usr/local/include/asterisk/channel.h:126,
                 from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/time.h:45: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_tvdiff_sec’
/usr/local/include/asterisk/time.h:45: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_tvdiff_sec’
/usr/local/include/asterisk/time.h:64: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_tvdiff_us’
/usr/local/include/asterisk/time.h:64: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_tvdiff_us’
/usr/local/include/asterisk/time.h:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_tvdiff_ms’
/usr/local/include/asterisk/time.h:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_tvdiff_ms’
In file included from /usr/local/include/asterisk/abstract_jb.h:35,
                 from /usr/local/include/asterisk/channel.h:126,
                 from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/frame_defs.h:32: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘format_t’
In file included from /usr/local/include/asterisk/channel.h:126,
                 from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/abstract_jb.h:100: error: expected specifier-qualifier-list before ‘format_t’
In file included from /usr/local/include/asterisk/astobj2.h:20,
                 from /usr/local/include/asterisk/channel.h:127,
                 from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/compat.h:97: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘htonll’
/usr/local/include/asterisk/compat.h:105: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ntohll’
/usr/local/include/asterisk/compat.h:129: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘strtoq’
/usr/local/include/asterisk/compat.h:141: error: expected identifier or ‘(’ before ‘do’
/usr/local/include/asterisk/compat.h:141: error: expected identifier or ‘(’ before ‘while’
In file included from /usr/local/include/asterisk/channel.h:129,
                 from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/poll-compat.h:99: error: redefinition of ‘struct pollfd’
In file included from /usr/local/include/asterisk/channel.h:141,
                 from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/frame.h:39: error: ‘format_t’ undeclared here (not in a function)
/usr/local/include/asterisk/frame.h:137: error: expected specifier-qualifier-list before ‘format_t’
/usr/local/include/asterisk/frame.h:525: error: expected specifier-qualifier-list before ‘format_t’
/usr/local/include/asterisk/frame.h:598: error: expected ‘)’ before ‘format’
/usr/local/include/asterisk/frame.h:608: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/frame.h:615: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_getformatbyname’
/usr/local/include/asterisk/frame.h:622: error: expected ‘)’ before ‘codec’
/usr/local/include/asterisk/frame.h:698: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_codec_pref_index’
/usr/local/include/asterisk/frame.h:701: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/frame.h:705: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/frame.h:709: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/frame.h:714: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_codec_choose’
/usr/local/include/asterisk/frame.h:718: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/frame.h:722: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/frame.h:729: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/frame.h:749: error: expected ‘)’ before ‘format’
/usr/local/include/asterisk/frame.h:756: error: expected ‘)’ before ‘format’
/usr/local/include/asterisk/frame.h:783: error: expected ‘)’ before ‘format’
In file included from /usr/local/include/asterisk/cdr.h:31,
                 from /usr/local/include/asterisk/channel.h:146,
                 from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/data.h:811: error: expected declaration specifiers or ‘...’ before ‘format_t’
In file included from /usr/local/include/asterisk/pbx.h:26,
                 from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/channel.h:511: error: expected specifier-qualifier-list before ‘format_t’
/usr/local/include/asterisk/channel.h:837: error: expected specifier-qualifier-list before ‘format_t’
/usr/local/include/asterisk/channel.h:1326: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/channel.h:1344: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/channel.h:1362: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/channel.h:1375: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/channel.h:1817: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/channel.h:1826: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/channel.h:2095: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_best_codec’
In file included from app_conference.h:25,
                 from app_conference.c:19:
/usr/local/include/asterisk/pbx.h:916: error: expected declaration specifiers or ‘...’ before ‘format_t’
/usr/local/include/asterisk/pbx.h:920: error: expected declaration specifiers or ‘...’ before ‘format_t’
In file included from app_conference.h:32,
                 from app_conference.c:19:
/usr/local/include/asterisk/translate.h:73: error: expected specifier-qualifier-list before ‘format_t’
/usr/local/include/asterisk/translate.h:206: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_translator_best_choice’
/usr/local/include/asterisk/translate.h:215: error: expected ‘)’ before ‘dest’
/usr/local/include/asterisk/translate.h:241: error: expected ‘)’ before ‘dest’
/usr/local/include/asterisk/translate.h:255: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ast_translate_available_formats’
In file included from app_conference.h:38,
                 from app_conference.c:19:
/usr/include/stdlib.h:177: error: conflicting types for ‘realloc’
/usr/local/include/asterisk/utils.h:526: error: previous implicit declaration of ‘realloc’ was here
app_conference.c:51: warning: data definition has no type or storage class
app_conference.c:51: warning: type defaults to ‘int’ in declaration of ‘STANDARD_LOCAL_USER’
app_conference.c:52: warning: data definition has no type or storage class
app_conference.c:52: warning: type defaults to ‘int’ in declaration of ‘LOCAL_USER_DECL’
app_conference.c:55: warning: no previous prototype for ‘unload_module’
app_conference.c: In function ‘unload_module’:
app_conference.c:58: error: ‘STANDARD_HANGUP_LOCALUSERS’ undeclared (first use in this function)
app_conference.c:58: error: (Each undeclared identifier is reported only once
app_conference.c:58: error: for each function it appears in.)
app_conference.c: At top level:
app_conference.c:67: warning: no previous prototype for ‘load_module’
app_conference.c: In function ‘load_module’:
app_conference.c:76: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type
app_conference.c: At top level:
app_conference.c:80: warning: no previous prototype for ‘description’
app_conference.c:85: warning: no previous prototype for ‘usecount’
app_conference.c: In function ‘usecount’:
app_conference.c:87: warning: implicit declaration of function ‘STANDARD_USECOUNT’
app_conference.c: At top level:
app_conference.c:92: warning: no previous prototype for ‘key’
app_conference.c: In function ‘app_conference_main’:
app_conference.c:106: warning: implicit declaration of function ‘LOCAL_USER_ADD’
app_conference.c:112: warning: implicit declaration of function ‘LOCAL_USER_REMOVE’
make: *** [app_conference.o] Error 1

Re: VICIdial without Meetme

PostPosted: Wed Jan 22, 2014 1:58 pm
by mav2287
I have been beating on this for a little while now and I have made it further than before. I used some information from this site http://edmundlong.com/edsBlog/installing-and-customising-app-conference-vicidial/. It seems that this version of app_conference was preferred by this user and got me a bit further down the road.

The number of errors has dropped and I am trying to figure out how to either get around them or fix them. This is the output now.

Code: Select all
bash-3.2# make clean
rm -f *.so *.o app_conference.o conference.o member.o frame.o cli.o libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o
bash-3.2# make
gcc -pipe -fPIC -Wall -Wmissing-prototypes -Wmissing-declarations -g   -D_REENTRANT -D_GNU_SOURCE  -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2   -c -o app_conference.o app_conference.c
app_conference.c: In function ‘load_module’:
app_conference.c:77: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type
app_conference.c: In function ‘usecount’:
app_conference.c:87: warning: implicit declaration of function ‘STANDARD_USECOUNT’
app_conference.c: At top level:
app_conference.c:100: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
make: *** [app_conference.o] Error 1
bash-3.2#


I am by no means an asterisk expert so I am trying to patch up and fix it so it will work with 1.8. If anyone has any information that may help me I would really appreciate it.

Re: VICIdial without Meetme

PostPosted: Fri May 09, 2014 12:46 pm
by williamconley
you should take this to a C forum (not related to asterisk or vicidial, it's purely a compiling issue ...).

Re: VICIdial without Meetme

PostPosted: Sat May 17, 2014 2:43 am
by junglejuniors
The only thing this box can't do is be the asterisk server, because dahdi won't install on OS X due to kernel issues. I found some documentation on using the conference app instead of meetme, but it seems outdated.


nanny jobs sydney

Re: VICIdial without Meetme

PostPosted: Sat May 17, 2014 6:03 am
by mflorell
You could always try using Asterisk 1.4.21.2 and the last zaptel version drivers. It will install on several Linux kernels that won't take DAHDI.

Re: VICIdial without Meetme

PostPosted: Tue May 20, 2014 1:17 pm
by mav2287
I did look at that option I also talked to the guy that ported the zaptel drivers to BSD as it is OS X's closest relative. He thought that they were still too far apart to be able to use it as a starting point. He said that the only way it would work is if the whole DAHDI framework was ported over. I am still using my OS X server right now that does everything except asterisk due to the conferencing issue. My work around was to have a linux server clustered to it that does asterisk.

I think that if conference app was patched up and installed I would be good to go and could finish the port. I will most likely have to come back to it when I have more time. One of the big issues I found is that the conference app was written for a different version of Asterisk so the hooks don't work and things would have to be updated in the code for it to compile. I have thought about funding the project and just paying to have it done, but I don't know who would be able to take something like that on and what the cost would be.

Re: VICIdial without Meetme

PostPosted: Tue Jun 10, 2014 2:31 am
by williamconley
So ... was your final question there related to porting dahdi (so this would be pure vicidial in the end) or the conference app (which would then require re-writing vicidial to also work with the conference app)?

Note that Vicidial still works with asterisk 1.2 (last time I checked), so an older version of zaptel would be viable if it was already ported. Don't know if anyone did. But in the end, for this to be a functional forward port, it really should be dahdi. I wouldn't expect it under 5k unless you go to india and the likely result there would be someone walking away with the money (after a low-ball bid) and never delivering.