int sal_call_refer(SalOp *op, const char *refer_to){ belle_sip_header_address_t *referred_by; belle_sip_header_refer_to_t* refer_to_header; if (op->dialog) { referred_by=(belle_sip_header_address_t*)belle_sip_object_clone(BELLE_SIP_OBJECT(belle_sip_dialog_get_local_party(op->dialog))); }else{ referred_by=BELLE_SIP_HEADER_ADDRESS(sal_op_get_from_address(op)); } refer_to_header=belle_sip_header_refer_to_create(belle_sip_header_address_parse(refer_to)); return sal_call_refer_to(op,refer_to_header,belle_sip_header_referred_by_create(referred_by)); }
/* Address manipulation API*/ SalAddress * sal_address_new(const char *uri){ belle_sip_header_address_t* result; if (uri) { result=belle_sip_header_address_parse (uri); /*may return NULL*/ } else { result = belle_sip_header_address_new(); belle_sip_header_address_set_uri(result,belle_sip_uri_new()); } if (result) belle_sip_object_ref(result); return (SalAddress *)result; }