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

Reply via email to