[Freeswitch-svn] [commit] r12129 - freeswitch/trunk/src/mod/endpoints/mod_opal
FreeSWITCH SVN
robertj at freeswitch.org
Tue Feb 17 17:04:28 PST 2009
Author: robertj
Date: Tue Feb 17 19:04:28 2009
New Revision: 12129
Log:
Moved some initialisation code when making an FS outgoing call so initialisation of some internal OpalConnection fields are done early enough.
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 Tue Feb 17 19:04:28 2009
@@ -138,7 +138,7 @@
PString token;
FSManager & manager = opal_process->GetManager();
- if (!manager.SetUpCall("local:", outbound_profile->destination_number, token)) {
+ if (!manager.SetUpCall("local:", outbound_profile->destination_number, token, outbound_profile)) {
return SWITCH_CAUSE_INVALID_NUMBER_FORMAT;
}
@@ -156,19 +156,6 @@
*new_session = connection->GetSession();
- connection->SetLocalPartyName(outbound_profile->caller_id_number);
- connection->SetDisplayName(outbound_profile->caller_id_name);
-
-
- switch_caller_profile_t *caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);
- switch_channel_t *channel = switch_core_session_get_channel(*new_session);
- char name[256] = "opal/";
- switch_copy_string(name + 5, outbound_profile->destination_number, sizeof(name)-5);
- switch_channel_set_name(channel, name);
- switch_channel_set_flag(channel, CF_OUTBOUND);
- switch_channel_set_caller_profile(channel, caller_profile);
- switch_channel_set_state(channel, CS_INIT);
-
return SWITCH_CAUSE_SUCCESS;
}
@@ -483,14 +470,14 @@
OpalLocalConnection *FSEndPoint::CreateConnection(OpalCall & call, void *userData)
{
- return new FSConnection(call, *this);
+ return new FSConnection(call, *this, (switch_caller_profile_t *)userData);
}
///////////////////////////////////////////////////////////////////////
-FSConnection::FSConnection(OpalCall & call, FSEndPoint & endpoint)
+FSConnection::FSConnection(OpalCall & call, FSEndPoint & endpoint, switch_caller_profile_t *outbound_profile)
: OpalLocalConnection(call, endpoint, NULL)
, m_endpoint(endpoint)
{
@@ -502,6 +489,21 @@
tech_pvt = (opal_private_t *) switch_core_session_alloc(m_fsSession, sizeof(*tech_pvt));
tech_pvt->me = this;
switch_core_session_set_private(m_fsSession, tech_pvt);
+
+ if (outbound_profile != NULL) {
+ SetLocalPartyName(outbound_profile->caller_id_number);
+ SetDisplayName(outbound_profile->caller_id_name);
+
+ switch_caller_profile_t *caller_profile = switch_caller_profile_clone(m_fsSession, outbound_profile);
+ switch_channel_set_caller_profile(m_fsChannel, caller_profile);
+
+ PString name = "opal/";
+ name += outbound_profile->destination_number;
+ switch_channel_set_name(m_fsChannel, name);
+
+ switch_channel_set_flag(m_fsChannel, CF_OUTBOUND);
+ switch_channel_set_state(m_fsChannel, CS_INIT);
+ }
}
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 Tue Feb 17 19:04:28 2009
@@ -26,20 +26,20 @@
#ifndef __FREESWITCH_MOD_OPAL__
#define __FREESWITCH_MOD_OPAL__
-#define HAVE_APR
-#include <switch.h>
-#include <switch_version.h>
-#define MODNAME "mod_opal"
-
-#undef strcasecmp
-#undef strncasecmp
-
#include <ptlib.h>
#include <opal/manager.h>
#include <opal/localep.h>
#include <h323/h323ep.h>
#include <iax2/iax2ep.h>
+#undef strcasecmp
+#undef strncasecmp
+
+#define HAVE_APR
+#include <switch.h>
+#include <switch_version.h>
+#define MODNAME "mod_opal"
+
class FSEndPoint;
class FSManager;
@@ -154,7 +154,7 @@
PCLASSINFO(FSConnection, OpalLocalConnection)
public:
- FSConnection(OpalCall & call, FSEndPoint & endpoint);
+ FSConnection(OpalCall & call, FSEndPoint & endpoint, switch_caller_profile_t *outbound_profile);
virtual bool OnIncoming();
virtual void OnReleased();
More information about the Freeswitch-svn
mailing list