[Freeswitch-svn] [commit] r12347 - freeswitch/trunk/src/mod/endpoints/mod_opal

FreeSWITCH SVN robertj at freeswitch.org
Sun Mar 1 19:19:57 PST 2009


Author: robertj
Date: Sun Mar  1 21:19:57 2009
New Revision: 12347

Log:
Added "jitter-size" to config file to set jitter buffer size.

Fixed transmission of Q.931 Calling-Party-Number, and DisplayName on H.323 Setup. Was previously being set on the wrong connection.

Modified:
   freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp
   freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h

Modified: freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp	Sun Mar  1 21:19:57 2009
@@ -323,8 +323,6 @@
     m_FreeSwitch->io_routines = &opalfs_io_routines;
     m_FreeSwitch->state_handler = &opalfs_event_handlers;
 
-    SetAudioJitterDelay(800, 3000); // should be config option
-
     silenceDetectParams.m_mode = OpalSilenceDetector::NoSilenceDetection;
 
     if (m_listeners.empty()) {
@@ -411,6 +409,15 @@
                     set_global_dialplan(val);
                 } else if (!strcasecmp(var, "codec-prefs")) {
                     set_global_codec_string(val);
+                } else if (!strcasecmp(var, "jitter-size")) {
+                    char * next;
+                    unsigned minJitter = strtoul(val, &next, 10);
+                    if (minJitter >= 10) {
+                        unsigned maxJitter = minJitter;
+                        if (*next == ',')
+                          maxJitter = atoi(next+1);
+                        SetAudioJitterDelay(minJitter, maxJitter); // In milliseconds
+                    }
                 }
             }
         }
@@ -455,6 +462,12 @@
 }
 
 
+OpalCall * FSManager::CreateCall(void * /*userData*/)
+{
+  return new FSCall(*this);
+}
+
+
 ///////////////////////////////////////////////////////////////////////
 
 FSEndPoint::FSEndPoint(FSManager & manager)
@@ -478,6 +491,32 @@
 
 ///////////////////////////////////////////////////////////////////////
 
+FSCall::FSCall(OpalManager & manager)
+  : OpalCall(manager)
+{
+}
+
+
+PBoolean FSCall::OnSetUp(OpalConnection & connection)
+{
+  // Transfer FS caller_id_number & caller_id_name from the FSConnection
+  // to the protocol connectionm (e.g. H.323) so gets sent correctly
+  // in outgoing packets
+  PSafePtr<FSConnection> local = GetConnectionAs<FSConnection>();
+  if (local != NULL) {
+    PSafePtr<OpalConnection> proto = local->GetOtherPartyConnection();
+    if (proto != NULL) {
+      proto->SetLocalPartyName(local->GetLocalPartyName());
+      proto->SetDisplayName(local->GetDisplayName());
+    }
+  }
+
+  return OpalCall::OnSetUp(connection);
+}
+
+
+///////////////////////////////////////////////////////////////////////
+
 
 FSConnection::FSConnection(OpalCall & call, FSEndPoint & endpoint, switch_caller_profile_t *outbound_profile)
   : OpalLocalConnection(call, endpoint, NULL)

Modified: freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h	Sun Mar  1 21:19:57 2009
@@ -82,6 +82,14 @@
 };
 
 
+class FSCall : public OpalCall {
+    PCLASSINFO(FSCall, OpalCall);
+  public:
+    FSCall(OpalManager & manager);
+    virtual PBoolean OnSetUp(OpalConnection & connection);
+};
+
+
 class FSManager : public OpalManager {
     PCLASSINFO(FSManager, OpalManager);
 
@@ -96,6 +104,8 @@
         return m_FreeSwitch;
     }
 
+    virtual OpalCall * CreateCall(void * userData);
+
   private:
     switch_endpoint_interface_t *m_FreeSwitch;
 
@@ -106,6 +116,7 @@
     list < FSListener > m_listeners;
 };
 
+
 class FSConnection;
 typedef struct {
     switch_timer_t read_timer;



More information about the Freeswitch-svn mailing list