BOUNTY-19

This commit is contained in:
Anthony Minessale 2010-06-04 19:37:04 -05:00
parent 0f133eae2d
commit 0152706fa9
2 changed files with 16 additions and 9 deletions

View File

@ -3546,6 +3546,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
char *host = NULL, *dest_to = NULL;
const char *hval = NULL;
char *not_const = NULL;
int cid_locked = 0;
*new_session = NULL;
@ -3614,7 +3615,8 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
}
tech_pvt->transport = gateway_ptr->register_transport;
tech_pvt->cid_type = gateway_ptr->cid_type;
cid_locked = 1;
/*
* Handle params, strip them off the destination and add them to the
@ -3852,7 +3854,9 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
switch_ivr_transfer_variable(session, nsession, "sip_video_fmtp");
switch_ivr_transfer_variable(session, nsession, "sip-force-contact");
switch_ivr_transfer_variable(session, nsession, "sip_sticky_contact");
switch_ivr_transfer_variable(session, nsession, "sip_cid_type");
if (!cid_locked) {
switch_ivr_transfer_variable(session, nsession, "sip_cid_type");
}
if (switch_core_session_compare(session, nsession)) {
/* It's another sofia channel! so lets cache what they use as a pt for telephone event so
@ -3863,7 +3867,9 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
switch_assert(ctech_pvt != NULL);
tech_pvt->bte = ctech_pvt->te;
tech_pvt->bcng_pt = ctech_pvt->cng_pt;
tech_pvt->cid_type = ctech_pvt->cid_type;
if (!cid_locked) {
tech_pvt->cid_type = ctech_pvt->cid_type;
}
if (sofia_test_flag(tech_pvt, TFLAG_ENABLE_SOA)) {
sofia_set_flag(ctech_pvt, TFLAG_ENABLE_SOA);

View File

@ -313,6 +313,12 @@ typedef enum {
REG_FLAG_MAX
} reg_flags_t;
typedef enum {
CID_TYPE_RPID,
CID_TYPE_PID,
CID_TYPE_NONE
} sofia_cid_type_t;
typedef enum {
REG_STATE_UNREGED,
REG_STATE_TRYING,
@ -416,6 +422,7 @@ struct sofia_gateway {
struct sofia_gateway *next;
sofia_gateway_subscription_t *subscriptions;
int distinct_to;
sofia_cid_type_t cid_type;
};
typedef enum {
@ -430,12 +437,6 @@ typedef enum {
MEDIA_OPT_BYPASS_AFTER_ATT_XFER = (1 << 1)
} sofia_media_options_t;
typedef enum {
CID_TYPE_RPID,
CID_TYPE_PID,
CID_TYPE_NONE
} sofia_cid_type_t;
struct sofia_profile {
int debug;
char *name;