diff options
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/VoIp.cpp')
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp index 013a79a..d85d05c 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp @@ -1396,7 +1396,12 @@ bool TrySip200Ok(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader, Sip200OkInfoRef info(new Sip200OkInfo()); - char* callIdField = memFindAfter("\r\ni:", (char*)udpPayload, sipEnd); + char* callIdField = memFindAfter("Call-ID:", (char*)udpPayload, sipEnd); + if(!callIdField) + { + callIdField = memFindAfter("\ni:", (char*)udpPayload, sipEnd); + } + char* audioField = NULL; char* connectionAddressField = NULL; @@ -1410,16 +1415,16 @@ bool TrySip200Ok(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader, { info->m_hasSdp = true; - GrabToken(audioField, sipEnd, info->m_fromRtpPort); + GrabToken(audioField, sipEnd, info->m_mediaPort); CStdString connectionAddress; GrabToken(connectionAddressField, sipEnd, connectionAddress); - struct in_addr fromIp; + struct in_addr mediaIp; if(connectionAddress.size()) { - if(ACE_OS::inet_aton((PCSTR)connectionAddress, &fromIp)) + if(ACE_OS::inet_aton((PCSTR)connectionAddress, &mediaIp)) { - info->m_fromRtpIp = fromIp; + info->m_mediaIp = mediaIp; } } } |