我有两个星号服务器,第一个是呼叫发起方,第二个是呼叫接收方。我想要的是第一个发起的呼叫在第二个中自动记录。
第一台服务器的配置如下:
sip.conf
[general]
register => AS2AS1:welcome@192.168.1.67
[AS1AS2]
type=friend
disallow=all
allow=iLBC
secret=welcome
host=dynamic
context=startcall
username=AS2AS1
dtmfmode=rfc2833
qualify=1000
extensions.conf
[startcall]
exten => 333,1,Playback(sa11)
第二服务器的配置如下
sip.conf
[general]
register => AS1AS2:welcome@192.168.1.66
[AS2AS1]
disallow=all
allow=iLBC
type=friend
secret=welcome
host=dynamic
username=AS1AS2
context=recordcall
dtmfmode=rfc2833
qualify=1000
extensions.conf
[recordcall]
exten => 333,1,Answer()
exten => 333,2,Set(curtime=$(STRFTIME(,,%s)})
exten => 333,3,Record(/home/basma/recorded/${curtime}.wav)
exten => 333,4,Hangup()
呼叫文件(在呼叫发起服务器中):
Channel:SIP/AS1AS2/333
Context:startcall
Extension:333
但当通话完成后,我在录制的目录中什么也找不到!
可以是任何东西,包括"星号根本无法调用"
要查看更多信息,请使用连接到星号
asterisk -r
core set verbose 10
并在调用时查看输出。
但请注意,您调用的文件不正确。必须优先。
http://www.voip-info.org/wiki/view/Asterisk+自动拨号+输出
尝试在Record()
之后添加任何操作,例如Playback(hello-world)
或Wait(10)
[recordcall]
exten => 333,1,Answer()
exten => 333,n,Set(curtime=${STRFTIME(${EPOCH},,%s)})
exten => 333,n,Record(/home/basma/recorded/${curtime}.wav)
exten => 333,n,Playback(hello-world)
exten => 333,n,Hangup()
您从Record应用程序听到的beep
,但在此之后会调用Hangup
并结束调用。
还要确保星号或运行*
的用户具有对/home/basma/recorded/
的写入权限
检查哪个用户使用运行*
ps aux | grep asterisk
然后
chown -R <user>:<user> /home/basma/recorded/
我终于解决了这个问题,在启动器和接收器服务器的extensions.conf中进行了一些修改后,生成了记录的文件。
在启动器服务器extensions.conf中,如下所示:
[startcall]
exten => 333,1,Wait(1)
exten => 333,n,Playback(sa11)
exten => 333,n,WaitExten(10)
在接收器服务器extensions.conf中是:
[recordcall]
exten => 333,1,Answer()
exten => 333,n,Set(curtime=${STRFTIME(,,%s)})
exten => 333,n,Record(/home/basma/recorded/${curtime}.wav,0,5)
exten => 333,n,Wait(3)
exten => 333,n, Hangup()