DSP

移植pjsip到嵌入式linux下多dsp端口问题

2019-07-13 18:00发布

想把pjsip移植到嵌入式linux下,该设备有多个fxs/fxo端口,每个端口对应一个dsp通道。pjsip目前只是对声卡类设备进行支持,实现的pjsua也仅仅对一个声卡设备支持,并不支持多端口。 在移植中,可以考虑如下方法: 1、把每个fxs/fxo端口对应的dsp通道适配成一个声卡设备,对pjsua改造,呼叫的时候,指定使用哪一个音频设备 方法好处就是完全支持pjmedia现有的媒体框架,基本不改动原有流程和代码。 pjsip库升级时,原有自己实现的设备不受影响   2、在pjsip代码中进行拦截,拦截收发报文时决定使用的那个通道 该方法修改了pjsip流程,在以后pjsip库需要升级时,需要同步修改   3、把整个dsp适配成一个声卡设备,扩展参数,来通知dsp使用哪个通道 该方法同样要修改pjsip代码,对以后升级不利     因此,最好的方法,就是把dsp的每个通道适配成一个音频设备,混音功能同样适配成mix设备。       后注:经过对Pjmedia代码仔细研究,发现其实把dsp适配成声卡设备非常简单。参照pjmdeia提供的一些声卡驱动,很容易就写出自己的声卡驱动来