2013-06-26 37 views
0

我正在使用twilio製作調用篩選應用程序,我使用url屬性給出了被調用者選項,但我無法返回調用者觀點看法。我使用twilio上的url屬性後需要回到調用者的角度

<?php 
    header("content-type: text/xml"); 
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
?> 
<Response> 
    <Say>please hold while we locate mike</Say> 
     <Dial> 
      <Number url="hello-monkey-name.php">+12154678556</Number> 
      <Number url="hello-monkey-name.php">+12123645995</Number> 
     </Dial> 
</Response> 

url屬性將被調用者發送到「hello-monkey-name.php」,它給了他/她三個選項。

<?php 
    session_start(); 
$var_value = $_SESSION['RecordingUrl']; 
    // now greet the caller 
    header("content-type: text/xml"); 
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 

?> 
<Response> 
    // <Play><?php echo $_REQUEST['RecordingUrl']; ?></Play> 
    <Say> is calling <Say/> 
    <Gather numDigits="1" action="hello-monkey-called.php" method="POST"> 
     <Say>To accept the call, press 1. To send call to voicemail, press 2. to hangup,   press 3</Say> 
    </Gather> 
</Response> 

一旦被叫按一個按鈕其發送到「HELLO-猴子called.php」,其中它收集數字,並決定什麼需要做的,我可以讓它來完成呼叫和掛斷呼叫,但是當我無法將其轉接到語音信箱SIP地址時。任何想法,我可以讓它回到調用者的角度繼承人編寫該部分,如果它有幫助。

<?php 

    // if the caller pressed anything but 1 or 2 send them back 
    if($_REQUEST['Digits'] != '1' and $_REQUEST['Digits'] != '2' and $_REQUEST['Digits']  != '3') { 
    header("Location: hello-monkey-name.php"); 
    die; 
} 

header("content-type: text/xml"); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
> 
<Response> 
<?php if ($_REQUEST['Digits'] == '1') { ?> 
<?php } elseif ($_REQUEST['Digits'] == '2') { ?> 
    <Dial> 
     <Sip> [email protected] <Sip/> 
    <Dial/> 
<?php } elseif ($_REQUEST['Digits'] == '3') { ?> 
     <Hangup/> 
<?php } ?> 
</Response> 

回答

0

Twilio evangelist here。

一些想法開始。首先,與往常一樣,您可以在Twilio儀表板中檢查Debugger,以確保在那裏沒有任何與此相關的內容。

其次,您的SIP服務器是否要求您通過身份驗證才能連接?如果是這樣,您可以使用<Sip>名詞上的用戶名和密碼屬性指定您的憑證。

最後,您可能能夠通過連接<撥號動詞來分辨action parameter發生了什麼。當Twilio嘗試撥打Sip地址時,我們會發送一些額外的SIP specific parameters到撥號動詞指定的URL。其中之一是撥打DialSipResponseCode,這是我們發送SIP INVITE後返回的響應代碼。

希望有所幫助。

德文

+0

謝謝。我仍然有問題。讓我重新說一句 - CALLER呼叫twilio號碼。 Twilio腳本調用CALLEE。 CALLEE點擊「2」將呼叫轉接至語音信箱。如果我發出「掛斷」命令,它會掛斷呼叫的兩端。我真的需要一個命令來掛斷CALLEE上的呼叫,並用新的DIAL命令重新將呼叫者指向語音郵件。任何幫助,將不勝感激。謝謝。 –

+0

所以我認爲這有點複雜。我認爲在這種情況下,您最終必須做的是利用來實質上停放CALLER,同時通過使用REST API啓動出站呼叫來響鈴CALLEE。一旦CALLEE做出決定,您可以將它們轉儲到同一個會議中,讓CALLER和CALLEE相互通話,或者讓CALLEE掛斷,然後將CALLER重定向到SIP端點。 –

+0

如果你走這條路線,你必須在最初連接時(在數據庫或其他類型的商店中)保存CALLERs callsid,這樣如果你最終需要將呼叫重定向到SIP端點。希望有所幫助。 –

相關問題