diff --git a/src/core/kemi.c b/src/core/kemi.c index 7a962541596..612e9807344 100644 --- a/src/core/kemi.c +++ b/src/core/kemi.c @@ -222,6 +222,38 @@ static int sr_kemi_core_is_myself_ruri(sip_msg_t *msg) return sr_kemi_core_is_myself(msg, &msg->first_line.u.request.uri); } +/** + * + */ +static int sr_kemi_core_is_myself_duri(sip_msg_t *msg) +{ + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + if (msg->dst_uri.s!=NULL) + return sr_kemi_core_is_myself(msg, &msg->dst_uri); + + return SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_myself_nhuri(sip_msg_t *msg) +{ + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + if (msg->dst_uri.s!=NULL) + return sr_kemi_core_is_myself(msg, &msg->dst_uri); + + return sr_kemi_core_is_myself_ruri(msg); +} + /** * */ @@ -1400,6 +1432,16 @@ static sr_kemi_t _sr_kemi_core[] = { { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init(""), str_init("is_myself_duri"), + SR_KEMIP_BOOL, sr_kemi_core_is_myself_duri, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_myself_nhuri"), + SR_KEMIP_BOOL, sr_kemi_core_is_myself_nhuri, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init(""), str_init("is_myself_furi"), SR_KEMIP_BOOL, sr_kemi_core_is_myself_furi, { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,