I am a passionate software engineer and manager with over 35 years experience. I help organisations tell stories with data that drive and align teams, products and the business. I help teams develop engineering process improvements that make development faster and joyful.
2017.01 - 2025.04
2015.07 - 2016.1
2013.04 - 2015.07
2011.1 - 2013.04
2010.09 - 2011.1
2010.01 - 2010.09
2010.01 - 2010.09

2006.07 - 2009.12
Mountain View, US
Strategic Technology Applications and VoIP Products
2008.01 - 2009.12
2006.07 - 2008.01
2006.07 - 2008.01

2002.01 - 2005.06
VoIP Security and Access Products
2002.01 - 2005.06

1995.08 - 2001.08
Canadian Advanced Air-Traffic System (CAATS)
1995.08 - 2001.08
Embodiments describe transmitting authentication data from an application to a communication system. The communication system verifies the authentication data transmitted from the application, and on the basis that the authentication data is verified, the communication system authenticates the application for accessing the communication system on behalf of a user. Prior to the transmitting step the authentication data is provided from the communication system to the client, and then from the client to the application. The verifying step comprises determining that the authentication data transmitted from the application corresponds to the authentication data provided from the communication system to the client, such that the application is authenticated for accessing the communication system on behalf of the user on the basis of the client’s authentication with the communication system.
A system and method for retrieving distributed content responsive to voice data are disclosed. Voice data is transmitted from a source client device to media server which applies a mixing table to route the voice data to one or more destinations described by the mixing table. The media server also analyzes the received voice data for one or more events. Responsive to detecting an event, the media server communicates with an application server, which modifies the mixing table so that subsequent data is also routed to a media generator which analyzes voice data received after detection of the event for a command. The media generator communicates with the application server to retrieve data from a user data source, such as a website, associated with a detected command. The media generator produces an audio representation of the retrieved data which is communicated to the source client device via the media server.
This document describes functions implemented in Session Initiation Protocol (SIP) intermediaries known as Session Border Controllers (SBCs). The goal of this document is to describe the commonly provided functions of SBCs. A special focus is given to those practices that are viewed to be in conflict with SIP architectural principles. This document also explores the underlying requirements of network operators that have led to the use of these functions and practices in order to identify protocol requirements and determine whether those requirements are satisfied by existing specifications or if additional standards work is required.
Examples of Session Initiation Protocol (SIP) test messages designed to exercise and thoroughly check a SIP implementation.