PString token;\r
\r
FSManager & manager = opal_process->GetManager();\r
- if (!manager.SetUpCall("local:", outbound_profile->destination_number, token)) {\r
+ if (!manager.SetUpCall("local:", outbound_profile->destination_number, token, outbound_profile)) {\r
return SWITCH_CAUSE_INVALID_NUMBER_FORMAT;\r
}\r
\r
\r
*new_session = connection->GetSession();\r
\r
- connection->SetLocalPartyName(outbound_profile->caller_id_number);\r
- connection->SetDisplayName(outbound_profile->caller_id_name);\r
-\r
-\r
- switch_caller_profile_t *caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);\r
- switch_channel_t *channel = switch_core_session_get_channel(*new_session);\r
- char name[256] = "opal/";\r
- switch_copy_string(name + 5, outbound_profile->destination_number, sizeof(name)-5);\r
- switch_channel_set_name(channel, name);\r
- switch_channel_set_flag(channel, CF_OUTBOUND);\r
- switch_channel_set_caller_profile(channel, caller_profile);\r
- switch_channel_set_state(channel, CS_INIT);\r
-\r
return SWITCH_CAUSE_SUCCESS;\r
}\r
\r
\r
OpalLocalConnection *FSEndPoint::CreateConnection(OpalCall & call, void *userData)\r
{\r
- return new FSConnection(call, *this);\r
+ return new FSConnection(call, *this, (switch_caller_profile_t *)userData);\r
}\r
\r
\r
///////////////////////////////////////////////////////////////////////\r
\r
\r
-FSConnection::FSConnection(OpalCall & call, FSEndPoint & endpoint)\r
+FSConnection::FSConnection(OpalCall & call, FSEndPoint & endpoint, switch_caller_profile_t *outbound_profile)\r
: OpalLocalConnection(call, endpoint, NULL)\r
, m_endpoint(endpoint)\r
{\r
tech_pvt = (opal_private_t *) switch_core_session_alloc(m_fsSession, sizeof(*tech_pvt));\r
tech_pvt->me = this;\r
switch_core_session_set_private(m_fsSession, tech_pvt);\r
+\r
+ if (outbound_profile != NULL) {\r
+ SetLocalPartyName(outbound_profile->caller_id_number);\r
+ SetDisplayName(outbound_profile->caller_id_name);\r
+\r
+ switch_caller_profile_t *caller_profile = switch_caller_profile_clone(m_fsSession, outbound_profile);\r
+ switch_channel_set_caller_profile(m_fsChannel, caller_profile);\r
+\r
+ PString name = "opal/";\r
+ name += outbound_profile->destination_number;\r
+ switch_channel_set_name(m_fsChannel, name);\r
+\r
+ switch_channel_set_flag(m_fsChannel, CF_OUTBOUND);\r
+ switch_channel_set_state(m_fsChannel, CS_INIT);\r
+ }\r
}\r
\r
\r
#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;
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();