2013-07-12 57 views
1

我使用SIP協議撥打到GSM號碼。SIP:檢測自動應答代理

當我無法達到被叫號碼時,我收到SIP錯誤響應。

但在兩種情況下SIP不響應任何ERROR碼。

  • 當被叫號碼無法到達時,一些GSM運營商提供自動遠程祕密服務。在這種情況下,通話似乎是確定的。

  • 當被叫號碼不再使用時,一些GSM運營商提供默認消息,並帶有一個自動代理,其中顯示「此號碼不再使用...等等」。而且,在這種情況下,沒有返回的SIP錯誤代碼。

不久,我有一個自動應答代理問題。 如何理解,在被叫號碼的另一端,有「真人 人」而不是「自動」應答機?

爲什麼GSM運營商不返回任何代碼,表明「這是一個自動應答機」或「該數字不再是avalibale」?爲什麼沒有SIP響應代碼呢?還是它有?

回答

3

對於語音信箱/遠程祕書/自動應答代理的第一種情況,您將無法使用SIP區分呼叫。相反,您必須有一些進程監聽媒體流(RTP),並嘗試檢測人與錄製之間的差異。一個例子是Asterisk's AMD application,但請注意這不是一門精確的科學。

對於第二種情況下,您收到一條關於未使用數字等的錄音留言,通常會將其作爲進度音提供,在SIP情況下,會將其作爲183 Session Progress響應接收。關鍵的一點是,您可以在通話沒有迴應(通過SIP 2xx響應)的情況下獲得通話音頻。這一點就是調用者不應該爲了聽錄製的錯誤消息而付費。許多PSTN運營商會以同樣的方式再次提供振鈴指示,如果您想要檢測正在進行的呼叫和收到呼叫之間的差異,則需要捕獲並處理不是RTP音頻流的錯誤指示一件容易的事情。