當用戶打電話給我的PBX時,他需要輸入另一個電話號碼。然後星號應該撥打該號碼,當該號碼的擁有者接聽電話時,星號應該發出聲音。PBX呼叫撥打另一個電話和間諜
向我的pbx撥打電話的用戶可以聽到另一個電話的現場直播,他會聽到pbx播放的聲音和用戶的聲音。
這樣做的最好方法是什麼?
當用戶打電話給我的PBX時,他需要輸入另一個電話號碼。然後星號應該撥打該號碼,當該號碼的擁有者接聽電話時,星號應該發出聲音。PBX呼叫撥打另一個電話和間諜
向我的pbx撥打電話的用戶可以聽到另一個電話的現場直播,他會聽到pbx播放的聲音和用戶的聲音。
這樣做的最好方法是什麼?
這裏是我的解決方案
* 我寫在AEL,更容易理解
首先,我假設你得到了被叫號碼和文件要發揮:
context Start
{
catch s {
Wait(1);
...
__NumberToDial=<Number that caller picked>;
FileName=<File you want to play>;
...
// I used SHARED variables to pass all the necessary data to sub channel
SHARED(FileName)=${FileName};
__Channel="${CHANNEL(name)}";
Dial(Local/${CALLERID(num)}@Originate/n,,g);
}
}
context Originate {
_X. => {
Originate(SIP/<YourDialOutTrunk>/${NumberToDial},exten,Play,${Channel},1);
if (${ORIGINATE_STATUS}!=SUCCESS)
{
//do stuff if not connected...
}
else
ChanSpy(,qsSg(${Channel}));
}
}
context Play {
_X. => {
Channel="${CUT(EXTEN,?,1)}";
Set(SPYGROUP=${Channel});
FileName=${SHARED(FileName,${Channel})};
Playback(${FileName});
}
}
* 如果您想允許耳語/說話,可以選擇Chantil的w
我沒有測試這個耳語!
您需要隨處添加catch => h和其他所需的邏輯。
惠特這你會得到良好的時機。唯一的問題是如果主叫方決定掛斷,我已經通過AGI腳本向AMI發送頻道消息,發送它的頻道名稱... bla bla ... :)來終止Originate頻道。:)
希望它有助於:)
最好的(也是最簡單的)方式 - 將用戶加入會議,並創建另外兩個呼叫到同一個會議。
一個播放聲音,一個呼叫給其他用戶。
對於如何創建調用看到這一點:
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out
Chanspy將創建類似的結構發佈會,但它更簡單的控制(靜音/取消靜音)會議。
我也嘗試過這個選項,但主要問題是計時,讓文件開始播放時,被叫方選擇電話 – mirkobrankovic
爲撥號應答宏使用。所以你創建呼叫第二個用戶,設置宏,在宏開始新的呼叫播放消息。如果這太複雜 - 聘請專家(或只是程序員) – arheops
我已經完成了它,和Originate()非常類似的事情。我現在無法在詳細解釋中解釋,也許在幾天內,但請閱讀[Originate](http://www.voip-info.org/wiki/view/Asterisk+cmd+Originate) – mirkobrankovic
謝謝。我現在使用帶有選項G的撥號應用程序和呼叫中的間諜。它有效,但不是100%。我想看看你的方式。 –