diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c index c10369635bcc91e739496bbaee7afe13014822f1..92772e60b6ddd5dd1dea43a83f7f7718c2ef25e3 100644 --- a/channels/chan_pjsip.c +++ b/channels/chan_pjsip.c @@ -2173,9 +2173,10 @@ static void sip_build_replaces_param(const struct ast_channel *ast, const char * // Create URI encoded Replaces parameter // ?Replaces=<callid>;to-tag=<totag>;from-tag=<fromtag> - snprintf(replaces, len - 1, "%s;to-tag=%s;from-tag=%s", callid, totag, fromtag); + // snprintf(replaces, len - 1, "%s;to-tag=%s;from-tag=%s", callid, totag, fromtag); + snprintf(replaces, len - 1, "%s", callid); ast_uri_encode(replaces, tmp, sizeof(tmp), ast_uri_http); - snprintf(replaces, len - 1, "?Replaces=%s", tmp); + snprintf(replaces, len - 1, "?Require=replaces&Replaces=%s", tmp); } else { ast_log(LOG_NOTICE, "Asked to replace a call on channel type %s\n", type); @@ -2247,7 +2248,8 @@ static void transfer_refer(struct ast_sip_session *session, const char *target) goto failure; } - snprintf(referto, sizeof(referto), "<%s:%s@%s%s>", method, target, session->endpoint->fromdomain, replaces); + //snprintf(referto, sizeof(referto), "<%s:%s@%s%s>", method, target, session->endpoint->fromdomain, replaces); + snprintf(referto, sizeof(referto), "<%s:%s@%s;user=phone%s>", method, target, session->endpoint->fromdomain, replaces); ast_debug(1, "Refer-To: %s\n", referto); if (pjsip_xfer_initiate(sub, pj_cstr(&tmp, referto), &packet) != PJ_SUCCESS) {