以前的Kamailio一直沒有支持RTP媒體服務(wù)器內(nèi)置模塊,現(xiàn)在開發(fā)人員通過和oRTP集成,實(shí)現(xiàn)了媒體服務(wù)器模塊的功能。它可以通過外部的媒體服務(wù)器支持包(MediaStreamer2 和 oRTP),通過API調(diào)用的方式實(shí)現(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
媒體服務(wù)器模塊可以實(shí)現(xiàn)媒體文件播放,電話橋接,DTMF生成,編碼和重采樣等功能。具體的功能仍然在測(cè)試開發(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();
…
筆者認(rèn)為,Kamailio集成媒體服務(wù)器的功能以后,可能會(huì)成為繼Asterisk,F(xiàn)reeSWITCH媒體服務(wù)器以后另外一個(gè)比較強(qiáng)大的媒體信令軟交換平臺(tái),可能更加適合互聯(lián)網(wǎng)模式開發(fā)環(huán)境和靈活的語音應(yīng)用場(chǎng)景。
關(guān)于媒體模塊的使用,讀者可以訪問:
http://kamailio.org/docs/modules/devel/modules/rtp_media_server.html
關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的Asterisk行業(yè)分享
Asterisk freepbx 中文官方論壇:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技術(shù)文檔: www.freepbx.org.cn
融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
Asterisk/FreePBX中國合作伙伴,官方qq技術(shù)分享群(3000千人):589995817
Asterisk/FreePBX中國合作伙伴,官方qq技術(shù)分享群(3000千人):589995817