Sample applications for GP are available on the PIKA Support web page. Each of these samples are made up of three source files:
• A main file - The main file is unique to each sample application.
• pk_thread.cpp - Shared by all sample applications. Operating system (Windows or Linux) specific functions are used by the main line processing to:
• Create a new thread
• Wait for the other thread to terminate
• pk_thread.h - Shared by all sample applications. This file defines process priorities and pk_thread.cpp functions. For each sample application the following information is provided:
• The make file used to build the application (Linux). • The source code for the application.
• Visual Studio project files (Windows).
• The configuration files required for the application. • readme.txt describing the sample
10 Glossary
Term
Definition
ADPCM Adaptive Differential Pulse Code Modulation – A speech coding method that uses fewer bits than the traditional PCM.
ADT Advanced Tone Detection – the ability to detect tones and tones groups to determine what has picked up a call.
a-Law The PCM coding and companding standard used by European digital communications systems to modify the dynamic range of an analog signal for digitizing.
AoH AllOnHost – PIKA’s host-based signal processing solution.
API Application Programmer Interface – software that allows an application program to carry out low-level functions.
ASR Automatic Speech Recognition – A user application that recognizes speech. These types of user applications interact with a caller, responding to spoken commands or information.
BSD Licence Berkeley Software Distribution License– An open source software licence defined by the Open Source Initiative.
CAS Channel Associated Signaling – Sometimes referred to as Robbed-Bit Signaling, CAS is a form of communication signaling that uses routing information to direct the payload of voice or data to its destination. This routing information is encoded and transmitted along the same link as the payload itself. This results in lower available bandwidth for the payload, normally reducing a 64 kbps timeslot to 54 kbps.
Channels Are 64 kbps timeslots in an E1 or T1 signal.
codec Coder/Decoder – Converts analog signals to digital signals. CPU Central Processing Unit – The processor in a computer. CTI Computer Telephony Integration
dB Decibel – A logarithmic unit used to describe a ratio.
DSP Digital Signal Processing – Refers to the manipulation of analog signals, such as sound, that have been converted into a digital form. Also refers to special type of coprocessor designed for
performing the mathematics involved in digital signal processing.
DTMF Dual-Tone Multi-Frequency – The system used by touch-tone telephones to encode keys. DTMF assigns a specific frequency (consisting of two separate tones) to each key, so each key can be easily identified.
E1 The European format for digital transmission. E1 carries 32 channels of 64 kbps, with 2 channels reserved for signaling and control.
G.711 An ITU-T standard for audio companding, primarily used to encode analog telephony signals into digital signals. Defines a-Law and mu-Law companding.
G.729 An audio data compression algorithm for voice that compresses voice audio to 8 kbps. Music or tones, such as DTMF or fax tones, cannot be transported reliably with this codec.
GP GrandPrix– The name of PIKA's high-level API providing an abstraction of call signalling (analog, digital, and IP) and call control for SIP, ISDN, CAS, and Analog with Caller-ID.
HMP Host-based Media Processing– Software that performs media processing tasks on general-purpose host hardware.
HSP Host Signal Processing – The use of general-purpose host hardware to perform signal processing functions, alleviating the need for special DSP hardware.
Hz Hertz – The unit of frequency.
IP Internet Protocol – The networking protocol used on the Internet.
ISDN Integrated Services Digital Network – A type of circuit-switched telephone network system, designed to allow digital transmission of voice and data over ordinary telephone copper wires, ISDN is a set of protocols for establishing and breaking circuit-switched connections, and for advanced call features for the user.
ISO International Standards Organization – International Organization for Standardization. ITU-T International Telecommunication Union - Telecommunications – An international
organization established to standardize and regulate international telecommunications.
IVR Interactive Voice Response – A automated telephony application that uses recorded messages and DTMF key tones to interact with a caller.
LBO Line Build Out – A power level that is set based on the distance from the board to the T1/E1 switch. If the board is close by, the board requires less power and the line build out value is lower; if the card is far away, the card requires more power and the line build out value is higher. The T1 service provider determines this setting.
LGPL Lesser General Public License – A license allowing for unrestricted redistribution of software. LSB Least Significant Bit –
MAC address Media Access Control address – a unique 48-bit serial number. MF/R1 An ITU-T standard for call progress signaling tones.
MSB Most Significant Bit –
mu-Law A standard analog signal companding algorithm used in digital communications systems of the North American and Japanese digital hierarchies to modify the dynamic range of an audio analog
NAT Network Address Translation – Rewrites the source and/or destination addresses of IP packets as they pass through a router or firewall. Most systems use NAT to enable multiple hosts on a private network to access the Internet using a single public IP address.
NIC Network Interface Card – A piece of computer hardware allowing computers to communicate over a network. Every network card has a unique 48-bit serial number called a Media Access Control (MAC) address.
OS Operating System – Software that controls the operation of a computer.
PDF Portable Document Format – Aproprietary file format developed by Adobe Systems for representing two-dimensional documents in a device-independent and resolution-independent format.
PCM Pulse Code Modulation – A method of encoding an audio signal in a digital format.
POTS Plain Ordinary Telephone Service – The service available from analog telephones prior to the introduction of digital telephone exchanges.
PSTN Public Switched Telephone Network – The network of the world's public, circuit-switched telephone networks.
RPORT Specified in RFC 3581, the rport feature allows a client to request the server send the response back to the source IP address and port from which the request originated.
RTCP Real-time Transport Control Protocol – Defined in RFC 3550 to provide out-of-band control information for an RTP flow.
RTP Real-time Transport Protocol – Defined in RFC 1889 to provide end-to-end network transport functions suitable for applications transmitting real-time data, such as audio.
SDK Software Development Kit – A set of development tools that allows a software engineer to create applications for a certain software package, software framework, or hardware platform.
SIP Session Initiated Protocol – A protocol for initiating, modifying, and terminating an interactive user session that involves multimedia elements such as voice.
Span Acts as the system interface to the TDM network.
State Machine A finite state machine (FSM) or finite automaton is a model of behavior composed of states, transitions, and actions.
T1 A standard in telecommunications in North America and Japan to transmit voice and data between devices.
TDM Time Division Multiplexing – A method for sending multiple digital signals along a single telecommunications transmission path.
telco Telephone Company – A supplier of telephone services and primary rate lines. UA User Agent – The client application used with a network protocol, such as SIP.
10
UDP User Datagram Protocol – Programs on networked computers can send short messages known as datagrams to one another. UDP does not provide the reliability and ordering guarantees. Datagrams may arrive out of order or go missing without notice.
VoIP Voice over IP – The routing of voice conversations over the Internet or any other IP-based network.
WAVE Header The WAVE header provides the following information as a header for a .WAV file: Offset-Length-Contents
0-4 bytes - "RIFF"
4-4 bytes - file length - 8 (i.e., the length of the file minus the length of the first two entries) 8-4 bytes - WAVE Header "WAVE"
12-4 bytes - Format header "fmt"
16-4 bytes - 0x00000010 The length of the fmt header data (16 bytes) 20-2 bytes - 0x0001 The format type: 1 means PCM
22-2 bytes - The number of channels: 1 for mono, 2 for stereo 24-4 bytes - Sampling rate (for example 8000)
28-4 bytes - Bytes per second // sample rate * block align 32-2 bytes - Block alignment
34-2 bytes - Bits per sample, either 8 or 16 36-4 bytes - Date header 'data'
40-4 bytes - Date length in bytes 44-Data length - Audio data
XML eXtensible Markup Language – a W3C-recommended general purpose markup language that supports a wide variety of applications. It is a simplified subset of Standard Generalized Markup Language (SGML). It is used to facilitate data sharing across different information systems.
Index
A
Advanced Topics 125 API Principles 11 Application Development 11 Application Logging 22 Assumed Knowledge 4 Audio Flags 95B
Basic Call Transfer 60 Basic Functions 15
Building a High Level API Application 116 Building the High Level API Libraries in Linux 139 Building the High Level API Libraries in Windows 137
Bypassing the High Level API to Make Low-level Function Calls 140
C
Call Analysis 33
Call Initiation Examples 44 Call Processing 25 Call Transfer 60
Called and Calling Number Formats 37 Collect Call Blocking 47
Collecting DTMF Digits From a Channel 88 Conferencing 110
Configuring a Channel 125 Contacting PIKA Technologies 2 Copyright Information 1
D
Design Guidelines 13
Detecting Speech on a Channel 94 Detecting Tones on a Channel 93
Distributing a High Level API Application 121
Distributing a PIKA High Level API Application on Linux 122 Distributing a PIKA High Level API Application on Windows 121 Dynamic User Management 126