tech_pvt->route_uri = switch_core_session_strdup(tech_pvt->session, route_uri);
}
- nua_invite(tech_pvt->nh,
- NUTAG_AUTOANSWER(0),
- NUTAG_SESSION_TIMER(session_timeout),
- TAG_IF(tech_pvt->redirected, NUTAG_URL(tech_pvt->redirected)),
- TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
- TAG_IF(!zstr(tech_pvt->rpid), SIPTAG_REMOTE_PARTY_ID_STR(tech_pvt->rpid)),
- TAG_IF(!zstr(tech_pvt->preferred_id), SIPTAG_P_PREFERRED_IDENTITY_STR(tech_pvt->preferred_id)),
- TAG_IF(!zstr(tech_pvt->asserted_id), SIPTAG_P_ASSERTED_IDENTITY_STR(tech_pvt->asserted_id)),
- TAG_IF(!zstr(tech_pvt->privacy), SIPTAG_PRIVACY_STR(tech_pvt->privacy)),
- TAG_IF(!zstr(alert_info), SIPTAG_HEADER_STR(alert_info)),
- TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)),
- TAG_IF(sofia_test_pflag(tech_pvt->profile, PFLAG_PASS_CALLEE_ID), SIPTAG_HEADER_STR("X-FS-Support: "FREESWITCH_SUPPORT)),
- TAG_IF(!zstr(max_forwards), SIPTAG_MAX_FORWARDS_STR(max_forwards)),
- TAG_IF(!zstr(route_uri), NUTAG_PROXY(route_uri)),
- TAG_IF(!zstr(route), SIPTAG_ROUTE_STR(route)),
- TAG_IF(tech_pvt->profile->minimum_session_expires, NUTAG_MIN_SE(tech_pvt->profile->minimum_session_expires)),
- SOATAG_ADDRESS(tech_pvt->adv_sdp_audio_ip),
- SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
- SOATAG_REUSE_REJECTED(1),
- SOATAG_ORDERED_USER(1),
- SOATAG_RTP_SORT(SOA_RTP_SORT_REMOTE),
- SOATAG_RTP_SELECT(SOA_RTP_SELECT_ALL), TAG_IF(rep, SIPTAG_REPLACES_STR(rep)), SOATAG_HOLD(holdstr), TAG_END());
+ if (sofia_use_soa(tech_pvt)) {
+ nua_invite(tech_pvt->nh,
+ NUTAG_AUTOANSWER(0),
+ NUTAG_SESSION_TIMER(session_timeout),
+ TAG_IF(tech_pvt->redirected, NUTAG_URL(tech_pvt->redirected)),
+ TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
+ TAG_IF(!zstr(tech_pvt->rpid), SIPTAG_REMOTE_PARTY_ID_STR(tech_pvt->rpid)),
+ TAG_IF(!zstr(tech_pvt->preferred_id), SIPTAG_P_PREFERRED_IDENTITY_STR(tech_pvt->preferred_id)),
+ TAG_IF(!zstr(tech_pvt->asserted_id), SIPTAG_P_ASSERTED_IDENTITY_STR(tech_pvt->asserted_id)),
+ TAG_IF(!zstr(tech_pvt->privacy), SIPTAG_PRIVACY_STR(tech_pvt->privacy)),
+ TAG_IF(!zstr(alert_info), SIPTAG_HEADER_STR(alert_info)),
+ TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)),
+ TAG_IF(sofia_test_pflag(tech_pvt->profile, PFLAG_PASS_CALLEE_ID), SIPTAG_HEADER_STR("X-FS-Support: "FREESWITCH_SUPPORT)),
+ TAG_IF(!zstr(max_forwards), SIPTAG_MAX_FORWARDS_STR(max_forwards)),
+ TAG_IF(!zstr(route_uri), NUTAG_PROXY(route_uri)),
+ TAG_IF(!zstr(route), SIPTAG_ROUTE_STR(route)),
+ TAG_IF(tech_pvt->profile->minimum_session_expires, NUTAG_MIN_SE(tech_pvt->profile->minimum_session_expires)),
+ SOATAG_ADDRESS(tech_pvt->adv_sdp_audio_ip),
+ SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
+ SOATAG_REUSE_REJECTED(1),
+ SOATAG_ORDERED_USER(1),
+ SOATAG_RTP_SORT(SOA_RTP_SORT_REMOTE),
+ SOATAG_RTP_SELECT(SOA_RTP_SELECT_ALL), TAG_IF(rep, SIPTAG_REPLACES_STR(rep)), SOATAG_HOLD(holdstr), TAG_END());
+ } else {
+ nua_invite(tech_pvt->nh,
+ NUTAG_AUTOANSWER(0),
+ NUTAG_SESSION_TIMER(session_timeout),
+ TAG_IF(tech_pvt->redirected, NUTAG_URL(tech_pvt->redirected)),
+ TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
+ TAG_IF(!zstr(tech_pvt->rpid), SIPTAG_REMOTE_PARTY_ID_STR(tech_pvt->rpid)),
+ TAG_IF(!zstr(tech_pvt->preferred_id), SIPTAG_P_PREFERRED_IDENTITY_STR(tech_pvt->preferred_id)),
+ TAG_IF(!zstr(tech_pvt->asserted_id), SIPTAG_P_ASSERTED_IDENTITY_STR(tech_pvt->asserted_id)),
+ TAG_IF(!zstr(tech_pvt->privacy), SIPTAG_PRIVACY_STR(tech_pvt->privacy)),
+ TAG_IF(!zstr(alert_info), SIPTAG_HEADER_STR(alert_info)),
+ TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)),
+ TAG_IF(sofia_test_pflag(tech_pvt->profile, PFLAG_PASS_CALLEE_ID), SIPTAG_HEADER_STR("X-FS-Support: "FREESWITCH_SUPPORT)),
+ TAG_IF(!zstr(max_forwards), SIPTAG_MAX_FORWARDS_STR(max_forwards)),
+ TAG_IF(!zstr(route_uri), NUTAG_PROXY(route_uri)),
+ TAG_IF(!zstr(route), SIPTAG_ROUTE_STR(route)),
+ TAG_IF(tech_pvt->profile->minimum_session_expires, NUTAG_MIN_SE(tech_pvt->profile->minimum_session_expires)),
+ NUTAG_MEDIA_ENABLE(0),
+ SIPTAG_CONTENT_TYPE_STR("application/sdp"),
+ SIPTAG_PAYLOAD_STR(tech_pvt->local_sdp_str),
+ TAG_IF(rep, SIPTAG_REPLACES_STR(rep)),
+ TAG_END());
+ }
sofia_glue_free_destination(dst);
switch_safe_free(extra_headers);