Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bringing fork up to date #5

Merged
merged 110 commits into from
Jan 19, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
148940f
Add custom audio filters
N4IRS Feb 16, 2017
42ba12c
Merge pull request #2 from AllStarLink/feature/custom_audio_filters
MrBungle42 Feb 16, 2017
7585bf3
Merge pull request #5 from tolitski/master
MrBungle42 Feb 20, 2017
0b5d37b
Merge pull request #9 from AllStarLink/bug/echolink
MrBungle42 Feb 20, 2017
5f55016
Update chan_echolink.c
N4IRS Feb 20, 2017
78af5d6
Merge pull request #10 from AllStarLink/feature/increase_call_list_size
MrBungle42 Feb 20, 2017
2acc008
Add support for CM119B
N4IRS Feb 21, 2017
bae086d
Add support for CM119B
N4IRS Feb 21, 2017
ad518a2
Merge pull request #12 from AllStarLink/feature/add_CM119B-support
MrBungle42 Feb 21, 2017
22b4c35
Replace references to usbradio with simpleusb
N4IRS Feb 21, 2017
36aec03
Merge pull request #13 from AllStarLink/bug/invalid_Channel_Driver_name
MrBungle42 Feb 21, 2017
d0fac69
Apply Debian patches and remove zaptel
N4IRS Mar 8, 2017
bb0e7a5
Update makefile
N4IRS Mar 8, 2017
6e712fe
Add support for systemd
Mar 8, 2017
60f6458
feature/add_allstar_node_enabled_sound
N4IRS Mar 9, 2017
edf0ea6
Use git describe --always to generate version number
Mar 13, 2017
9f9d455
Added comments
KG7QIN Mar 22, 2017
d7c0c01
CM108B USB sound card
lejudd Mar 22, 2017
5645bc2
CM108B USB sound card
lejudd Mar 22, 2017
537e2f5
Merge pull request #21 from KG7QIN/develop
MrBungle42 Mar 23, 2017
2dc010e
Remove no longer used RADIO_RTX RADIO_XPMRX
N4IRS Jul 12, 2017
b608f95
Update Makefile
N4IRS Jul 31, 2017
0a633df
Merge pull request #33 from AllStarLink/master
N4IRS Nov 19, 2017
2b41745
Merge pull request #34 from AllStarLink/develop
N4IRS Nov 19, 2017
11d07c7
Merge pull request #35 from AllStarLink/feature/update_build_enviorment
N4IRS Nov 19, 2017
166de8e
Extend sign-on
Nov 19, 2017
1d79ece
Merge pull request #22 from lejudd/master
N4IRS Nov 19, 2017
c015160
Update time calc
Nov 19, 2017
0557d29
Support GIT version
Nov 20, 2017
72830c1
Update copyright
N4IRS Dec 28, 2017
41a6221
Update systemd
Dec 28, 2017
add4bd6
More cleanup
Dec 28, 2017
b39ced3
Update
Dec 28, 2017
77e297a
Minor edit
Dec 28, 2017
0cfd74f
add rtpdir to compile defaults
N4IRS Dec 28, 2017
7c4933d
revert
N4IRS Dec 28, 2017
37baf45
Replace unneeded command
N4IRS Dec 28, 2017
76a437a
Update file versions
N4IRS Jan 12, 2018
cc73059
Enable MDC support
N4IRS Jan 12, 2018
82e69ec
Add rpt_events
N4IRS Jan 12, 2018
53c0ca8
Update README
N4IRS Feb 13, 2018
c5eba9f
move mdc1200 to seperate directories
N4IRS Feb 13, 2018
f4d8650
Add ilbc support
N4IRS Feb 13, 2018
7b60353
move pocsag to allstar directories
N4IRS Feb 13, 2018
c111776
Add ASL config files to samples
N4IRS Feb 14, 2018
5d37f40
Enable ilbc
N4IRS Feb 14, 2018
462fbb8
Update readme.MD
N4IRS Feb 15, 2018
456cd00
Create README.md
N4IRS Feb 15, 2018
6c5aadb
Update filedate stamps
N4IRS Feb 15, 2018
a22990d
Move ASL specific files into allstar
N4IRS Feb 15, 2018
8c198b4
Add support for g722
N4IRS Feb 15, 2018
7e170aa
Add changelog
N4IRS Feb 15, 2018
2b76a79
Make the example more clear.
N4IRS Feb 16, 2018
1e06c4c
oops
N4IRS Feb 16, 2018
c136f18
Add notes on enabling channel drivers in modules.conf
N4IRS Feb 16, 2018
1baf7af
Add comment
N4IRS Feb 16, 2018
167110d
Add support for ASL sound files in menuselect
N4IRS Feb 16, 2018
b2df703
Add install updatenodelist
N4IRS Feb 16, 2018
004b9dd
Cleanup extras
N4IRS Feb 17, 2018
0159909
Revert updatenodelist. Does not belong here.
N4IRS Mar 5, 2018
adaec47
Merge pull request #38 from N4IRS/Testing
allstarlink1 Mar 5, 2018
bfb9069
Initial commit
N4IRS Mar 23, 2018
a67a1a5
Add host information script.
N4IRS Mar 23, 2018
a5872ed
Update asl-menu
n8thn Mar 23, 2018
816832e
Update first-time
n8thn Mar 23, 2018
3f4f8b9
Update net-setup
n8thn Mar 23, 2018
9829115
Update node-setup
n8thn Mar 23, 2018
60d5961
Update restore-node
n8thn Mar 23, 2018
b48b072
Update save-node
n8thn Mar 23, 2018
4adfc7a
Update set-host
n8thn Mar 23, 2018
fb862c7
Update wifi-setup
n8thn Mar 23, 2018
c07eed0
Add repo
N4IRS Mar 23, 2018
b88a6b8
Add install kernel header before apt-get install
N4IRS Mar 23, 2018
3c3295a
Add more host testing
N4IRS Mar 23, 2018
ab10f04
add more tests
N4IRS Mar 23, 2018
3517639
revert local var
N4IRS Mar 23, 2018
4694860
export vars
N4IRS Mar 24, 2018
13a8c0d
write-node-callsigns ulaw
n8thn Mar 24, 2018
989278e
Update write-node-callsigns
n8thn Mar 24, 2018
806aa64
Update net-setup
n8thn Mar 24, 2018
537fa97
Update net-setup
n8thn Mar 24, 2018
83931cd
Add back ticks.
allstarlink1 Mar 26, 2018
59edb26
Update README.MD
allstarlink1 Mar 26, 2018
47bfb83
Add device tree info
N4IRS Mar 29, 2018
eb204eb
Test for devtree
N4IRS Apr 17, 2018
aea58d5
Update net-setup
n8thn Apr 21, 2018
5648d5a
Update set-host
n8thn Apr 21, 2018
c26ce81
Update asl-menu
n8thn May 4, 2018
1f3a378
Update net-setup
n8thn May 4, 2018
f37f135
Update asl-menu
n8thn Oct 16, 2018
c5b8abe
Update asl-menu
n8thn Oct 16, 2018
a2d06fa
Merge pull request #42 from AllStarLink/develop
allstarlink1 Nov 22, 2018
d9efad4
Updated
allstarlink1 Nov 22, 2018
7ef7bee
Delete README
allstarlink1 Nov 22, 2018
e2ca6bf
Created README.md
allstarlink1 Nov 22, 2018
651bffc
Update README.md
allstarlink1 Nov 22, 2018
9ab6b42
Update README.md
allstarlink1 Nov 22, 2018
94a17a1
Update README.md
allstarlink1 Nov 22, 2018
567a268
Update README.md
allstarlink1 Nov 22, 2018
d0e3fe5
Update README.md
allstarlink1 Nov 22, 2018
5ab991d
Update README.md
allstarlink1 Nov 22, 2018
464b79c
Update README.md
KG7QIN Nov 22, 2018
99bf31e
Update LICENSE
KG7QIN Nov 22, 2018
8b12c5a
add asl-reg utility
ajpaul25 Dec 4, 2019
ae91fab
random delay improvements
ajpaul25 Dec 4, 2019
5f66d40
parse json responses
ajpaul25 Dec 4, 2019
75be6cd
add sample config for asl-reg
ajpaul25 Dec 5, 2019
e40d384
remove register line from iax.conf
ajpaul25 Dec 5, 2019
ab90ef3
handle buffer overflows
ajpaul25 Dec 5, 2019
2a50097
Merge pull request #44 from ajpaul25/http_registration
tsawyer Dec 5, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add support for g722
  • Loading branch information
N4IRS committed Feb 15, 2018
commit 8c198b4ed7417e6386581f0f7224d2032501b10c
8 changes: 8 additions & 0 deletions asterisk/codecs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ endif

LIBILBC:=ilbc/libilbc.a
LIBLPC10:=lpc10/liblpc10.a
LIBG722:=g722/libg722.a

all: _all

Expand All @@ -45,6 +46,7 @@ clean::
$(MAKE) -C gsm clean
$(MAKE) -C lpc10 clean
$(MAKE) -C ilbc clean
$(MAKE) -C g722 clean

gsm/lib/libgsm.a:
@mkdir -p gsm/lib
Expand All @@ -59,3 +61,9 @@ $(LIBILBC):
@$(MAKE) -C ilbc all ASTCFLAGS="$(filter-out -Wmissing-prototypes -Wmissing-declarations,$(ASTCFLAGS)) $(AST_NO_STRICT_OVERFLOW)"

$(if $(filter codec_ilbc,$(EMBEDDED_MODS)),modules.link,codec_ilbc.so): $(LIBILBC)

$(LIBG722):
@$(MAKE) -C g722 all

$(if $(filter codec_g722,$(EMBEDDED_MODS)),modules.link,codec_g722.so): $(LIBG722)

227 changes: 227 additions & 0 deletions asterisk/codecs/codec_g722.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
/*
* Asterisk -- An open source telephony toolkit.
*
* Copyright (C) 1999 - 2008, Digium, Inc.
*
* Matthew Fredrickson <[email protected]>
* Russell Bryant <[email protected]>
*
* Special thanks to Steve Underwood for the implementation
* and for doing the 8khz<->g.722 direct translation code.
*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
* any of the maintainers of this project for assistance;
* the project provides a web site, mailing lists and IRC
* channels for your use.
*
* This program is free software, distributed under the terms of
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree.
*/

/*! \file
*
* \brief codec_g722.c - translate between signed linear and ITU G.722-64kbps
*
* \author Matthew Fredrickson <[email protected]>
* \author Russell Bryant <[email protected]>
*
* \arg http://soft-switch.org/downloads/non-gpl-bits.tgz
* \arg http://lists.digium.com/pipermail/asterisk-dev/2006-September/022866.html
*
* \ingroup codecs
*/

#include "asterisk.h"

ASTERISK_FILE_VERSION(__FILE__, "$Revision: 130129 $")

#include "asterisk/linkedlists.h"
#include "asterisk/module.h"
#include "asterisk/config.h"
#include "asterisk/options.h"
#include "asterisk/translate.h"
#include "asterisk/utils.h"

#define BUFFER_SAMPLES 8096 /* size for the translation buffers */
#define BUF_SHIFT 5

/* Sample frame data */

#include "g722/g722.h"
#include "slin_g722_ex.h"
#include "g722_slin_ex.h"

struct g722_encoder_pvt {
g722_encode_state_t g722;
};

struct g722_decoder_pvt {
g722_decode_state_t g722;
};

/*! \brief init a new instance of g722_encoder_pvt. */
static int lintog722_new(struct ast_trans_pvt *pvt)
{
struct g722_encoder_pvt *tmp = pvt->pvt;

g722_encode_init(&tmp->g722, 64000, G722_SAMPLE_RATE_8000);

return 0;
}

/*! \brief init a new instance of g722_encoder_pvt. */
static int g722tolin_new(struct ast_trans_pvt *pvt)
{
struct g722_decoder_pvt *tmp = pvt->pvt;

g722_decode_init(&tmp->g722, 64000, G722_SAMPLE_RATE_8000);

return 0;
}

static int g722tolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
{
struct g722_decoder_pvt *tmp = pvt->pvt;
int out_samples;
int in_samples;

/* g722_decode expects the samples to be in the invalid samples / 2 format */
in_samples = f->samples / 2;

out_samples = g722_decode(&tmp->g722, (int16_t *) &pvt->outbuf[pvt->samples * sizeof(int16_t)], (uint8_t *) f->data, in_samples);

pvt->samples += out_samples;

pvt->datalen += (out_samples * sizeof(int16_t));

return 0;
}

static int lintog722_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
{
struct g722_encoder_pvt *tmp = pvt->pvt;
int outlen;

outlen = g722_encode(&tmp->g722, (uint8_t *) (&pvt->outbuf[pvt->datalen]), (int16_t *) f->data, f->samples);


pvt->samples += outlen * 2;

pvt->datalen += outlen;

return 0;
}

static struct ast_frame *g722tolin_sample(void)
{
static struct ast_frame f = {
.frametype = AST_FRAME_VOICE,
.subclass = AST_FORMAT_G722,
.datalen = sizeof(g722_slin_ex),
.samples = sizeof(g722_slin_ex) * 2,
.src = __PRETTY_FUNCTION__,
.data = g722_slin_ex,
};

return &f;
}

static struct ast_frame *lintog722_sample (void)
{
static struct ast_frame f = {
.frametype = AST_FRAME_VOICE,
.subclass = AST_FORMAT_SLINEAR,
.datalen = sizeof(slin_g722_ex),
.samples = ARRAY_LEN(slin_g722_ex),
.src = __PRETTY_FUNCTION__,
.data = slin_g722_ex,
};

return &f;
}

static struct ast_translator g722tolin = {
.name = "g722tolin",
.srcfmt = AST_FORMAT_G722,
.dstfmt = AST_FORMAT_SLINEAR,
.newpvt = g722tolin_new, /* same for both directions */
.framein = g722tolin_framein,
.sample = g722tolin_sample,
.desc_size = sizeof(struct g722_decoder_pvt),
.buffer_samples = BUFFER_SAMPLES / sizeof(int16_t),
.buf_size = BUFFER_SAMPLES,
.plc_samples = 160,
};

static struct ast_translator lintog722 = {
.name = "lintog722",
.srcfmt = AST_FORMAT_SLINEAR,
.dstfmt = AST_FORMAT_G722,
.newpvt = lintog722_new, /* same for both directions */
.framein = lintog722_framein,
.sample = lintog722_sample,
.desc_size = sizeof(struct g722_encoder_pvt),
.buffer_samples = BUFFER_SAMPLES * 2,
.buf_size = BUFFER_SAMPLES,
};

static int parse_config(int reload)
{
struct ast_variable *var;
struct ast_config *cfg = ast_config_load("codecs.conf");

if (!cfg)
return 0;
for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
if (!strcasecmp(var->name, "genericplc")) {
g722tolin.useplc = ast_true(var->value) ? 1 : 0;
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "codec_g722: %susing generic PLC\n", g722tolin.useplc ? "" : "not ");
}
}
ast_config_destroy(cfg);
return 0;
}

static int reload(void)
{
if (parse_config(1))
return AST_MODULE_LOAD_DECLINE;
return AST_MODULE_LOAD_SUCCESS;
}

static int unload_module(void)
{
int res = 0;

res |= ast_unregister_translator(&g722tolin);
res |= ast_unregister_translator(&lintog722);

return res;
}

static int load_module(void)
{
int res = 0;

if (parse_config(0))
return AST_MODULE_LOAD_DECLINE;

res |= ast_register_translator(&g722tolin);
res |= ast_register_translator(&lintog722);

if (res) {
unload_module();
return AST_MODULE_LOAD_FAILURE;
}

return AST_MODULE_LOAD_SUCCESS;
}

AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "ITU G.722-64kbps G722 Transcoder",
.load = load_module,
.unload = unload_module,
.reload = reload,
);
18 changes: 18 additions & 0 deletions asterisk/codecs/g722/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
LIB=libg722.a
CFLAGS+=-fPIC

include $(ASTTOPDIR)/Makefile.rules

OBJS=g722_encode.o g722_decode.o

all: $(LIB)

$(LIB): $(OBJS)
$(ECHO_PREFIX) echo " [AR] $^ -> $@"
$(CMD_PREFIX) $(AR) cr $@ $^
$(CMD_PREFIX) $(RANLIB) $@

clean:
rm -f $(LIB) *.o
rm -f .*.o.d
rm -f *.s *.i
Loading