[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