Hi all, maybe this is a bug ?
I saw In ClientRegistration.cxx file, the line 392, when the UA received 200 OK of REGISTER message, if the 200 OK has Service-route header,
the DUM will call setServiceRoute(msg.header(h_ServiceRoutes)) to add the Route header for SIP message.
try
{
if (msg.exists(h_ServiceRoutes))
{
InfoLog(<< "Updating service route: " << Inserter(msg.header(h_ServiceRoutes)));
getUserProfile()->setServiceRoute(msg.header(h_ServiceRoutes));
}
else
{
DebugLog(<< "Clearing service route (" << Inserter(getUserProfile()->getServiceRoute()) << ")");
getUserProfile()->setServiceRoute(NameAddrs());
}
}
catch(BaseException &e)
{
InfoLog(<< "Error Parsing Service Route:" << e);
}
But as my test, when I make call after register succeeded, the INVITE message does not included ROUTE header.
I have to write below code after the register succeeded(I just use single master profile, no user profile):
void UserAgent::onSuccess(ClientRegistrationHandle h, const SipMessage& response)
{
try
{
if (response.exists(h_ServiceRoutes))
{
mMasterProfile->setServiceRoute(response.header(h_ServiceRoutes));
}
else
{
mMasterProfile->setServiceRoute(NameAddrs());
}
}
catch(BaseException &e)
{
}
}
Then the INVITE message inlcuded ROUTE header.