2014-05-22 59 views
-2

我想配置的Asterisk播放聲音,如果是節假日或者如果它在工作時間不是。星號:假日播放MP3聲音來電

過了好久搜索她的是什麼我的extensions.conf來了:

exten => s,n,GotoIfTime(17:31-08:30|fri-mon|*|*?closed,1) 
exten => s,n,SetMusicOnHold(default) 



[closed] 
exten => 6000,1,Answer 
exten => 6000,2,MusicOnHold() 
exten => 6000,n,Hangup() 

我有在musiconhold.conf以下

[default] 
mode=files 
directory=/var/lib/asterisk/mohmp3 
random=yes 

我怎麼能做到這一點?

任何答覆可以對子級非常讚賞

回答

1

播放聲音,您可以使用Playback命令。

0

我在我們的辦公室試過這一點,如果我們得到上述工作時間或者週末到我們的辦公室號碼的任何電話,我們將宣佈你已經呼籲非工作時間和通話將被放置在隊列中的聲音。

通話將保持在隊列中的音樂調用者。如果有任何員工可用,他們將收到它。

呼叫者可在隊列中隨時掛斷電話。

這是我的配置和腳本,我在我們的辦公室中使用

extensions_customs.conf

[Landing] 
exten => 600,1,Answer() 
exten => 600,2,AGI(work-time.php) 
exten => 600,3,Hangup() 

queues_additional.conf

[30] 
announce-frequency=15 
announce-holdtime=no 
announce-position=yes 
autofill=no 
eventmemberstatus=no 
eventwhencalled=no 
joinempty=yes 
leavewhenempty=no 
maxlen=0 
music=New 
periodic-announce-frequency=0 
queue-callswaiting=queue-callswaiting 
queue-thankyou=queue-thankyou 
queue-thereare=queue-thereare 
queue-youarenext=queue-youarenext 
reportholdtime=no 
retry=1 
ringinuse=no 
servicelevel=60 
strategy=rrmemory 
timeout=15 
weight=0 
wrapuptime=0 
member=Local/[email protected]/n,0,Agent 3,SIP/50872 
member=Local/[email protected]/n,0,Agent 4,SIP/50873 
member=Local/[email protected]/n,0,Agent 5,SIP/50874 
member=Local/[email protected]/n,0,Agent 6,SIP/50875 
member=Local/[email protected]/n,0,Agent 7,SIP/50876 
member=Local/[email protected]/n,0,Agent 8,SIP/50877 
member=Local/[email protected]/n,0,Agent 9,SIP/50878 

工作time.php

#!/usr/bin/php-cgi -q 
<?PHP 
//Set time limit 
set_time_limit(50); 
//Include PHPAGI 
require('phpagi.php'); 
//Development version. Set to none on production. 
error_reporting(E_ALL); 
//Create a new object 
$agi = new AGI(); 
$agi->answer(); 
$tempDate = date('Y-m-d H:i');/**(Fetching data and time from running system)**/ 
         $hours = date('H:i'); 
         $day= date('D', strtotime($tempDate)); 
         if($hours>='09:00' && $hours<='17:30') 
         { 
          if($day=='Sat' || $day=='Sun') 
          { 
           $agi->exec('Playback','called-on-non-working'); 
           $agi->exec('Queue','30');/**In queue call will not be hanged until callee hangup**/ 
          } 
          else 
          { 
           $agi->exec('Playback','cce'); 
           $agi->exec('Queue','30'); 
          } 
         } 
         else 
         { 
          $agi->exec('Playback','called-on-non-working'); 
          $agi->exec('Queue','30'); 
         } 
?> 

如果我的辦公室固定電話被稱爲它將被轉移到分機600(着陸)那裏我有我的小腳本運行稱爲work-time.php

在我已經創建了一個隊列中的所有分機號碼之前(請參閱queues_additional.conf )

現在腳本將被執行,腳本檢查日期和時間是否是上述辦事處定時時間會起到一個文件,並將在隊列中的呼叫。由於沒有可用的呼叫將不會被回答。而在隊列衛生部將播放

+0

目前尚不清楚這是否是一個答案或沒有。請描述它是如何回答這個問題的。 – Synchro