丹东市网站建设_网站建设公司_Python_seo优化
2025/12/26 18:06:00 网站建设 项目流程

头图-84

 

概述

FreeSWITCH默认的G729模块是不带编解码功能的,只能转发媒体流。

需要G729模块增加一个源代码依赖包,来实现编解码功能。

首先需要修改makefile.am文件,实现代码的自动依赖编译。

环境

CentOS 7.9

FreeSWITCH 1.10.12

源代码结构

mod_g729模块源代码结构如下。

mod_g729

├── codec_g729.c

├── g729api.h

├── g729a_v11

│   ├── acelp_ca.c

│   ├── basic_op.c

│   ├── basic_op.h

│   ├── cod_ld8a.c

│   ├── cor_func.c

│   ├── de_acelp.c

│   ├── dec_gain.c

│   ├── dec_gain.h

│   ├── dec_lag3.c

│   ├── dec_ld8a.c

│   ├── dspfunc.c

│   ├── filter.c

│   ├── gainpred.c

│   ├── ld8a.h

│   ├── lpc.c

│   ├── lpcfunc.c

│   ├── lpcfunc.h

│   ├── lspdec.c

│   ├── lspdec.h

│   ├── lspgetq.c

│   ├── lspgetq.h

│   ├── Makefile

│   ├── oper_32b.c

│   ├── oper_32b.h

│   ├── pitch_a.c

│   ├── postfilt.c

│   ├── post_pro.c

│   ├── p_parity.c

│   ├── pred_lt3.c

│   ├── pre_proc.c

│   ├── pre_proc.h

│   ├── qua_gain.c

│   ├── qua_gain.h

│   ├── qua_lsp.c

│   ├── qua_lsp.h

│   ├── tab_ld8a.c

│   ├── tab_ld8a.h

│   ├── taming.c

│   ├── taming.h

│   ├── typedef.h

│   ├── util.c

│   └── util.h

├── g729.h

├── g729_slin_ex.h

├── libg729.c

├── Makefile.am

├── mod_g729.c

├── README.txt

└── slin_g729_ex.h

原makefile

fs默认makefile.am如下,不会自动编译子目录。

include $(top_srcdir)/build/modmake.rulesam

MODNAME=mod_g729

 

G729_DIR=$(switch_srcdir)/libs/libg729

G729_BUILDDIR=$(switch_builddir)/libs/libg729

G729_A=$(G729_BUILDDIR)/.libs/libg729.a

 

mod_LTLIBRARIES = mod_g729.la

mod_g729_la_SOURCES = mod_g729.c

mod_g729_la_CFLAGS = $(AM_CFLAGS)

mod_g729_la_LIBADD = $(switch_builddir)/libfreeswitch.la

mod_g729_la_LDFLAGS = -avoid-version -module -no-undefined -shared

 

if HAVE_G729

mod_g729_la_CFLAGS += -I$(G729_DIR)/src/include

mod_g729_la_LIBADD += $(G729_A)

else

mod_g729_la_CFLAGS += -DG729_PASSTHROUGH

endif

新makefile

修改后的makefile.am。

include $(top_srcdir)/build/modmake.rulesam

MODNAME=mod_g729

 

G729_DIR=./g729a_v11

G729_BUILDDIR=./g729a_v11

G729_A=$(G729_BUILDDIR)/libg729.a

 

mod_LTLIBRARIES = mod_g729.la

mod_g729_la_SOURCES = mod_g729.c

mod_g729_la_CFLAGS = $(AM_CFLAGS)

mod_g729_la_LIBADD = $(switch_builddir)/libfreeswitch.la

mod_g729_la_LDFLAGS = -avoid-version -module -no-undefined -shared

 

mod_g729_la_CFLAGS += -I$(G729_DIR)

mod_g729_la_LIBADD += $(G729_A)

 

BUILT_SOURCES = $(G729_A)

$(mod_LTLIBRARIES) : $(G729_A)

 

$(G729_A):

cd $(G729_DIR) && $(MAKE)

 

clean-local:

cd $(G729_DIR) && $(MAKE) clean

 

修改后,可以自动编译安全G729模块。

总结

未经过充分测试,不清楚对其他业务流程的影响。

 

空空如常

求真得真

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询