From fddd2d9cb792d14adf52f691d3ec8f84410a73d2 Mon Sep 17 00:00:00 2001 From: Rob Day Date: Fri, 26 Jan 2018 23:18:51 +0000 Subject: [PATCH] Contact is a mandatory header on 200 OK to a SUBSCRIBE --- src/subscriptionsproutlet.cpp | 6 ++++++ src/ut/subscription_test.cpp | 1 + 2 files changed, 7 insertions(+) diff --git a/src/subscriptionsproutlet.cpp b/src/subscriptionsproutlet.cpp index 91cc21c77..6d0bfeb16 100644 --- a/src/subscriptionsproutlet.cpp +++ b/src/subscriptionsproutlet.cpp @@ -383,6 +383,12 @@ void SubscriptionSproutletTsx::process_subscription_request(pjsip_msg* req) pjsip_expires_hdr* expires_hdr = pjsip_expires_hdr_create(get_pool(rsp), expiry); pjsip_msg_add_hdr(rsp, (pjsip_hdr*)expires_hdr); + pjsip_contact_hdr* contact_hdr = pjsip_contact_hdr_create(get_pool(rsp)); + pjsip_name_addr* contact_uri = pjsip_name_addr_create(get_pool(rsp)); + contact_uri->uri = (pjsip_uri*)stack_data.scscf_uri; + contact_hdr->uri = (pjsip_uri*)contact_uri; + pjsip_msg_add_hdr(rsp, (pjsip_hdr*)contact_hdr); + // Add the to tag to the response pjsip_to_hdr *to = (pjsip_to_hdr*) pjsip_msg_find_hdr(rsp, PJSIP_H_TO, diff --git a/src/ut/subscription_test.cpp b/src/ut/subscription_test.cpp index 86035513e..111698278 100644 --- a/src/ut/subscription_test.cpp +++ b/src/ut/subscription_test.cpp @@ -1563,6 +1563,7 @@ std::string SubscriptionTest::do_OK_NOTIFY_flow(std::string* body, EXPECT_EQ("P-Charging-Vector: icid-value=\"100\"", get_headers(out, "P-Charging-Vector")); EXPECT_EQ("P-Charging-Function-Addresses: ccf=1.2.3.4;ecf=5.6.7.8", get_headers(out, "P-Charging-Function-Addresses")); + EXPECT_EQ("Contact: ", get_headers(out, "Contact")); EXPECT_THAT(from_hdr, testing::MatchesRegex(string(".*tag=").append(to_tag)));