]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Added "jitter-size" to config file to set jitter buffer size.
authorRobert Joly <rjoly@nortel.com>
Mon, 2 Mar 2009 03:19:57 +0000 (03:19 +0000)
committerRobert Joly <rjoly@nortel.com>
Mon, 2 Mar 2009 03:19:57 +0000 (03:19 +0000)
Fixed transmission of Q.931 Calling-Party-Number, and DisplayName on H.323 Setup. Was previously being set on the wrong connection.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12347 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_opal/mod_opal.cpp
src/mod/endpoints/mod_opal/mod_opal.h

index 22959a9e7c4ec0fece40714260e8905ecee02c37..d43fb6f6aa43a989b1e7f7b7bcf55ca743b7d008 100644 (file)
@@ -323,8 +323,6 @@ bool FSManager::Initialise(switch_loadable_module_interface_t *iface)
     m_FreeSwitch->io_routines = &opalfs_io_routines;\r
     m_FreeSwitch->state_handler = &opalfs_event_handlers;\r
 \r
-    SetAudioJitterDelay(800, 3000); // should be config option\r
-\r
     silenceDetectParams.m_mode = OpalSilenceDetector::NoSilenceDetection;\r
 \r
     if (m_listeners.empty()) {\r
@@ -411,6 +409,15 @@ switch_status_t FSManager::ReadConfig(int reload)
                     set_global_dialplan(val);\r
                 } else if (!strcasecmp(var, "codec-prefs")) {\r
                     set_global_codec_string(val);\r
+                } else if (!strcasecmp(var, "jitter-size")) {\r
+                    char * next;\r
+                    unsigned minJitter = strtoul(val, &next, 10);\r
+                    if (minJitter >= 10) {\r
+                        unsigned maxJitter = minJitter;\r
+                        if (*next == ',')\r
+                          maxJitter = atoi(next+1);\r
+                        SetAudioJitterDelay(minJitter, maxJitter); // In milliseconds\r
+                    }\r
                 }\r
             }\r
         }\r
@@ -455,6 +462,12 @@ switch_status_t FSManager::ReadConfig(int reload)
 }\r
 \r
 \r
+OpalCall * FSManager::CreateCall(void * /*userData*/)\r
+{\r
+  return new FSCall(*this);\r
+}\r
+\r
+\r
 ///////////////////////////////////////////////////////////////////////\r
 \r
 FSEndPoint::FSEndPoint(FSManager & manager)\r
@@ -476,6 +489,32 @@ OpalLocalConnection *FSEndPoint::CreateConnection(OpalCall & call, void *userDat
 }\r
 \r
 \r
+///////////////////////////////////////////////////////////////////////\r
+\r
+FSCall::FSCall(OpalManager & manager)\r
+  : OpalCall(manager)\r
+{\r
+}\r
+\r
+\r
+PBoolean FSCall::OnSetUp(OpalConnection & connection)\r
+{\r
+  // Transfer FS caller_id_number & caller_id_name from the FSConnection\r
+  // to the protocol connectionm (e.g. H.323) so gets sent correctly\r
+  // in outgoing packets\r
+  PSafePtr<FSConnection> local = GetConnectionAs<FSConnection>();\r
+  if (local != NULL) {\r
+    PSafePtr<OpalConnection> proto = local->GetOtherPartyConnection();\r
+    if (proto != NULL) {\r
+      proto->SetLocalPartyName(local->GetLocalPartyName());\r
+      proto->SetDisplayName(local->GetDisplayName());\r
+    }\r
+  }\r
+\r
+  return OpalCall::OnSetUp(connection);\r
+}\r
+\r
+\r
 ///////////////////////////////////////////////////////////////////////\r
 \r
 \r
index badf2d6a5edf4b93226f5e6c65ee7deb0e5cfa50..462d407469d740ee9e12b1941375e45b056743ad 100644 (file)
@@ -82,6 +82,14 @@ struct FSListener {
 };
 
 
+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 @@ class FSManager : public OpalManager {
         return m_FreeSwitch;
     }
 
+    virtual OpalCall * CreateCall(void * userData);
+
   private:
     switch_endpoint_interface_t *m_FreeSwitch;
 
@@ -106,6 +116,7 @@ class FSManager : public OpalManager {
     list < FSListener > m_listeners;
 };
 
+
 class FSConnection;
 typedef struct {
     switch_timer_t read_timer;