2016-03-07 37 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()