PBX呼叫进行另一个呼叫和间谍

时间:2013-06-23 16:52:48

标签: voip asterisk

当用户拨打我的pbx时,他需要输入另一个电话号码。然后星号应该拨打该号码,当该号码的所有者接听电话时,星号应播放声音。

拨打我的pbx的用户可以直接收听另一个电话,他会听到pbx播放的声音和用户的声音。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

最好(也是最简单)的方式 - 让用户参加会议并为同一会议创建2个电话。

一个人播放声音,一个人打电话给其他用户。

有关如何创建呼叫,请参阅:

http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out

Chanspy将创建类似于会议的结构,但它更简单的控制(静音/取消静音)会议。

答案 1 :(得分:1)

这是我的解决方案

* 我用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});
         }
}

* 如果您想允许私聊/谈话,请向ChanSpy添加w选项 我没试过这个耳语!
你需要添加catch =&gt; h无处不在,还有你需要的其他逻辑。
惠特,你会得到很好的时机。如果调用者决定挂断,唯一的问题是杀死Originate频道,我已经完成了在AMI上发送频道杀死AGI脚本发送频道名称... bla bla ... :)

希望有所帮助:)