|
From: <wh...@wo...> - 2008-10-30 17:07:07
|
>From RtpSession.cpp under voip under audiocaptureplugins under Oreka-0.5-313, you have the following:
void RtpSessions::ReportSipInvite(SipInviteInfoRef& invite)
{
char szFromRtpIp[16];
ACE_OS::inet_ntop(AF_INET, (void*)&invite->m_fromRtpIp, szFromRtpIp, sizeof(szFromRtpIp));
CStdString ipAndPort = CStdString(szFromRtpIp) + "," + invite->m_fromRtpPort;
std::map<CStdString, RtpSessionRef>::iterator pair;
pair = m_byIpAndPort.find(ipAndPort);
if (pair != m_byIpAndPort.end())
{
// The session already exists, do nothing
return;
}
pair = m_byCallId.find(invite->m_callId);
if (pair != m_byCallId.end())
{
// The session already exists
RtpSessionRef session = pair->second;
if(!session->m_ipAndPort.Equals(ipAndPort))
{
// The session RTP connection address has changed
// Remove session from IP and Port map
m_byIpAndPort.erase(session->m_ipAndPort);
// ... update
session->m_ipAndPort = ipAndPort;
session->ReportSipInvite(invite);
// ... and reinsert
m_byIpAndPort.insert(std::make_pair(session->m_ipAndPort, session));
LOG4CXX_INFO(m_log, session->m_trackingId + ": updated with new INVITE data");
}
return;
}
// create new session and insert into both maps
CStdString trackingId = alphaCounter.GetNext();
RtpSessionRef session(new RtpSession(trackingId));
session->m_ipAndPort = ipAndPort;
session->m_callId = invite->m_callId;
session->m_protocol = RtpSession::ProtSip;
session->ReportSipInvite(invite);
m_byIpAndPort.insert(std::make_pair(session->m_ipAndPort, session));
m_byCallId.insert(std::make_pair(session->m_callId, session));
CStdString numSessions = IntToString(m_byIpAndPort.size());
LOG4CXX_DEBUG(m_log, CStdString("ByIpAndPort: ") + numSessions);
LOG4CXX_INFO(m_log, trackingId + ": created by SIP INVITE");
}
I can't seem to find where you are grabbing the from: and the to: and not the via.
In fact it seems like this line, session->m_ipAndPort = ipAndPort is pulling only the ip and port number and not actually grabbing the ani@ip.
-wh
>Oreka reports from: and to: by default, not via. You might have another
>problem. I can take a look if you send me a test trace of a call offline.
>Henri
>
>-----Original Message-----
>From: wh...@wo... [mailto:wh...@wo...]
>Sent: 29 October 2008 19:57
>To: ore...@li...
>Subject: [Oreka-user] SIP Proxy obfuscation
>
>I have noticed the following problem.
>
>Should a caller dial from outside a sip proxy (a pbx) to an extension within
>the sip proxy lan, Oreka does not display the ani specified in From: phrase
>because it is looking at the Via phrase, which in most sip proxies does not
>display the ani.
>
>So all orkaudio shows is the sip proxy ip address for all inbound calls.
>
>The config file under orkaudio has a specification for MediaGateways.
>
>It would be nice if orkaudio had logic that understood that if an IP packet
>had a via phrase with an ip address of the media gateway then orkaudio would
>then look in the from phrase to pickup the ani information (and even the ip
>address associated with that ani outside of the sip proxy.)
>
>Just a suggestion. If you don't do it, I might.
>
>wh
>
>-------------------------------------------------------------------------
>This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
>Build the coolest Linux based applications with Moblin SDK & win great
>prizes
>Grand prize is a trip for two to an Open Source event anywhere in the world
>http://moblin-contest.org/redirect.php?banner_id=100&url=/
>_______________________________________________
>Oreka-user mailing list
>Ore...@li...
>https://lists.sourceforge.net/lists/listinfo/oreka-user
>
|