SIPヘッダの取得と送信|TropoスクリプティングAPI

   

SIPヘッダは非常に便利です。着信通話に豊富な情報を提供してくれるだけでなく、SIPヘッダを使えば、 メディア上の回答のオンオフをトグルで切り替えるなど、各種の設定を行うことができます(方法はこのページで後ほど説明します)。 全てのTropoの通話には、デフォルトでSIPヘッダがいくらか内蔵されています。 キャリアまたはSIPネットワークは、同様に多種多様の追加オプションを定義できます。 以下はサンプルです。

 
    x-sbc-from:"\"username\"<sip:00001234567@192.168.0.101>;tag=2a648c6e", x-sbc-allow:"BYE", x-sbc-user-agent:"sipgw-1.0", x-voxeo-sbc-name:"10.6.60.100", x-sbc-contact:"<sip:00001234567@192.168.0.101:16000>", Content-Length:"247", To:"<sip:9991234567@10.6.60.100:5060>", x-voxeo-sbc:"true", Contact:"<sip:username@10.6.60.100:5060>", x-voxeo-to:"<sip:990009369991234567@66.190.50.10:5060>", x-sbc-request-uri:"sip:990009369991234567@66.190.50.10:5060", x-sbc-call-id:"OWE0OGFkMTE1ZGY4NTI1MmUzMjc1M2Y3Y2ExMzc2YhG.", x-sid:"39f4688b8896f024f3a3aebd0cfb40b2", x-sbc-cseq:"1 INVITE", x-sbc-max-forwards:"70", x-voxeo-sbc-session-id:"39f4688b8896f024f3a3aebd0cfb40a3", CSeq:"2 INVITE", Via:"SIP/2.0/UDP 66.190.50.10:5060;received=10.6.60.100", x-sbc-record-route:"<sip:190.40.250.230:5061;r2=on;lr;ftag=2a648c6e>", Call-ID:"0-13c4-4b7d8ff7-1c3c1b82-7935-1d10b081", Content-Type:"application/sdp", x-sbc-to:"<sip:990009369991427645@60.190.50.10:5060>", From:"<sip:username@10.6.60.100:5060>;tag=0-13c4-4b7d8ff7-1c3c1b82-5c7b"
 

個々のSIPヘッダの取得

大抵、特別な理由が無い限りヘッダのリストを閲覧することは無いでしょう。 特定のSIPヘッダの情報を取得するために、getHeaderを使用します。 以下が、 getHeader を使用して取得できるヘッダの中身です。 最初の部分はヘッダの名前で、次の部分のコロン以下は返されるサンプルデータです。 ヘッダはすべて小文字にしてください。 x-Test-Header にアクセスしたい場合は、必ず x-test-header としましょう。  

以下は実際の getHeader の使用例です。

if (currentCall.getHeader("x-voxeo-to"))
    {
    log("Your header value is " +currentCall.getHeader("x-voxeo-to"));
    }
else
    {
    log("Your header value was not found");
    }
if ($currentCall.getHeader("x-test-header"))
    log "Your header value is " + $currentCall.getHeader("x-voxeo-to")
else
    log "Your header value was not found"
end
<?php
if ($currentCall->getHeader("x-voxeo-to")) {
    log("Your header value is " + $currentCall->getHeader("x-voxeo-to"));
    }
else {
    log("Your header value was not found");
    }
?>
if (currentCall.getHeader("x-voxeo-to")) :
    log("Your header value is " + currentCall.getHeader("x-voxeo-to"))
else :
    log("Your header value was not found")
end
if (currentCall.getHeader("x-voxeo-to"))
    {
    log("Your header value is " +currentCall.getHeader("x-voxeo-to"));
    }
else
    {
    log("Your header value was not found");
    }
 

SIPヘッダを送信

ヘッダ属性を使ってcalltransferメソッドを起動する場合、カスタムヘッダを追加することができます。 顧客のヘッダに「x-」が含まれてるを確認してください。例えば。 test-header はx-test-header になります。以前も話したように、 ヘッダは小文字にされます。あとで x-Test-Header に アクセスしたい場合は、 x-test-header と記入してください。以下が例になります。( answerOnMedia を有効にしています。)

transfer("sip:alice@example.com", {
    headers: {"x-voxeo-aom":"true"}
});
transfer 'sip:alice@example.com', { 
    :headers => {'x-voxeo-aom' => 'true'}
    } 
<?php   
transfer('sip:alice@example.com', array( 
    'headers' => array('x-voxeo-aom' => 'true'))
    ); 
?>
transfer("sip:alice@example.com", {
    "headers": {"x-voxeo-aom":"true"}
})
transfer("sip:alice@example.com", [
    headers: ["x-voxeo-aom":"true"]
])

勿論、ヘッダの中身をすべてカバーしているわけではありませんが、Tropoの使用を開始する上での最低限の説明を行いました。