summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip/RtpSession.h
AgeCommit message (Collapse)Author
2009-11-06Fixed garbled or missing audio when multiple RTP streams are seen in a ↵henrih
single session. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@651 09dcff7a-b715-0410-9601-b79a96267cd0
2009-10-27Modified the VoIP plugin to support the cases where Skinny CallInfo is sent ↵beg_g
without corresponding StartMediaTransmission or OpenReceiveChannelAck messages. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@650 09dcff7a-b715-0410-9601-b79a96267cd0
2009-10-19Added support for the SIP response "302 Moved Temporarily". The way this ↵beg_g
works is that the "Contact" header is mapped to the "To" header such that a subsequent INVITE based on the "302 Moved Temporarily" response shall have the correct remote party parameter. This functionality is by default enabled and can be disabled by setting the parameter Sip302MovedTemporarilySupport to 'false'. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@647 09dcff7a-b715-0410-9601-b79a96267cd0
2009-09-08Modified the skinny code so that when CallInfo is received for a call which ↵Gerald Begumisa
has been forwarded, we use the endpoint extension as the local party, and set the local entry point to the local party which would have been extracted from the CallInfo for an ordinary (non-forwarded) call. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@640 09dcff7a-b715-0410-9601-b79a96267cd0
2009-09-02Adjusted recording strategy for Asterisk-DAHDI channels, to now obtain the ↵Gerald Begumisa
remote party from the SIP BYE, as opposed to the INVITE as was originally the case. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@639 09dcff7a-b715-0410-9601-b79a96267cd0
2009-08-20Added a parameter to the tape message called "ondemand". This parameter is ↵Gerald Begumisa
reported to orktrack. When a recording has been started by the API, instead of automatically, this parameter is set to 'true'. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@636 09dcff7a-b715-0410-9601-b79a96267cd0
2009-08-18Added support for recording of Asterisk-DAHDI channels using Xorcom's ↵Gerald Begumisa
Asterisk patch. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@635 09dcff7a-b715-0410-9601-b79a96267cd0
2009-08-14Modified the orkaudio API for StartCapture and PauseCapture to carry out ↵Gerald Begumisa
their respective operations when the nativecallid is supplied. Added a new API, StopCapture, which causes a session to stop when any of the party, orkuid or nativecallid is provided as a parameter. This API is different from the PauseCapture API in the sense that it actually causes a session to stop and the WAV file is produced. After calling StopCapture, the session cannot be re-started with the StartCapture API (record). git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@633 09dcff7a-b715-0410-9601-b79a96267cd0
2009-07-20Abstracted media address crafting and session lookup by media address so ↵Henri Herscher
that it is easily possible to change the way the media address is generated. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@629 09dcff7a-b715-0410-9601-b79a96267cd0
2009-07-16Switched from custom Trim() function to CStdString Trim()Gerald Begumisa
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@626 09dcff7a-b715-0410-9601-b79a96267cd0
2009-07-10Implemented a localpartymap feature whereby a local party value may be ↵Gerald Begumisa
swapped for another value. To use this feature, the mappings should be added to a file called localpartymap.csv, placed in /etc/orkaudio or in the directory where the orkaudio executable is. The format of localpartymap.csv should be oldlocalparty, newlocalparty - with only one mapping entry per line. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@625 09dcff7a-b715-0410-9601-b79a96267cd0
2009-06-23Added SipDirectionReferenceUserAgents VoIp config parameter. Any SIP INVITE ↵Henri Herscher
with User Agent field matching an entry in this list will be considered incoming. Populated by default with "Asterisk". git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@624 09dcff7a-b715-0410-9601-b79a96267cd0
2009-05-15Added support for setting the SIP request URI as local party. If the SIP ↵Gerald Begumisa
request URI differs from the SIP URI in the "To:" header field, then the local party is set to the SIP request URI, remote party to the "From:" header field, direction to "in", Local entry point to the "To:" header field. This behaviour may be turned off by setting the configuration parameter SipRequestUriAsLocalParty to "false" under the VoIpPlugin section of config.xml. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@611 09dcff7a-b715-0410-9601-b79a96267cd0
2009-03-02Modified the record command to return the orkuid for the ongoing call which ↵Gerald Begumisa
matches git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@606 09dcff7a-b715-0410-9601-b79a96267cd0
2009-01-21VoIP plugin has been updated with a new configuration parameter, ↵Gerald Begumisa
SipReportNamesAsTags, to be configured under the VoIpPlugin section of config.xml. When set to 'true', the SIP from: and to: names are extracted and reported as tags. The tag keys used are localname and remotename which correspond to the respective localparty and remoteparty values which are already reported. These tags may, therefore, be used when providing custom names to recordings. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@597 09dcff7a-b715-0410-9601-b79a96267cd0
2009-01-07Modified the orkaudio API, adding the record and pause HTTP commands. The ↵Gerald Begumisa
record command commences or un-pauses recording while the pause command pauses recording - discarding RTP packets from when the pause command is issued. Both commands require the orkuid and party to be specified as HTTP parameters. Note that this represents a change in the arguments required for the StartCapture function in DLLs. Also added an event streaming feature which streams out all tape messages as they are reported in real-time to a client connected. Clients should connect via HTTP, on port 59150. The port is configurable by setting the parameter EventStreamingServerPort in config.xml git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@590 09dcff7a-b715-0410-9601-b79a96267cd0
2008-12-10Added SipIgnoreBye configuration parameter. Improved BYE logging and made ↵Henri Herscher
sure 200 OK is only logged in the INFO level if it has valid SDP (otherwise DEBUG). git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@586 09dcff7a-b715-0410-9601-b79a96267cd0
2008-10-09Added RTCP support. Key functionality is the ability to set the local party ↵Gerald Begumisa
basing on the RTCP SDES information. A new configuration parameter, RtcpDetect, has been added. To enable RTCP, set RtcpDetect to true. This configuration should be done under the VoIpPlugin section of config.xml. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@562 09dcff7a-b715-0410-9601-b79a96267cd0
2008-08-27A new configuration parameter, SipDetectSessionProgress, has been added. ↵Gerald Begumisa
This parameter defaults to "true" and should be configured under the VoIpPlugin section of config.xml if it needs to be turned off. With this parameter set to "true", the SIP Session Progress message (SIP/2.0 183 Session Progress) is detected. The SDP in the message is used to force media address change on the session. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@557 09dcff7a-b715-0410-9601-b79a96267cd0
2008-07-17Added SkinnyCallInfoStopsPrevious config parameter. This allows a new ↵Henri Herscher
CallInfo to stop the previous session on the same Skinny endpoint and line instance. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@552 09dcff7a-b715-0410-9601-b79a96267cd0
2008-07-01A new configuration parameter, SkinnyNameAsLocalParty, has been added for ↵Gerald Begumisa
the VoIpConfig section in config.xml. When this parameter is set to true, the local party is reported as a name and not telephone number, where available in Skinny sessions. Another configuration parameter, SkinnyReportTags, has been added for the VoIpConfig section in config.xml. This parameter should be populated with a comma-separated list of Skinny variables to report. Initially supported values are 'localpartyname' and 'callmanager'. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@549 09dcff7a-b715-0410-9601-b79a96267cd0
2008-05-28Made sure RTP IP address is tracked by RtpSession at every point in time.Henri Herscher
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@540 09dcff7a-b715-0410-9601-b79a96267cd0
2008-05-09Added new configuration parameter SipDirectionRefenceIpAddresses. This ↵Gerald Begumisa
should be configured with a comma-delimited list of IP addresses under the VoIpPlugin section of config.xml. So if the IP address of the sender of the SIP INVITE message matches any of the IPs in this list, the direction of the session is set to "in" git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@538 09dcff7a-b715-0410-9601-b79a96267cd0
2008-05-08Adjusted the Skinny plugin to cater for situations where ↵Gerald Begumisa
OpenReceiveChannelAck and StartMediaTransmission may be sent before the CallInfoMessage. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@537 09dcff7a-b715-0410-9601-b79a96267cd0
2008-03-06Changed the way direction is determined while recording SIP-based VoIP ↵Gerald Begumisa
sessions. A new configuration parameter, SipDomains, has been created and should be set under the VoIpPlugin section in config.xml. This parameter should contain a comma separated list of domains. So, if the domain of the SIP "from" URI matches any entry in this list, direction is set to "out". If the domain of the SIP "to" URI matches any entry in this list, direction is set to "in". If both domains of the "from" and "to" URIs match entries in this list, direction is set to "out" which is also the default case. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@527 09dcff7a-b715-0410-9601-b79a96267cd0
2007-11-26Improved SIP error packet logging to include information from the session's ↵Gerald Begumisa
INVITE where possible git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@510 09dcff7a-b715-0410-9601-b79a96267cd0
2007-11-16Added support to 200 OK packets in the same fashion as INVITE packetsGerald Begumisa
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@507 09dcff7a-b715-0410-9601-b79a96267cd0
2007-11-07Capture port is now set as the three letters tracking ID in VoIP plugin ↵Henri Herscher
instead of media address. This is because of problems with dynamic media addreses. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@504 09dcff7a-b715-0410-9601-b79a96267cd0
2007-09-28Adjustment to solve a potential performance problem that could arise from ↵Gerald Begumisa
the load toll associated with repeated string comparison git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@498 09dcff7a-b715-0410-9601-b79a96267cd0
2007-09-21Added support to report RTP events in SIP sessionsGerald Begumisa
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@494 09dcff7a-b715-0410-9601-b79a96267cd0
2007-09-19Added SipUse200OkMediaAddress configuration switch. If enabled, SIP 200 OK ↵Henri Herscher
SDP media address prevails over INVITE SDP media address. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@492 09dcff7a-b715-0410-9601-b79a96267cd0
2007-08-24Added support for SIP 200 OK message with ability to adjust the session RTP ↵Gerald Begumisa
IP address and port if NAT is detected git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@474 09dcff7a-b715-0410-9601-b79a96267cd0
2007-08-23Added on-hold support for SIP sessionsGerald Begumisa
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@472 09dcff7a-b715-0410-9601-b79a96267cd0
2007-08-10Changed the method of logging failed calls so that the failed calls are ↵Gerald Begumisa
associated with a session git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@463 09dcff7a-b715-0410-9601-b79a96267cd0
2007-08-07Added possibility to log failed SIP calls (SIP CANCEL or SIP INVITE with ↵Henri Herscher
4xx, 5xx or 6xx error code) using SipLogFailedCalls config parameter. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@462 09dcff7a-b715-0410-9601-b79a96267cd0
2007-07-30Added non-lookback recording mode.Henri Herscher
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@458 09dcff7a-b715-0410-9601-b79a96267cd0
2007-06-20Session info updating based on Skinny CallInfoMessage updates is now ↵Henri Herscher
configurable. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@449 09dcff7a-b715-0410-9601-b79a96267cd0
2007-06-131. Skinny sessions can not change CallId anymore (CallId used to change to ↵Henri Herscher
passThruPartyId when startMediaTransmission was received). 2. StartMediaTransmission and OpenReceiveChannelAck are now associated to the most recent CallInfo. 3. StopMediaTransmission is now dismissed if passThruPartyId does not match. 4. Skinny sessions can now have dynamic media address when <SkinnyDynamicMediaAddress> is set to true. 5. Skinny Hold and Resume now associated to sessions on the basis of CallID. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@448 09dcff7a-b715-0410-9601-b79a96267cd0
2007-06-12Added support for a configuration value, UseMacIfNoLocalParty, which sets ↵Gerald Begumisa
the local party to the MAC address, instead of the IP address, if local party is not present from signalling information git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@446 09dcff7a-b715-0410-9601-b79a96267cd0
2007-06-01Further work on the Skinny on-hold handling.Henri Herscher
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@442 09dcff7a-b715-0410-9601-b79a96267cd0
2007-05-30Fix for correct Skinny on-hold handling. Now, only one recording is created ↵Gerald Begumisa
when an endpoint goes on hold then returns. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@441 09dcff7a-b715-0410-9601-b79a96267cd0
2007-04-13SIP field extraction now functional.Henri Herscher
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@437 09dcff7a-b715-0410-9601-b79a96267cd0
2006-12-28SIP Session metadata can now be updated when a new RTP stream is seen that ↵Henri Herscher
matches one of the INVITE messages associated with the session. When this happens, a new tape message with stage=update is generated with the updated metadata. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@381 09dcff7a-b715-0410-9601-b79a96267cd0
2006-12-271. Subsequent SIP INVITES that could be associated to an existing session ↵Henri Herscher
now disregarded because they could be disrupting valid sessions. We need to store the new INVITES and only use them when they are validated by a matching RTP stream. 2. New RTP streams are now logged within one session by the VoIP plugin. 3. Added a Debug config boolean that has the trackingId alpha counter reset to 0 (AAA) when enabled. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@380 09dcff7a-b715-0410-9601-b79a96267cd0
2006-12-12RTP sessions now check the destination IP address of a packet to determine ↵Henri Herscher
whether it's side 1. This allows incoming PSTN calls transferred to various IP endpoints to be recorded as one session under two conditions: 1. There is no signalling for the second and subsequent segments and 2. the first RTP packet is sent from an internal endpoint to the PSTN gateway, see remark (1) in RtpSession.cpp. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@370 09dcff7a-b715-0410-9601-b79a96267cd0
2006-12-12Now possible to split RTP sessions based on timestamp and sequence number ↵Henri Herscher
discontinuity. This is disabled by default and can be enabled using the <RtpDiscontinuityDetect> config.xml boolean parameter. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@369 09dcff7a-b715-0410-9601-b79a96267cd0
2006-11-21Now logging whether a session has seen duplicate RTP traffic and the maximum ↵Henri Herscher
delta in sequence number seen during the capture (logged at session stop). git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@356 09dcff7a-b715-0410-9601-b79a96267cd0
2006-10-11There is now an orkaudio wide tracking ID for recording sessions. All ↵Henri Herscher
logging related to a recording session includes this tracking ID. The recording file name now uses this tracking ID instead of the "port" name which used to be IP+TcpPort of one endpoint. Also introduced the notion of OrkUid which is an unique identifier based on timestamp + tracking ID. OrkUid is not yet reported to orktrack. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@342 09dcff7a-b715-0410-9601-b79a96267cd0
2006-08-01Applying changeset 269 from 0.5 to trunk:Henri Herscher
Can now get local party info from the Skinny LineStatMessage. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@320 09dcff7a-b715-0410-9601-b79a96267cd0
2006-08-01Applying changeset 266 from 0.5 to trunk:Henri Herscher
Removed the unused old RTP mixer from the VoIp.dll git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@319 09dcff7a-b715-0410-9601-b79a96267cd0