mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 19:18:06 +00:00
Add Message-ID header in CPIM messages.
This commit is contained in:
parent
94a51d3ec1
commit
ef7ae680ff
6 changed files with 21 additions and 1 deletions
|
|
@ -554,7 +554,8 @@ void ChatMessagePrivate::send () {
|
|||
}
|
||||
}
|
||||
|
||||
q->setImdnMessageId(op->get_call_id()); /* must be known at that time */
|
||||
if (q->getImdnMessageId().empty())
|
||||
q->setImdnMessageId(op->get_call_id()); /* must be known at that time */
|
||||
|
||||
//store(); // Store will be done right below in the setState(InProgress)
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ MAKE_CORE_HEADER_IMPL(From);
|
|||
MAKE_CORE_HEADER_IMPL(To);
|
||||
MAKE_CORE_HEADER_IMPL(Cc);
|
||||
MAKE_CORE_HEADER_IMPL(DateTime);
|
||||
MAKE_CORE_HEADER_IMPL(MessageId);
|
||||
|
||||
MAKE_CORE_HEADER_IMPL(Ns);
|
||||
MAKE_CORE_HEADER_IMPL(Require);
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ namespace Cpim {
|
|||
MAKE_CORE_HEADER(To, "To");
|
||||
MAKE_CORE_HEADER(Cc, "cc");
|
||||
MAKE_CORE_HEADER(DateTime, "DateTime");
|
||||
MAKE_CORE_HEADER(MessageId, "Message-ID");
|
||||
MAKE_CORE_HEADER(Ns, "NS");
|
||||
MAKE_CORE_HEADER(Require, "Require");
|
||||
|
||||
|
|
|
|||
|
|
@ -53,6 +53,8 @@ To-header-value = [ Formal-name ] "<" URI ">"
|
|||
DateTime-header = %d68.97.116.101.84.105.109.101 ": " DateTime-header-value
|
||||
DateTime-header-value = date-time
|
||||
|
||||
Message-ID-header = %d77.101.115.115.97.103.101.45.73.68 ": " Token
|
||||
|
||||
cc-header = %d99.99 ": " cc-header-value
|
||||
cc-header-value = [ Formal-name ] "<" URI ">"
|
||||
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ namespace Cpim {
|
|||
{ "To", &HeaderNode::createCoreHeader<ToHeader> },
|
||||
{ "cc", &HeaderNode::createCoreHeader<CcHeader> },
|
||||
{ "DateTime", &HeaderNode::createCoreHeader<DateTimeHeader> },
|
||||
{ "Message-ID", &HeaderNode::createCoreHeader<MessageIdHeader> },
|
||||
{ "Subject", &HeaderNode::createCoreHeader<SubjectHeader> },
|
||||
{ "NS", &HeaderNode::createCoreHeader<NsHeader> },
|
||||
{ "Require", &HeaderNode::createCoreHeader<RequireHeader> }
|
||||
|
|
@ -394,6 +395,12 @@ bool Cpim::Parser::coreHeaderIsValid<Cpim::DateTimeHeader>(const string &headerV
|
|||
return true;
|
||||
}
|
||||
|
||||
template<>
|
||||
bool Cpim::Parser::coreHeaderIsValid<Cpim::MessageIdHeader>(const string &headerValue) const {
|
||||
L_D();
|
||||
return LinphonePrivate::coreHeaderIsValid(d->grammar, "Message-ID", headerValue);
|
||||
}
|
||||
|
||||
template<>
|
||||
bool Cpim::Parser::coreHeaderIsValid<Cpim::SubjectHeader>(const string &headerValue) const {
|
||||
L_D();
|
||||
|
|
|
|||
|
|
@ -45,6 +45,12 @@ ChatMessageModifier::Result CpimChatMessageModifier::encode (const shared_ptr<Ch
|
|||
Cpim::ToHeader cpimToHeader;
|
||||
cpimToHeader.setValue(cpimAddressAsString(message->getToAddress()));
|
||||
cpimMessage.addMessageHeader(cpimToHeader);
|
||||
char token[13];
|
||||
belle_sip_random_token(token, sizeof(token));
|
||||
Cpim::MessageIdHeader cpimMessageIdHeader;
|
||||
cpimMessageIdHeader.setValue(token);
|
||||
cpimMessage.addMessageHeader(cpimMessageIdHeader);
|
||||
message->setImdnMessageId(token);
|
||||
|
||||
const Content *content;
|
||||
if (!message->getInternalContent().isEmpty()) {
|
||||
|
|
@ -127,6 +133,8 @@ ChatMessageModifier::Result CpimChatMessageModifier::decode (const shared_ptr<Ch
|
|||
cpimFromAddress = Address(header->getValue());
|
||||
else if (header->getName() == "To")
|
||||
cpimToAddress = Address(header->getValue());
|
||||
else if (header->getName() == "Message-Id")
|
||||
message->setImdnMessageId(header->getValue());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue