2016-03-07 40 views
0

我在拨打Dial()时使用参数m(mymusic)可让来电者听到一些音乐,而不是无聊的铃声。不过,我想在一段时间后有一个不同的音乐文件。音乐改变的时间应该很容易改变(通过编辑一个变量),因此,创建一个音乐1秒,然后Y秒音乐2的音乐保持文件是没有选择的。在拨号()期间更改保留音乐

我想要的基本上是这样的,但没有第二个Dial(),也没有实际拨打${device}的第二个电话,因为这会为一个未接来电创建两个“未接来电”条目,并且会中断手机的铃声。

Set(time_until_new_music=20); 
Dial(${device},${time_until_new_music},gm(music1)); 
if ("${DIALSTATUS}" == "NOANSWER") { 
    Dial(${device},,m(music2)); 
} 

这是可能以某种方式?

回答

0

保持类可以有musiconhold类也无限制的任意长度

许多不同的声音文件的数量不受限制。因此,您可以根据需要创建自己的套件

但是,您无法通过拨号计划级别信息进行控制。您可以使用外部蒸汽应用程序并转发到您需要的应​​用程序参数。需要星号和linux的专家级别。

+0

据我所知,如果我在musiconhold.conf使用一个外部的“流”的应用程序,该应用程序将被一次(星号开始时)开始,流音乐,所以它不能控制流何时被实际使用以及何时切换到其他音乐。 我知道我可以有多个类,但我需要一段时间后切换到另一个类的方法。 –

+0

不可以。在musiconhold.conf中有选项,您可以为每个线程运行一个应用程序。你不需要开关类,你只需要为这个类改变记录而发挥作用的应用程序来引导你发送。 – arheops

0

像这样的东西可能工作:

s,1,Set(time_until_new_music=20) 
s,2,Dial(${device},${time_until_new_music},gm(music1)) 
s,3,GotoIf($[${DIALSTATUS}=NOANSWER]?s,4:s,5) 
s,4,Dial(${device},,m(music2)) 
s,5,Hangup()