summaryrefslogtreecommitdiff
path: root/orkaudio
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2007-08-30 01:34:27 +0000
committerHenri Herscher <henri@oreka.org>2007-08-30 01:34:27 +0000
commitdd09ea964f36fa025ed22fc317a9d0787a32b52b (patch)
tree2653ddd955bd61b101263144e770103439e330bb /orkaudio
parent90d035bbf3f14d62d7e0ae857d632b7d2ba3a78c (diff)
Support for compact header format extended to all SIP messages.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@476 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio')
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.cpp14
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp16
2 files changed, 22 insertions, 8 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
index e29ad76..b5bda14 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
@@ -905,15 +905,13 @@ void RtpSessions::ReportSipErrorPacket(SipFailureMessageInfoRef& info)
session->m_invite->ToString(InviteInfoString);
LOG4CXX_INFO(m_log, "[" + session->m_trackingId + "] stopped by SIP \"" + info->m_errorCode + " " + info->m_errorString + "\" " + InviteInfoString);
Stop(session);
-
- return;
}
-
- CStdString errorString;
-
- info->ToString(errorString);
- LOG4CXX_INFO(m_log, "Could not associate SIP error packet [" + errorString + "] with any RTP session");
-
+ else
+ {
+ CStdString errorString;
+ info->ToString(errorString);
+ LOG4CXX_INFO(m_log, "Could not associate SIP error packet [" + errorString + "] with any RTP session");
+ }
return;
}
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
index 7ca8e76..1144309 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
@@ -1135,6 +1135,10 @@ bool TryLogFailedSip(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHea
(memcmp("CANCEL ", (void*)udpPayload, 7) == 0))
{
char* callIdField = memFindAfter("Call-ID:", (char*)udpPayload, sipEnd);
+ if(!callIdField)
+ {
+ callIdField = memFindAfter("\ni:", (char*)udpPayload, sipEnd);
+ }
char* eCode = memFindAfter("SIP/2.0 ", (char*)udpPayload, sipEnd);
if(callIdField)
@@ -1433,8 +1437,20 @@ bool TrySipInvite(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader
SipInviteInfoRef info(new SipInviteInfo());
char* fromField = memFindAfter("From:", (char*)udpPayload, sipEnd);
+ if(!fromField)
+ {
+ fromField = memFindAfter("\nf:", (char*)udpPayload, sipEnd);
+ }
char* toField = memFindAfter("To:", (char*)udpPayload, sipEnd);
+ if(!toField)
+ {
+ toField = memFindAfter("\nt:", (char*)udpPayload, sipEnd);
+ }
char* callIdField = memFindAfter("Call-ID:", (char*)udpPayload, sipEnd);
+ if(!callIdField)
+ {
+ callIdField = memFindAfter("\ni:", (char*)udpPayload, sipEnd);
+ }
char* localExtensionField = memFindAfter("x-Local-Extension:", (char*)udpPayload, sipEnd);
char* audioField = NULL;
char* connectionAddressField = NULL;