以前的Kamailio一直沒有支持RTP媒體服務器內置模塊,現(xiàn)在開發(fā)人員通過和oRTP集成,實現(xiàn)了媒體服務器模塊的功能。它可以通過外部的媒體服務器支持包(MediaStreamer2 和 oRTP),通過API調用的方式實現(xiàn)媒體功能。
oRTP支持的功能包括:
- Written in C, works under Linux (and probably any Unix) and Windows
- Implements the RFC 3550 (RTP) with an easy-to-use API with high- and low-level access
- Features an adaptive jitter algorithm that enables a receiver to adapt to the clock rate of the sender and network jitter
- Includes support for multiple profiles, (AV profile (RFC 3551) is the default)
- Supports part of RFC 4733 for telephone events over RTP
- Includes an API to parse and compose RTCP packets, including AVPF RTCP packets
- Features a congestion detector based on an analysis of the packet's arrival time
- Comprises a download capacity estimator that is usable for video streams
媒體服務器模塊可以實現(xiàn)媒體文件播放,電話橋接,DTMF生成,編碼和重采樣等功能。具體的功能仍然在測試開發(fā)階段,相信在不久的未來可以看到穩(wěn)定版本面世。
代碼示例:
…
event_route[rms:start] {
xnotice("[rms:start] play …\n");
rms_play("/tmp/reference_8000.wav", "rms:after_play");
}; // 播放語音文件
event_route[rms:after_play] {
xnotice("[rms:after_play] play done…\n");
rms_hangup();
};
route {
if (t_precheck_trans()) {
t_check_trans();
exit;
}
t_check_trans();
if (is_method("INVITE") && !has_totag()) {
if (!rms_answer("rms:start")) {
t_reply("503", "server error");
}
}
rms_sip_request();
…
筆者認為,Kamailio集成媒體服務器的功能以后,可能會成為繼Asterisk,F(xiàn)reeSWITCH媒體服務器以后另外一個比較強大的媒體信令軟交換平臺,可能更加適合互聯(lián)網模式開發(fā)環(huán)境和靈活的語音應用場景。
關于媒體模塊的使用,讀者可以訪問:
http://kamailio.org/docs/modules/devel/modules/rtp_media_server.html
關注微信公眾號:asterisk-cn,獲得有價值的Asterisk行業(yè)分享
Asterisk freepbx 中文官方論壇:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技術文檔: www.freepbx.org.cn
融合通信商業(yè)解決方案,協(xié)同解決方案首選產品:www.hiastar.com
Asterisk/FreePBX中國合作伙伴,官方qq技術分享群(3000千人):589995817
Asterisk/FreePBX中國合作伙伴,官方qq技術分享群(3000千人):589995817