如何在Asterisk上录制好友电话

时间:2015-04-14 03:22:40

标签: asterisk sip voip

我在Ubuntu上安装了Asterisk

sip.conf

[10000001]
type=friend
host=dynamic
qualify=yes
secret=pw_random
context=demo

[10000002]
type=friend
host=dynamic
qualify=yes
secret=pw_random
context=demo

...

的extensions.conf

[demo]

exten => _1XXXXXXX,1,Dial(SIP/${EXTEN})
exten => _1XXXXXXX,2,Set(CALLFILENAME=${EXTEN:1})
exten => _1XXXXXXX,3,Monitor(wav,${CALLFILENAME},m)

然而,Asterisk运行Dial并卡住,用户可以在通话时互相通话,但Asterisk不会录制音频

运行asterisk -rvvv,我得

-- Executing [10000001@demo:1] Dial("SIP/10000002-00000045", "SIP/10000001") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/10000001
-- SIP/10000001-00000046 is ringing
-- SIP/10000001-00000046 answered SIP/10000002-00000045
-- Channel SIP/10000002-00000045 joined 'simple_bridge' basic-bridge <1b882cee-b0f0-473f-aafb-651169788159>
-- Channel SIP/10000001-00000046 joined 'simple_bridge' basic-bridge <1b882cee-b0f0-473f-aafb-651169788159>

有什么想法吗?谢谢!


更新

如果我将extensions.conf修改为

exten => _1XXXXXXX,1,Set(CALLFILENAME=${EXTEN})
exten => _1XXXXXXX,2,Monitor(wav,${CALLFILENAME},m)
exten => _1XXXXXXX,3,Dial(SIP/${EXTEN})

日志

-- Executing [10000001@demo:1] Set("SIP/10000002-00000000", "CALLFILENAME=10000001") in new stack
[Apr 14 00:56:50] WARNING[8649][C-00000000]: pbx.c:4910 pbx_extension_helper: No application 'Monitor' for extension (demo, 10000001, 2)
== Spawn extension (demo, 10000001, 2) exited non-zero on 'SIP/10000002-00000000'

错误pbx_extension_helper: No application 'Monitor' for extension很奇怪。

3 个答案:

答案 0 :(得分:1)

我修好了。

归因于pbx_extension_helper: No application 'Monitor' for extension

应用程序&#39;监控&#39;找不到,因为星号不会根据this link

加载res_monitor模块

因此,我在load=res_monitor.so

中添加了/etc/asterisk/modules.conf

该文件看起来像

[modules]
autoload=yes
load=pbx_config.so
load=chan_sip.so
load=chan_iax2.so
load=res_rtp_asterisk.so
load=app_hangup.so
load=app_dial.so
load=app_stack.so
load=res_monitor.so
load=pbx_functions.so
load=codec_ulaw.so
load=codec_gsm.so
load=bridge_simple.so

感谢Shu Zhang!

答案 1 :(得分:0)

您是否检查了目录/ var / lib / asterisk / sounds /,/ var / spool / asterisk / monitor,或者您可以按文件名找到您的ubuntu文件。由于详细没有显示任何警告,我相信你这样做是正确的,但录制的文件隐藏在某个地方。您可以修复文件名。

exten => _1XXXXXXX,3,Monitor(wav,fixedfilename)

在linux中找到这个文件名。

此外,你可以看看这个

[链接] http://www.voip-info.org/wiki/view/Asterisk+cmd+Record

答案 2 :(得分:0)

这是一个老字号,但是我遇到了同样的问题,您以正确的方式解决了这个问题,但是您只是在加载所有模块...而不是进行苗条的模块加载。

[modules]
autoload=yes <---- THIS
load=pbx_config.so <---- DISABLED THIS
load=chan_sip.so
load=chan_iax2.so

因此,要使其在苗条的模块加载配置中工作,必须加载

[modules]
autoload=no <---- THIS to NO

...

load=func_periodic_hook.so <---- THIS IS NEEDED IN ORDER TO LOAD MONITOR
load=load=res_monitor.so.so

...

您显然需要编解码器和格式,这是一个很好的苗条配置。

https://www.voip-info.org/asterisk-slimming/