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
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
}\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
}\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
};
+class FSCall : public OpalCall {
+ PCLASSINFO(FSCall, OpalCall);
+ public:
+ FSCall(OpalManager & manager);
+ virtual PBoolean OnSetUp(OpalConnection & connection);
+};
+
+
class FSManager : public OpalManager {
PCLASSINFO(FSManager, OpalManager);
return m_FreeSwitch;
}
+ virtual OpalCall * CreateCall(void * userData);
+
private:
switch_endpoint_interface_t *m_FreeSwitch;
list < FSListener > m_listeners;
};
+
class FSConnection;
typedef struct {
switch_timer_t read_timer;