diff options
author | George Joseph <george.joseph@fairview5.com> | 2016-02-24 16:25:09 -0700 |
---|---|---|
committer | George Joseph <george.joseph@fairview5.com> | 2016-03-03 19:32:33 -0700 |
commit | 27f32cd0a69141daf44c2cc6c9c0e52b37af4a16 (patch) | |
tree | 3f35dacdb37be56da1f6824f07b747e6a572e4f0 /include | |
parent | 9b0a96b947437f58fcc88f154ed5080fde529009 (diff) |
res_pjsip_caller_id: Anonymize 'From' when caller id presentation is prohibited
Per RFC3325, the 'From' header is now anonymized on outgoing calls when
caller id presentation is prohibited.
TID = trust_id_outbound
PRO = Set(CALLERID(pres)=prohib)
USR = endpoint/from_user
DOM = endpoint/from_domain
PAI = YES(privacy=off), NO(not sent), PRI(privacy=full) (assumes send_pai=yes)
Conditions |Result
--------------------|----------------------------------------------------
TID PRO USR DOM |PAI FROM
--------------------|----------------------------------------------------
Y Y abc def.ghi |PRI "Anonymous" <sip:abc@def.ghi>
Y Y abc |PRI "Anonymous" <sip:abc@anonymous.invalid>
Y Y def.ghi |PRI "Anonymous" <sip:anonymous@def.ghi>
Y Y |PRI "Anonymous" <sip:anonymous@anonymous.invalid>
Y N abc def.ghi |YES <sip:abc@def.ghi>
Y N abc |YES <sip:abc@<ip_address>>
Y N def.ghi |YES "Caller Name" <sip:<caller_exten>@def.ghi>
Y N |YES "Caller Name" <sip:<caller_exten>@<ip_address>>
N Y abc def.ghi |NO "Anonymous" <sip:abc@def.ghi>
N Y abc |NO "Anonymous" <sip:abc@anonymous.invalid>
N Y def.ghi |NO "Anonymous" <sip:anonymous@def.ghi>
N Y |NO "Anonymous" <sip:anonymous@anonymous.invalid>
N N abc def.ghi |YES <sip:abc@def.ghi>
N N abc |YES <sip:abc@<ip_address>>
N N def.ghi |YES "Caller Name" <sip:<caller_exten>@def.ghi>
N N |YES "Caller Name" <sip:<caller_exten>@<ip_address>>
ASTERISK-25791 #close
Reported-by: Anthony Messina
Change-Id: I2c82a5ca1413c2c00fb62ea95b0ae8e97af54dc9
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/res_pjsip.h | 10 | ||||
-rw-r--r-- | include/asterisk/res_pjsip_session.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/asterisk/res_pjsip.h b/include/asterisk/res_pjsip.h index fc921c879..3901cf73c 100644 --- a/include/asterisk/res_pjsip.h +++ b/include/asterisk/res_pjsip.h @@ -2284,4 +2284,14 @@ int ast_sip_set_tpselector_from_transport(const struct ast_sip_transport *transp */ int ast_sip_set_tpselector_from_transport_name(const char *transport_name, pjsip_tpselector *selector); +/*! + * \brief Set name and number information on an identity header. + * + * \param pool Memory pool to use for string duplication + * \param id_hdr A From, P-Asserted-Identity, or Remote-Party-ID header to modify + * \param id The identity information to apply to the header + */ +void ast_sip_modify_id_header(pj_pool_t *pool, pjsip_fromto_hdr *id_hdr, + const struct ast_party_id *id); + #endif /* _RES_PJSIP_H */ diff --git a/include/asterisk/res_pjsip_session.h b/include/asterisk/res_pjsip_session.h index ddc87b024..75d37ac3d 100644 --- a/include/asterisk/res_pjsip_session.h +++ b/include/asterisk/res_pjsip_session.h @@ -149,6 +149,8 @@ struct ast_sip_session { enum ast_sip_session_t38state t38state; /*! The AOR associated with this session */ struct ast_sip_aor *aor; + /*! From header saved at invite creation */ + pjsip_fromto_hdr *saved_from_hdr; }; typedef int (*ast_sip_session_request_creation_cb)(struct ast_sip_session *session, pjsip_tx_data *tdata); |