2015-04-24 53 views
-1

我有一個SIP門系統。我已經開發了註冊和撥打電話的代碼。SIP在會話進程中發送數據

一旦我創建了一個INVITE,我立即得到一個會話進度,現在我需要在這個會話中發送一個數字字符代碼。

我正在使用Jain SIP進行開發。

+0

您如何發送數字代碼?它是*帶內*(例如通過RTP事件或純DTMF)或*帶外*(例如使用INFO方法) – jsantander

+0

我想我可以使用INFO方法,並且我需要將代碼作爲DTMF信號發送。我必須將我的字符碼轉換爲DTMF信號併發送出去嗎? – gourig

+0

好吧,這實際上取決於對方的期望或你能夠談判的內容。 – jsantander

回答

1

send DTMF/Key presses也有一些不同的選擇: 另一端可能希望電話事件RFC 4733或者是在發送DTMF(不太可能爲壓縮聲音多次使DTMF識別困難)。現在的事情是,傳統上,儘管可以立即接收通信(例如,聽鈴音或不收費的通知),但雙向通信僅在答案(其在SIP轉換爲200OK之後)之後纔可能爲

就你而言,你有可能使用另一端,你的終端或提供商可能會強制執行此限制。

如果沒有,那麼你可以使用早期媒體(你可以看看RFC 3960全面討論。

基本上接收端可以發送上18倍的臨時響應(例如183個呼叫進程)的SDP應答,具有交換的,主叫和被叫可以發起通信(它可能是雙向的)

有兩種可能性:

  1. 主叫和被叫支持臨時可靠應答(見RFC 3262。在這種情況下,談判通過PRACK完成。使用UPDATE請求,可以在 200 OK之前修改協商的媒體。

  2. 主叫或被叫不支持臨時可靠響應。 SDP答案仍然可以包含在18x中,但在答案之前它不能更改,並且200 OK必須攜帶完全相同的SDP答案。