Hi,
While tuning our SEMS-based application, we noticed that receiving RTP
significantly lowers the number of concurrent sessions with acceptable audio
quality (we achieved around 1800 concurrent sessions on a 4-core machine).
We don't need the incoming RTP-media, but we need the rfc2833 DTMFs. So I'm
thinking about doing something like this:
Index: AmRtpStream.cpp
===================================================================
--- AmRtpStream.cpp (revision 14928)
+++ AmRtpStream.cpp (working copy)
@@ -592,6 +594,14 @@
memcpy(&last_recv_time, &p->recv_time, sizeof(struct timeval));
if (!receiving && !passive) {
+ if (receive_dtmf && telephone_event_pt.get() && p->payload ==
telephone_event_pt->payload_type)
+ {
+ dtmf_payload_t* dpl = (dtmf_payload_t*)p->getData();
+
+ DBG("DTMF: event=%i; e=%i; r=%i; volume=%i; duration=%i; ts=%u\n",
+ dpl->event,dpl->e,dpl->r,dpl->volume,ntohs(dpl->duration),p->timestamp);
+ session->postDtmfEvent(new AmRtpDtmfEvent(dpl, getTelephoneEventRate(),
p->timestamp));
+ }
mem.freePacket(p);
return;
}
Is there any drawbacks to this approach?
TIA
br
Szo
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev