Changeset 4347 for pjproject/trunk/pjsip/src/pjsip-ua/sip_inv.c
- Timestamp:
- Feb 13, 2013 10:19:25 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip-ua/sip_inv.c
r4323 r4347 2330 2330 switch (op) { 2331 2331 case PJSIP_REDIRECT_ACCEPT: 2332 case PJSIP_REDIRECT_ACCEPT_REPLACE: 2332 2333 case PJSIP_REDIRECT_STOP: 2333 2334 /* Must increment session counter, that's the convention of the … … 2395 2396 switch (op) { 2396 2397 case PJSIP_REDIRECT_ACCEPT: 2398 case PJSIP_REDIRECT_ACCEPT_REPLACE: 2397 2399 /* User accept the redirection. Reset the session and resend the 2398 2400 * INVITE request. … … 2419 2421 pjsip_msg_find_hdr(tdata->msg, PJSIP_H_VIA, NULL); 2420 2422 via->branch_param.slen = 0; 2423 2424 /* Process PJSIP_REDIRECT_ACCEPT_REPLACE */ 2425 if (op == PJSIP_REDIRECT_ACCEPT_REPLACE) { 2426 pjsip_to_hdr *to; 2427 pjsip_dialog *dlg = inv->dlg; 2428 enum { TMP_LEN = 128 }; 2429 char tmp[TMP_LEN]; 2430 int len; 2431 2432 /* Replace To header */ 2433 to = PJSIP_MSG_TO_HDR(tdata->msg); 2434 to->uri = (pjsip_uri*) 2435 pjsip_uri_clone(tdata->pool, 2436 dlg->target_set.current->uri); 2437 to->tag.slen = 0; 2438 pj_list_init(&to->other_param); 2439 2440 /* Re-init dialog remote info */ 2441 dlg->remote.info = (pjsip_to_hdr*) 2442 pjsip_hdr_clone(dlg->pool, to); 2443 2444 /* Remove header param from remote info */ 2445 if (PJSIP_URI_SCHEME_IS_SIP(dlg->remote.info->uri) || 2446 PJSIP_URI_SCHEME_IS_SIPS(dlg->remote.info->uri)) 2447 { 2448 pjsip_sip_uri *sip_uri = (pjsip_sip_uri *) 2449 pjsip_uri_get_uri(dlg->remote.info->uri); 2450 if (!pj_list_empty(&sip_uri->header_param)) { 2451 /* Remove all header param */ 2452 pj_list_init(&sip_uri->header_param); 2453 } 2454 } 2455 2456 /* Print the remote info. */ 2457 len = pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, 2458 dlg->remote.info->uri, tmp, TMP_LEN); 2459 if (len < 1) { 2460 pj_ansi_strcpy(tmp, "<-error: uri too long->"); 2461 len = pj_ansi_strlen(tmp); 2462 } 2463 pj_strdup2_with_null(dlg->pool, &dlg->remote.info_str, tmp); 2464 2465 /* Secure? */ 2466 dlg->secure = PJSIP_URI_SCHEME_IS_SIPS(to->uri); 2467 } 2421 2468 2422 2469 /* Reset message destination info (see #1248). */
Note: See TracChangeset
for help on using the changeset viewer.