2014-11-25 47 views
0

當SIP會議,你通常有兩種選擇:SIP組播會議

  • paging所有目標(平行),並把它們放在一個會議
    • 優點:你得到的回答確認
    • 缺點:您需要一個會議橋軟件去接收媒體,並單播到每一個目的地,這會導致同步問題和更高的負載
  • 使所有接收器默默地聽multicast地址和端口用於RTP音頻
    • 優點:媒體上的所有接收器同步
    • 缺點:你不知道誰是真正聽

並行調用所有目標並向它們發送他們需要監聽的多播地址和端口,有沒有一種方法讓所有的專業人員都可以使用?我們目前正在使用Asterisk,但我正在尋找FreeSWITCH或Kamailio/OpenSIPs,但運氣不多。

回答

0

有沒有這樣的實現。

但是,您可以通過修改客戶端軟件來接受具有組播流的特殊SIP消息。

之後,當您希望它監聽多播時,您已在dialplan中發送該流。

的Asterisk可以做組播沒有任何問題

你也可以做派多播地址在SIP INVITE。如果客戶端支持(大多數客戶端不支持),則可以在下行方向使用多播rtp並在其他方向使用。

+0

是否可以只發送SIP INVITE而不啓動流?現在我們通過讓接收方在沒有協商流的情況下確認INVITE而作弊,但我不知道這是否是正確的SIP實現。 – Metiu 2014-11-25 13:31:05

+0

您可以在第一次之後發送其他邀請(重新邀請)。當然,你可以通過SipAddHeader和程序軟電話在邀請中添加標題以忽略流。 – arheops 2014-11-25 17:35:02

0

如果您不使用轉碼,FreeSWITCH將能夠處理來自單個多核服務器的數百個同時會話。所以建立一些特殊的東西可能不值得。你還假設所有的監聽器都與SIP連接,並且在整個網絡中正確完成多播路由。在現實生活中,您可能會得到重複的RTP流,或者某些不接受組播流的用戶,等等。所以,恕我直言,這是不值得的,一個正常的多點SIP會議將會很好。

+0

謝謝。我們管理網絡和交換機,它都是本地的。多播的需要是因爲一些揚聲器在相同的空間輸出,所以任何延遲都會被注意到(我們遇到了Asterisk和MeetMe的這些問題)。 – Metiu 2014-11-25 13:29:17

+0

那麼,純粹是單向會議?只有一個端點始終在說話? – 2014-11-25 18:45:31

+0

是的,這是一個PA/Paging系統,但爲了安全起見,我們需要知道誰在說話 – Metiu 2014-11-27 15:14:10

0

也,在這裏看到:https://wiki.freeswitch.org/wiki/Mod_esf

如果你的端點可以靜態地聽一個特定組播組和端口,您可以輕鬆地向他們發送組播RTP流PCMU。

+0

據我所知,這需要客戶端處於我描述的第二個狀態:偵聽多播地址和端口並播放任何過來了。 Mod_esf只是將我的rtp單播流轉換爲多播流,而不向客戶端發送SIP INVITE。 – Metiu 2014-11-27 15:16:45

+0

我想你可以用kamailio解決它,它將發送所需的SIP INVITE,並且freeswitch將發送媒體。如果你有預算,我可以在一月份幫忙。 – 2014-11-27 19:16:16