<p>Twilio福音传道者</p>
<p>当您接到您的第一个电话(我们称之为客户)时,使用<code><Gather></code>向他们询问一些信息,或者播放一些您认为最有效的音乐:</p>
<pre><code><Response>
<Play loop="0">/my_music.mp3</Play>
</Response>
</code></pre>
<p>然后,使用restapi对我们称之为代理的东西发起3个出站调用。你需要注意<a href="http://www.twilio.com/help/faq/twilio-basics/what-are-the-limits-on-outbound-calls-and-sms-messages-per-second">Twilio's rate limit</a>。每一个调用都会有TwiML:</p>
^{pr2}$
<p>现在,一旦其中一个代理按下一个键(当然您可能希望添加拒绝等选项),它们将被重定向到<code>action</code>URL。在您的服务器上,您需要用以下方式响应第一个代理:</p>
<pre><code><Response>
<Dial>
<Conference>some-unique-room-name</Conference>
</Dial>
</Response>
</code></pre>
<p>然后,您需要向restapi和<a href="http://www.twilio.com/docs/api/rest/change-call-state">change the customers inbound call</a>(例如,他仍在听音乐)发出请求,并使用上面的TwiML将客户与代理放在同一个会议室中。在</p>
<p>当任何后续代理决定接受该调用时,它们将被重定向到<code>/accepted</code>URL,但由于您的应用程序已经知道客户已连接到另一个代理,所以您只需向他们播放一条消息,说明该呼叫已得到响应。在</p>
<p>你可以用一些方法来扩展。例如,使用<code><Queue></code>TwiML动词可以更轻松地处理多个传入呼叫。在</p>
<p>您可能还需要使用带有<code><Number></code>动词的<code>url</code>属性的“whisper”来查看。这允许您添加一个只在代理端执行的额外TwiML文档。尽管您使用多个<code><Number></code>动词,但只有第一个回答的代理才会听到耳语。在</p>
<pre><code><Response>
<Dial>
<Number url="/whisper">+AGENTNUMBER</Number>
</Dial>
</Response>
</code></pre>
<p><code>/whisper</code>TwiML可以包含一个<code><Gather></code>,请求代理接受该调用。一旦呼叫到达TwimL文档的末尾,它将它们连接到呼叫的客户。否则,您可以使用<code><Hangup></code>拒绝。在</p>
<p>在所提供的链接上有很多Python代码。恐怕我不是一个很好的Python程序员,但我猜TwiML有帮助吗?在</p>
<p>祝你好运!在</p>