Table of Contents
Copyright Information
1
Contacting PIKA Technologies
2
Release Overview
3
Related Documentation
5
System Requirements
6
Hardware Requirements 6 Software Requirements 6Release Content
8
HMP 3.0.0 8API Compatibility Changes 12
Configuration Changes 28
Behavioural Changes 29
HMP 2.8.11 Maintenance Release 33
High Level API 33
Low Level API 35
HMP 2.8.0 GA Release 38
High Level API 38
Low Level API 45
Limitations
56
High Level API 62
1
Copyright Information
COPYRIGHTS
Copyright 2010 PIKA Technologies Inc.
TRADEMARKS
PIKA is a registered trademark of PIKA Technologies Inc. All other trademarks, product names and company names and/or logos cited herein, if any, are the property of their respective holders.
DISCLAIMER
This document is provided to you for informational purposes only and is believed to be accurate as of the date of its publication, and is subject to change without notice. PIKA Technologies Inc. assumes no responsibility for any errors or omissions in this document and shall have no obligation to you as a result of having made this document available to you or based upon the information it contains.
2
Contacting PIKA Technologies
Customer Care
For support issues, phone or e-mail our Customer Care department at the following: Tel: +1-613-591-1555
FAX: +1-613-591-9295 Email: [email protected]
International Headquarters
PIKA Technologies Inc. 535 Legget Drive, Suite 400 Ottawa, Ontario, Canada K2K 3B8 Tel: +1-613-591-1555 FAX: +1-613-591-9295 Email: [email protected]
Internet
Visit our website at www.pikatechnologies.com for the latest news, product announcements, downloads, online community, documentation updates, and contact information.
3
Release Overview
The PIKA HMP SDK is composed of the Low Level API (previously referred to as AllOnHost) and the High Level API (GrandPrix).
The Low Level API provides a powerful and flexible set of hardware and software features for developing a wide range of PC-based telecom and voice-based applications. The SDK harnesses the increasing power of contemporary computers and performs all media processing on the host processor. This allows for simpler system architectures with significantly reduced cost of ownership in comparison with traditional CTI solutions.
The High Level API is a collection of high-level function calls that make it easier and faster to develop user applications based on PIKA hardware and software technologies. It removes most of the in-depth knowledge required to develop user applications that make calls (Digital, Analog or VoIP); play and record files; and perform media analysis, such as digit and tone detection, call progress, and call analysis. At the same time, it has the flexibility to co-exist with the low-level API.
The PIKA HMP software is designed to perform optimally for small to medium density telephony-based applications running on an off-the-shelf PC. Any combination of VoIP, digital, and analog channels are supported.
This document describes the features, bug fixes, and known issues with the HMP 3.0 release.
This release greatly enhances the SIP capabilities of the HMP SDK using the Radvision SIP stack. Server and registrar functions, as well as enhanced user agent functionality are provided. In addition to existing operating system support, Windows 7 (32-bit and 64-bit), Windows 2008 SP2 (64-bit) and Linux 64-bit operating systems are now supported. Other new high level API features as well as various bug fixes are included.
This release combines the low level and high level API products into a single installer package.
The PIKA MonteCarlo Software License Agreement constitutes a legal agreement ("License Agreement")
or printed documentation distributed by PIKA. The full version of the agreement appears as you install the software.
4
Related Documentation
The following documents are related to the PIKA HMP Release Notes. These documents are linked together and constitute the complete set of documentation for the HMP SDK. All PIKA documentation is available on the PIKA website: http://www.pikatechnologies.com/english/View.asp?x=977.
Software
PIKA HMP Getting Started Guide: This guide provides a step-by-step procedure for installing, uninstalling, and building the HMP SDK.
PIKA HMP High Level API Configuration Guide: This guide describes how to use the GPConfig tool, how configuration files are set up, and how to modify the configuration files.
PIKA HMP High Level API Programmer's Guide: This guide describes how to use the high level API to create typical voice processing applications based on the high level API. These applications include VoIP, digital, and analog call processing, and voice processing such as record, play, DTMF detection, tone detection and generation, call progress, and call analysis.
PIKA HMP High Level API Reference: This guide provides a reference for all function calls, error codes, event codes, type codes, and other important information for the high level API.
PIKA HMP Low Level API Programmer's Guide: This guide describes how to use the low level API to create typical voice processing applications.
PIKA HMP Low Level API Reference: This guide provides a reference for all function calls, error codes, event codes, type codes, and other important information for the low level API.
Hardware
PIKA Hardware Manual – T1/E1 PCIe Board PIKA Hardware Manual – Analog Trunk FXO Board PIKA Hardware Manual – Analog Station FXS Board
PIKA Hardware Manual – Analog Station FXS Expansion Module PIKA Hardware Manual – Analog Trunk FXO Expansion Module
5
System Requirements
This section describes the hardware and software requirements for HMP.
5.1
Hardware Requirements
Hardware requirements for board-based systems depend on the number of ports, signal processing functions performed, and size and complexity of the user application. The following table describes the host computer system configurations capable of running an IVR application for 120 and 400 channels.
Category Host configuration supporting 120 channels of IVR
Host configuration supporting 400 channels of IVR
CPU Intel Pentium IV Prescott, 3.0 GHz, 1 MB L2 cache
AMD Athlon 64 3000+, 1.8 GHz, 1 MB L2 cache
Intel Dual Xeon, 2x3.0 GHz, 2 MB L2 cache AMD Athlon 64 X2 (dual core), 2x2.0 GHz, 1 MB L2 cache
Memory 512 MB, 1 MB for Windows 7/Server 2008 1024 MB Hard Drive 80 GB 80 GB
CD-ROM (if installed from CD) (if installed from CD) Network 100 BaseT Interface card 1000 BaseT Interface card Analog FXO
and FXS Boards (PCIe)
One x1, x4, x8 or x16 PCIe slot One x1, x4, x8 or x16 PCIe slot
Digital T1/E1 Board (PCIe)
One x1, x4, x8 or x16 PCIe slot One x1, x4, x8 or x16 PCIe slot
5.2
Software Requirements
The software requirements for board-based systems for this release are:
Category Required Software
Operating System
Windows:
• Windows XP w/Service pack 3 (32-bit version)
• Windows 2003 Server w/Service Pack 1 or later (32-bit version) • Windows 7 32-bit and 64-bit
• Windows Server 2008 SP2 - 64-bit Linux:
• Most 32-bit and 64-bit Linux distributions except RedHat/CentOS 4 (2.6 SMP kernel versions 2.6.18 to 2.6.34)
Development Environment
Windows:
• Microsoft Visual Studio 2005 SP1 w/ Windows 2003 R2 Platform SDK
• Microsoft Visual Studio 2005 SP1 w/Windows SDK for Windows 7 and .NET Framework 4 Linux: • GCC 3.4, 4.1, 4.3, 4.4, 4.5 • Kernel versions 2.6.18 to 2.6.34 Programming Languages C/C++ Other Software
Adobe Acrobat Reader 6 or later (for PDF documentation)
Notes
For maximum system performance and stability, ensure that up-to-date video and motherboard drivers are installed.
6
Release Content
The following sections list the features provided in all releases of HMP: • HMP 3.0.0 (pg. 8) • HMP 2.8.11 Maintenance Release (pg. 33) • HMP 2.8.0 GA Release (pg. 38)
6.1
HMP 3.0.0
New Features
• SIP features: • Registration client • Registrar support• User authentication support • Dynamic user support
• Enhanced Response Message Support • Enhanced Re-Invite Message Support • Enhanced Call Hold Support
• Enhanced Dial By Name • Enhanced PRACK • Keep-Alive support
• Support for messages OPTIONS, SUBSCRIBE, NOTIFY, REFER, INFO • Message customization
• New operating systems: • Windows 7 32-bit and 64-bit • Windows 2008 SP2 64-bit • Linux 64-bit
• As part of supporting new Windows operating systems, PIKA drivers are now signed • High level API configuration file condensed into a single file (pikagp.cfg)
• Enhanced call transfer support for SIP and ISDN channels • Enhanced high level API conferencing support
• Support in the high level API for broadcasting on a channel
• Clocking improvements for analog cards, requires FPGA version 2053 or higher on the Analog FXO and Analog FXS boards
• RTP enhancements • Improved V.34 stability
• HMP SDK includes the high level and low level APIs in a single installer package
Exclusions:
• RedHat/CentOS 4 is no longer supported
• The Digital T1/E1 PCI card is no longer supported. The PCIe version should be used instead.
Patches Included
Patch Description
2.8.12 • Settings phone gains through AoH does not work. (8506)
• Name server values that are commented out may be used if they are listed in the resolv.conf file before the desired sever values. (8527)
• Losing low-level dialogs when issuing a 4xx response after sending a 180 RINGING (8479) 2.8.13 • BYE requests are not authenticated when requested by SIP proxy (8569)
• Pikalm does not properly report server side errors (8519)
• BYE requests are not authenticated when requested by SIP proxy (8599) 2.8.14 • ICMP responses are generated for incoming RTP audio packets (8554)
• SIP user agents failed to re-register (8686)
• Failure to authenticate multiple requests in one session (8687) • An error is not reported if a fax is not properly received (8559) • Starting the RTP receive socket may cause a segfault (8722)
2.8.15 • Different Call-Id values are used for REGISTER requests for the same user agent (8725)
• The 'expires' tag in the 'Contact' header of the 200 OK response for a REGISTER request is ignored (8726) • Unable to configure call progress tone detection (8728)
• Rejecting an incoming SIP call may result in an unhandled exception (8772)
2.8.16 • GrandPrix SIP Should Populate the 'forwardedFrom' String When Certain SIP Headers Are Received (8854)
• Meetme sample application has a buffering bug when recording the name of a new conference member (8876)
• System will go into a restart mode and all programs will close (8562) • CAS is sending a multi-frame alarm to the Telco's switch (8698)
2.8.17 • Add Called Party Subaddress information and Calling Party Subaddress information to the PKX_TCallInfo structure. (8828)
• Application crash in the pikahmpapi.dll (8949) 2.8.18 • NOTIFY request payload not processed (8775)
• No more GrandPrix events are generated after a DNS query is sent to an invalid IP address. (8890) • The RTP receiver fails to start after the INVITE request is sent out if RFC 2833 has been configured.
(9115)
• An exception is generated when an ACK message is recieved with an null branch value. (8774) • An exception is generated when a type A DNS query response is received that contains multiple IP
addresses (9103)
2.8.20 • DTMF Caller ID fails in India (9181) • HSP media processing can stop (9216)
• Registration Request Error Handling Problem (9157) 2.8.21 • DNS SRV Query Response Not Processed Properly
• R2 - reduction of T3 timer (9280)
Bug Fixes
High Level API
• Blind Transfer Attempts Allowed on Terminated SIP Dialog (7231) • GP SIP need to access the URI request line (7864)
• Blind Transfer Attempts Allowed on Terminated SIP Dialog (8297) • Failed to authenticate multiple request in one session (8687)
• One Way Audio on Outgoing SIP Calls to Cisco Call Manager (8379)
• RTP Channel Not Released After an Early Call PKX_CALL_Drop With 'rport' (8108)
• GrandPrix Needs To Start Caching Authentications Credentials Like Other Comercial SIP UA's (8729)
• SIP - INVITE with authetication information not being accepted by SIP-SKYPE gateway (9021) • SIP SDP Payload value set incorrectly (8862)
• GP - GrandPrix Ignores 'expires' Tag In 'Contact' Header of 200 OK Registration Response (8789) • Rejecting A SIP Invite With No SDP Causes Unhandled Exception in GP (8822)
• Reduce possibility of SIP Glare (8521)
• GP does not allow users to prioritize codecs when establishing a SIP call (8884) • Fax tone is not triggering a CONNECT event (8102)
• Detection when RTP streams stop (6763)
• Missing access to the RTP Handle in bypass mode (4609) • Support bypass for RTP switch connections (6768) • Connect Event is showing up late or unexpectedly (6977)
• GP should fail PKX_CALL_Answer function call if the call has been answered (6476) • SIP Not Using Same Call-ID On Re-Registration Causing Issues With Avaya (8790)
• PKH_GET_LogMasks causes core dump after PKX_SYSTEM_Open and PKX_SYSTEM_Close (8432) • gptest creates an invalid wav file with no warning if wave is misspelled (8513)
• FXO channels allow user to call the PKX_CALL_Drop after the INCOMING event is raised (6780) • Recording cannot be started if beep playing is enabled (7672)
• Call progress stops detecting pattern after detecting ringback (7163) • PKX_CALL_Make crashes if structures are initialized to all zeros (9025)
Low Level API
• Fax failed on HMP platform due to detecting noise as a valid signal (7957) • pikalm should show when eval licenses have expired (5244)
• pikalm won't allow MAC on dongles to be selected (7102)
• pikalm should display the 4 free fax licenses if a board is present in the system (5909) • Out of band tones are lost when trunks are added to conferences (8299)
• Audio issues over FXO - reverb/echo (8229)
• Segmentation fault when sending a normal setup message (7722) • Speech detector fails to detect initial speech (8165)
• Identify Pika as the generator of certain messages in system log (7614)
• Defaults for PKH_TSystemConfig.recordBufferSize and PKH_TRecordConfig.bufferSize should be the same size (5665)
• The PNP layer in the windows drivers fills the debug logs with chatter (7866) • RTP and RTCP port number should be specified separately (8184)
• EC debug logging needs configuration parameters to make it more useful (8167) • PKH_SYSTEM_Detect can return "dummy" boards (8958)
• Adding "maxcpus" option under Linux causes HSP apps to freeze (7212)
• Parameters that limit the number internel HSP objects for conference members, maximum number of boards, media streams, and processors should be configurable (8189)
• Various clocking issues with analog and digital boards have been resolved • Various V.34 fax issues have been resolved
• pikalm does not warn you if you enter more licenses then you are entitled to (3294) • Trial licenses don't expire in real time (8468)
• Directory permissions cause problems when installing Linux licenses when not running as root (7596)
6.1.1
API Compatibility Changes
High Level API Architectural Changes
Changes
Miscellaneous • PKX_SYSTEM_MAX_NUMBER_OF_GROUPS increased to 64 from 32
• PKX_TCallCause changed from an enumerated type to PK_UINT
• Associated values are now constants
• "DROP" removed from constant name, for example, PKX_CALL_DROP_CAUSE_NORMAL changed to
PKX_CALL_CAUSE_NORMAL
• PKX_AUDIO_ENCODING_RAW replaces PKX_AUDIO_ENCODING_LINEAR_8BIT • PKX_TGroupConfig now includes per group data • PKX_TCallInfo
• new substructures callingSubaddress and calledSubaddress • new field redirectedTo
• PKX_TChannelBypassInfo
• new channel specific fields • PKX_TFaxConfig
• loggingMask field is deprecated • PKX_CHANNEL_HalfDuplexConnect
• new parameter settings (type PKX_TChannelConnectSettings)
New Constants • PKX_CALL_MODIFY_REJECT_DECLINED
• PKX_CALL_MODIFY_REJECT_UNAUTHORIZED • PKX_CALL_MODIFY_REJECT_RESOURCE_UNAVAILABLE • PKX_CALL_MODIFY_REJECT_SERVICE_UNAVAILABLE • PKX_CALL_MODIFY_REJECT_BUSY • PKX_CALL_MODIFY_REJECT_NOT_ACCEPTABLE • PKX_CALL_MODIFY_REJECT_NOT_IMPLEMENTED
6
Deprecated Constants: • PKX_CONF_TYPE_SUMMATION • PKX_CONF_TYPE_SAMPLING • PKX_AUDIO_ENCODING_LINEAR_8BIT • PKX_AUDIO_ENCODING_ADPCM_3BIT • PKX_AUDIO_SAMPLING_RATE_4KHZ • PKX_AUDIO_SAMPLING_RATE_11KHZ • PKX_ERROR_CHANNEL_INVALID_CAS_DETECTION_TONE_INDEX • PKX_ERROR_CHANNEL_INVALID_AOB_DETECTION_TONE_INDEX • PKX_ERROR_PRODUCT_NOT_SUPPORTED • PKX_ERROR_PRODUCT_ALREADY_LOADED • PKX_ERROR_PRODUCT_NOT_LOADED • PKX_ERROR_PRODUCT_UNABLE_TO_RELOAD • PKX_ERROR_GROUP_MISSING_PRODUCT • PKX_ERROR_GROUP_INVALID_PRODUCT • PKX_ERROR_PRODUCT_INVALID_LIBRARY • PKX_ERROR_PRODUCT_UNABLE_TO_FIND_LIBRARY • PKX_ERROR_PRODUCT_UNABLE_TO_LOAD • PKX_ERROR_PRODUCT_UNABLE_TO_START Removed/Deprecated Functions: • PKX_CHANNEL_Reset • PKX_CALL_Reject • PKX_CALL_RedirectAccept
6
New Errors (refer to
Behavioural Changes below for information about which functions return these errors)
• PKX_ERROR_OBJECT_IN_WRONG_STATE • PKX_ERROR_CHANNEL_INVALID_RECORD_GAIN • PKX_ERROR_CHANNEL_INVALID_RECORD_AGC_ATTACK_RATE • PKX_ERROR_CHANNEL_INVALID_RECORD_AGC_DECAY_RATE • PKX_ERROR_CHANNEL_INVALID_RECORD_AGC_MAX_GAIN • PKX_ERROR_CHANNEL_INVALID_RECORD_AGC_MIN_GAIN • PKX_ERROR_CHANNEL_INVALID_RECORD_AGC_SPEECH_THRESHOLD • PKX_ERROR_CHANNEL_INVALID_RECORD_AGC_TARGET_POWER • PKX_ERROR_CHANNEL_INVALID_RECORD_VAD_ACTIVATION_DEBOUN CE_TIME • PKX_ERROR_CHANNEL_INVALID_RECORD_VAD_ACTIVATION_THRESH OLD • PKX_ERROR_CHANNEL_INVALID_RECORD_VAD_DEACTIVATION_DEBO UNCE_TIME • PKX_ERROR_CHANNEL_INVALID_RECORD_VAD_DEACTIVATION_THRE SHOLD • PKX_ERROR_CHANNEL_INVALID_RECORD_VAD_PRE_SPEECH_BUFFER_ SIZE
6
New Errors (refer to
Behavioural Changes below for information about which functions return these errors)
• PKX_ERROR_CHANNEL_INVALID_PLAY_GAIN • PKX_ERROR_CHANNEL_INVALID_PLAY_CLIPPING_RATIO • PKX_ERROR_CHANNEL_INVALID_PLAY_AGC_ATTACK_RATE • PKX_ERROR_CHANNEL_INVALID_PLAY_AGC_DECAY_RATE • PKX_ERROR_CHANNEL_INVALID_PLAY_AGC_MAX_GAIN • PKX_ERROR_CHANNEL_INVALID_PLAY_AGC_MIN_GAIN • PKX_ERROR_CHANNEL_INVALID_PLAY_AGC_SPEECH_THRESHOLD • PKX_ERROR_CHANNEL_INVALID_RECORD_AGC_TARGET_POWER • PKX_ERROR_CHANNEL_FAILED_TO_UPDATE_SETTINGS • PKX_ERROR_CHANNEL_RTP_BYPASS_FAILED_CODEC_MISMATCH • PKX_ERROR_CHANNEL_RTP_BYPASS_FAILED_PAYLOAD_MISMATCH • PKX_ERROR_CHANNEL_RTP_BYPASS_FAILED_DIGIT_TYPE_MISMATCH • PKX_ERROR_CHANNEL_RTP_BYPASS_FAILED_COMPAND_MODE_MISMA TCH • PKX_ERROR_CHANNEL_ECHO_CANCEL_FAILED_TO_ENABLE • PKX_ERROR_CHANNEL_ECHO_CANCEL_FAILED_TO_DISABLE High Level API Media Processing Enhancements Changes
Miscellaneous • PKX_TMediaFuncId - values are deprecated:
• PKX_MEDIA_CALL_PROGRESS • PKX_MEDIA_CALL_ANALYSIS • PKX_TCallSettings
• new substructure PKX_TCallAnalysisSettings replaces individual fields related to call analysis • PKX_TChannelSettings
• new substructures to control media functions on channels
New Constants: • PKX_CHANNEL_GAIN_MIN • PKX_CHANNEL_GAIN_MIN • PKX_CHANNEL_GAIN_MIN • PKX_CHANNEL_GAIN_MIN • PKX_CHANNEL_GAIN_DEFAULT • PKX_CHANNEL_GAIN_MAX • PKX_PLAY_CONTROL_SPEED_MIN • PKX_PLAY_CONTROL_SPEED_NOMINAL • PKX_PLAY_CONTROL_SPEED_MAX • PKX_PLAY_CONTROL_VOLUME_MIN • PKX_PLAY_CONTROL_VOLUME_NOMINAL • PKX_PLAY_CONTROL_VOLUME_MAX New Enumerated Type: • PKX_TCallAnalysisAMDetectReason New Structures: • PKX_TCallAnalysisSettings • PKX_TChannelConnectSettings New Functions: • PKX_CHANNEL_EnableCallProgressDetection • PKX_CHANNEL_DisableCallProgressDetection • PKX_CALL_EnableCallAnalysis • PKX_CALL_DisableCallAnalysis • PKX_CHANNEL_SetMWI • PKX_CHANNEL_GetMWI
New Events: • PKX_EVENT_CHANNEL_MWI
• PKX_EVENT_CHANNEL_CALL_PROGRESS_START • PKX_EVENT_CHANNEL_CALL_PROGRESS_END • PKX_EVENT_CHANNEL_RECORD_BEEP_FAILED • PKX_EVENT_CALL_ANALYSIS_ABORTED • PKX_EVENT_CHANNEL_MEDIA_LOST • PKX_EVENT_CHANNEL_MEDIA_RECOVERED
6
Changed Events:
• PKX_EVENT_CALL_ANALYSIS_DETECTED_ANSWERING_MACHINE
• p1 now returns the call analysis reason (PKX_TCallAnalysisAMDetectReason)
High Level API Conferencing Enhancements
Changes
Miscellaneous • PKX_TConfType changed from an enumrated type to PK_UINT
• Associated values are now constants
• Value PKX_CONF_TYPE_BASIC replaces PKX_CONF_TYPE_SUMMATION • Value PKX_CONF_TYPE_ADVANCED replaces PKX_CONF_TYPE_SAMPLING • PKX_TConfMemberType has new values:
• PKX_CONF_MEMBER_TYPE_TALKONLY • PKX_CONF_MEMBER_TYPE_CUSTOMER • PKX_CONF_MEMBER_TYPE_AGENT • PKX_CONF_MEMBER_TYPE_COACH • PKX_TConfConfig
• new field maxNumberOfActiveTalkers
New Structures: • PKX_TConfMemberBypassInfo New Functions: • PKX_CONF_GetMemberBypassInfo
New Events: • PKX_EVENT_CONF_ACTIVE_TALKER_START
• PKX_EVENT_CONF_ACTIVE_TALKER_END
New Errors: • PKX_ERROR_CONF_INVALID_MAX_ACTIVE_TALKERS
• PKX_ERROR_CONF_TOO_MANY_MEMBERS_OF_TYPE
• PKX_ERROR_CONF_CANNOT_CHANGE_MEMBER_ROLES
High Level API Hold/Retrieve Changes New Enumerated Types: • PKX_TCallHoldMode • PKX_TCallCombinedHoldState
6
New Functions: • PKX_CALL_HoldAccept • PKX_CALL_HoldReject • PKX_CALL_ResumeAccept • PKX_CALL_ResumeReject • PKX_CALL_HoldRequest • PKX_CALL_ResumeRequest
New Events: • PKX_EVENT_CALL_HOLD_REQUESTED
• PKX_EVENT_CALL_RESUME_REQUESTED
• PKX_EVENT_CALL_HOLD_REJECTED
• PKX_EVENT_CALL_RESUME_REJECTED
Changed Events: • PKX_EVENT_CALL_HELD
• p1 now returns the combined call hold state (PKX_TCallCombinedHoldState) • PKX_EVENT_CALL_RESUMED
• p1 now returns the combined call hold state (PKX_TCallCombinedHoldState)
New Errors: • PKX_ERROR_CALL_INVALID_CHANNEL_SPECIFIED
• PKX_ERROR_CALL_NO_CHANNEL_SPECIFIED
High Level API Call Transfer
Enhancements
Changes
Miscellaneous • PKX_CALL_TransferReject
• new parameter cause (type PKX_TCallCause) • PKX_TCallState
• new value PKX_CALL_STATE_DEST_CHANGED
New Functions: • PKX_CALL_DestChangedAccept
• PKX_CALL_DestChangedAccept
• PKX_CALL_RedirectAccept • PKX_CALL_RedirectReject
New Events: • PKX_EVENT_CALL_DEST_CHANGED
• PKX_EVENT_CALL_PROVISIONAL_FORWARDED
• PKX_EVENT_CALL_PROVISIONAL_QUEUED
• PKX_EVENT_CALL_INCOMING_REDIRECT
• PKX_EVENT_CALL_REDIRECT_REJECTED
New Errors: • PKX_ERROR_CALL_TRANSFER_DECLINED
High Level API SIP Dynamic Users
Changes
New Constants: • PKX_USER_MAX_NAME_LENGTH
• PKX_USER_MAX_PSWD_LENGTH • PKX_USER_MAX_DOMAIN_LENGTH • PKX_USER_MAX_ADDR_LENGTH • PKX_USER_MAX_CODEC_SET_LENGTH • PKX_USER_MAX_DTMF_TRANSPORT_LENGTH • PKX_USER_MAX_AUTO_ACCEPT_REJECT_LENGTH New Enumerated Types: • PKX_TUserConfigFlag • PKX_TUserProvRespType
New Structures: • PKX_TUserConfig New Functions: • PKX_USER_Create
• PKX_USER_Destroy • PKX_USER_GetConfig • PKX_USER_SetConfig • PKX_USER_GetHandle • PKX_USER_GetHandleByName • PKX_USER_GetHandleByNameAndDomain • PKX_USER_GetState
6
New Errors:
• PKX_ERROR_USER_SECTION_NOT_FOUND
• PKX_ERROR_USER_NOT_DEFINED
• PKX_ERROR_USER_NOT_MODIFIABLE
High Level API SIP User Registration Changes New Enumerated Types: • PKX_TUserRegBindingState
New Structures: • PKX_TUserRegBinding
• PKX_TUserRegBindingEx
New Functions: • PKX_USER_AcceptRegistration
• PKX_USER_GetAllRegInfo • PKX_USER_GetRegInfo
• PKX_USER_RejectRegistration
• PKX_USER_StartRegistration
• PKX_USER_StopRegistration
New Events: • PKX_EVENT_USER_REGISTRATION_ATTEMPT_IN_PROG
• PKX_EVENT_USER_REGISTRATION_ACTIVE • PKX_EVENT_USER_REGISTRATION_FAILED • PKX_EVENT_USER_REGISTRATION_REJECTED • PKX_EVENT_USER_REGISTRATION_REDIRECTED • PKX_EVENT_USER_REGISTRATION_EXPIRED • PKX_EVENT_USER_REGISTRATION_REMOVED • PKX_EVENT_USER_REGISTRATION_AUTH_IN_PROG • PKX_EVENT_USER_REGISTRATION_AUTH_SUCCEEDED
New Errors: • PKX_ERROR_USER_ALREADY_CREATED
• PKX_ERROR_USER_BINDING_UNAVAILABLE
High Level API SIP Message Customization Changes New Constants: • PKX_MESSAGE_ELEMID_SIP_REQUEST_LINE_METHOD • PKX_MESSAGE_ELEMID_SIP_REQUEST_LINE_URI • PKX_MESSAGE_ELEMID_SIP_RESPONSE_LINE_STATUS_CODE field • PKX_MESSAGE_ELEMID_SIP_RESPONSE_LINE_STATUS_STRING • PKX_MESSAGE_ELEMID_SIP_HEADER_ALLOW • PKX_MESSAGE_ELEMID_SIP_HEADER_ALLOW_EVENTS • PKX_MESSAGE_ELEMID_SIP_HEADER_AUTHENTICATION • PKX_MESSAGE_ELEMID_SIP_HEADER_AUTHENTICATION_INFO • PKX_MESSAGE_ELEMID_SIP_HEADER_AUTHORIZATION • PKX_MESSAGE_ELEMID_SIP_HEADER_CALLID • PKX_MESSAGE_ELEMID_SIP_HEADER_CONTACT • PKX_MESSAGE_ELEMID_SIP_HEADER_CONTENT_DISPOSITION • PKX_MESSAGE_ELEMID_SIP_HEADER_CONTENT_LENGTH • PKX_MESSAGE_ELEMID_SIP_HEADER_CONTENT_TYPE • PKX_MESSAGE_ELEMID_SIP_HEADER_CSEQ • PKX_MESSAGE_ELEMID_SIP_HEADER_DATE • PKX_MESSAGE_ELEMID_SIP_HEADER_EVENT
6
New Constants: • PKX_MESSAGE_ELEMID_SIP_HEADER_EXPIRES • PKX_MESSAGE_ELEMID_SIP_HEADER_FROM • PKX_MESSAGE_ELEMID_SIP_HEADER_MINSE • PKX_MESSAGE_ELEMID_SIP_HEADER_OTHER • PKX_MESSAGE_ELEMID_SIP_HEADER_RACK • PKX_MESSAGE_ELEMID_SIP_HEADER_REFER_TO • PKX_MESSAGE_ELEMID_SIP_HEADER_REFERRED_BY • PKX_MESSAGE_ELEMID_SIP_HEADER_REPLACES • PKX_MESSAGE_ELEMID_SIP_HEADER_RSEQ • PKX_MESSAGE_ELEMID_SIP_HEADER_RETRY_AFTER • PKX_MESSAGE_ELEMID_SIP_HEADER_ROUTE_HOP • PKX_MESSAGE_ELEMID_SIP_HEADER_SESSION_EXPIRES • PKX_MESSAGE_ELEMID_SIP_HEADER_SUBSCRIPTION_STATE • PKX_MESSAGE_ELEMID_SIP_HEADER_TO • PKX_MESSAGE_ELEMID_SIP_HEADER_VIA • PKX_MESSAGE_ELEMID_SIP_MESSAGE_BODY New Structures: • PKX_GROUP_MessageHandler • PKX_TMessageElement • PKX_TUserMessageInfo New Functions: • PKX_GROUP_MessageAlloc • PKX_GROUP_MessageFree • PKX_GROUP_MessageSend • PKX_GROUP_SetConfig • PKX_CALL_MessageAlloc • PKX_CALL_MessageFree • PKX_CALL_MessageSend • PKX_MESSAGE_GetElement • PKX_MESSAGE_ModifyElement • PKX_MESSAGE_RemoveElement • PKX_MESSAGE_GetCorrelatorId
6
New Events: • PKX_EVENT_GROUP_INCOMING_MESSAGE • PKX_EVENT_GROUP_MESSAGE_SENT • PKX_EVENT_GROUP_MESSAGE_CORRELATORID_FREED • PKX_EVENT_GROUP_TASK_FAILED • PKX_EVENT_CALL_INCOMING_MESSAGE • PKX_EVENT_CALL_MESSAGE_SENT • PKX_EVENT_CALL_MESSAGE_CORRELATORID_FREED
New Errors: • PKX_ERROR_MESSAGE_ALLOC_FAILURE
• PKX_ERROR_MESSAGE_GET_FAILURE • PKX_ERROR_MESSAGE_MODIFY_FAILURE • PKX_ERROR_MESSAGE_REMOVE_FAILURE • PKX_ERROR_MESSAGE_SYNTAX_FAILURE • PKX_ERROR_MESSAGE_SEND_FAILURE • PKX_ERROR_MESSAGE_ELEMENT_NOT_FOUND Low Level API RTP Enhancements Changes Deprecated: • PKH_EVENT_R2_TONE_SEND_START • Structure PKH_TRTPConfig: • New field encode.diffServ • PKH_TRTPConfig:
• new fields: diffServ, suppressDigits, localPort, remotePort
New Constants: • PKH_RTP_DECODE_TIMEOUT_DEFAULT • PKH_RTP_ENCODE_DIFF_SERV_DEFAULT • PKH_RTP_ENCODE_DIFF_SERV_EF Changed Events: • PKH_EVENT_TRUNK_RX_ON, PKH_EVENT_TRUNK_RING_OFF, PKH_EVENT_PHONE_RX_ON, PKH_EVENT_PHONE_RING_OFF: • new parameter p0 to indicate time of the signal
New Events: • PKH_EVENT_RTP_BYPASS_BUFFER_OVERFLOW
• PKH_EVENT_RTP_BYPASS_BUFFER_OVERFLOW_CLEARED
New Errors: • PKH_ERROR_RTP_STATUS_NOT_ENABLED changed to
PKH_ERROR_RTP_STATUS_NOT_AVAILABLE • PKH_ERROR_RTP_CANNOT_CHANGE_DIFF_SERV_WHEN_ACTIVE • PKH_ERROR_RTP_CANNOT_CHANGE_ENCODE_CODEC_TYPE_WHEN_ACTIVE • PKH_ERROR_RTP_CANNOT_CHANGE_DECODE_CODEC_TYPE_WHEN_ACTIVE • PKH_ERROR_RTP_CANNOT_ENABLE_RTCP_TRANSMIT_WHEN_ACTIVE • PKH_ERROR_RTP_CANNOT_ENABLE_RTCP_RECEIVE_WHEN_ACTIVE • PKH_ERROR_RTP_CANNOT_DISABLE_RTCP_TRANSMIT_WHEN_ACTIVE • PKH_ERROR_RTP_CANNOT_DISABLE_RTCP_RECEIVE_WHEN_ACTIVE Low Level API Echo Logging Enhancements Changes Miscellaneous • PKH_TLogConfig
• new fields statsInterval, ec.maxNumberOfStoredSessions, ec.maxNumberOfActiveSessions
Deprecated: • PKH_LOG_API_MEDIA_BRIDGE
• PKH_LOG_OBJECT_TYPE_MEDIA_BRIDGE
New Constants: • PKH_LOG_STATS_LOGGING_INTERVAL_MIN • PKH_LOG_STATS_LOGGING_INTERVAL_DEFAULT • PKH_LOG_STATS_LOGGING_INTERVAL_MAX • PKH_LOG_EC_MAX_NUMBER_STORED_MIN • PKH_LOG_EC_MAX_NUMBER_STORED_DEFAULT • PKH_LOG_EC_MAX_NUMBER_STORED_MAX • PKH_LOG_EC_MAX_NUMBER_ACTIVE_MIN • PKH_LOG_EC_MAX_NUMBER_ACTIVE_DEFAULT • PKH_LOG_EC_MAX_NUMBER_ACTIVE_MAX • PKH_LOG_SYSTEM_RUNTIME_MIPS_STATISTICS • PKH_LOG_SYSTEM_RUNTIME_MIPS_POOL_STATISTICS • PKH_LOG_RTP_ECHO_CANCELLATION
New Errors: • PKH_ERROR_BASE_LOG
• PKH_ERROR_LOG_INVALID_STATS_INTERVAL
• PKH_ERROR_LOG_INVALID_EC_NUMBER_OF_ACTIVE_SESSIONS • PKH_ERROR_LOG_INVALID_EC_NUMBER_OF_STORED_SESSIONS
Low Level API
Miscellaneous
Changes
Miscellaneous • PKH_RECORD_BUFFER_SIZE_DEFAULT
• Value changed from 2048 to 1920
• PKH_FAX_LASTERROR_PADDING_MISMATCH • Value changed from 74 to 16
• PKH_TFaxConfig
• new field echoAutoSuppressMode • TDigitalGatewayDiag
• field loopback renamed to boardDiag • PKH_SIP_MESSAGE_Free
• sipMessageHdl changed from an outgoing parameter to an incoming parameter • PKH_SYSTEM_MAX_NUMBER_OF_BOARDS
• Value changed from 16 to 24 • PKH_TSystemDeviceList
• new field moduleId • PKH_TSystemConfig
• new field maxNumberOfConferees
New Constants: • PKH_FAX_LASTERROR_UNEXPECTED_DCN • PKH_FAX_LASTERROR_USER_ABORT • PKH_FAX_LASTERROR_NO_PAGES_EXCHANGED • PKH_ERROR_SYSTEM_INVALID_CONFIGURATION_CHANGE • PKH_ERROR_SPAN_INVALID_LOOPBACK • PKH_SYSTEM_MAX_NUM_CONFEREES_MIN • PKH_SYSTEM_MAX_NUM_CONFEREES_DEFAULT • PKH_SYSTEM_MAX_NUM_CONFEREES_MAX
6
6.1.2
Configuration Changes
General
• Configuration files pikagp.cfg and pikagp_aoh.cfg are combined into a single file, pikagp.cfg • country and callp are now defined for each group instead of in the root configuration file • codecs - setting used is based on the order of the values listed
• dtmf_mode - setting used is based on the order of the values listed • dtmf.signalduration is deprecated (affects SIP groups)
• transfer key is deprecated (affects SIP, trunk and CAS groups)
• default key is deprecated (affects SIP user agents). Defaults for users are now configured against the group. • group key is deprecated (affects all channel types)
• nat_enabled is deprecated (affects SIP user agents)
• proxy.registration is renamed to registration which can be specified only for a user agent (affects SIP user agents) • It now has values of disabled, inbound, or outbound
• reinvites is removed, replaced with registrar functionality (affects SIP user agents) • host_name is replaced with domain (affects SIP groups)
• userid_override deprecated (affects SIP groups) • statslogginginterval replaced with aoh.statsinterval
• calleridmode renamed to featuresmode (affects phone and trunk groups)
• reliable_provisional_response replaced by reliable_provisional_response_incoming and reliable_provisional_response_outgoing (affects SIP groups)
• session_timers has new values (affects SIP user agents) • rpid and rpid-network-id are deprecated
• Many SIP keys can be defined at either the group level or user agent level. Refer to SIP Protocol Group for more information.
New Keys
• auto_accept (ISDN PRI groups, SIP groups and user agents) • auto_drop (SIP groups and user agents)
• auto_reject (SIP groups and user agents)
• dscp_rtp (SIP groups) • dscp_sip (SIP groups) • icmp (SIP groups)
• inc_reg_processing (SIP groups) • inc_reg_min_expiry (SIP groups) • inc_reg_max_expiry (SIP groups) • route (SIP groups)
• server_port (SIP groups) • ua_port (SIP groups)
• priserving (ISDN PRI groups) • maintprotdisc (ISDN PRI groups) • waitforrestart (ISDN PRI groups)
• aoh.files replaces files key previously defined in pikagp_aoh.cfg • aoh.level replaces level key previously defined in pikagp_aoh.cfg • aoh.size replaces size key previously defined in pikagp_aoh.cfg • aoh.cref replaces cref key previously defined in pikagp_aoh.cfg • aoh.ec.maxnumberofstoredsessions
• aoh.ec.maxnumberofactivesessions
6.1.3
Behavioural Changes
• PKX_CALL_TransferBridge no longer places the first call on hold. This must be done, if needed, explicitly by the application, by calling PKX_CALL_HoldRequest. Refer to Call Transfer for more information.
• Incoming SIP Invite messages are now authenticated if the user has configured authentication of incoming Registration messages.
• In SIP messages, the “from” field can be NULL, but if it is non-NULL, it MUST contain at least a username (which may or may not be valid). An IP address or hostname by itself is not allowed.
• Incoming SIP calls will no longer fail as "not found here" if no user is configured, since the call will be offered using the group default.
• A separate DNS lookup is no longer done for data in the “to” field of SIP messages in order to detect a hostname.
• PKX_CALL_MediaBridge will fail with PKX_ERROR_CALL_IN_WRONG_STATE if both calls are not in the connected state
• The following functions may be executed in any channel state (no longer requires IN_USE and
PKX_ERROR_CHANNEL_IN_WRONG_STATE is no longer returned) • PKX_CHANNEL_GetNumberOfDigits
• PKX_CHANNEL_GetDigits
• PKX_CHANNEL_ClearDigits
• PKX_CHANNEL_Record will no longer fail if the beep fails to play
• PKX_CHANNEL_Record and PKX_CHANNEL_RecordFile - silence detection will only be enabled if needed • PKX_CHANNEL_Play and PKX_CHANNEL_PlayFile - silence detection will only be enabled if needed
• PKX_CONF_Create - low-level conference resources are now seized immediately, allowing bypass information to be retrieved as soon as this function returns.
• Channel broadcasting support changes the behavior of switch connections, allowing ones that were prevented before. • Switch connections involving out-of-band digits involve the following changes (change went into 2.8 MR):
• If an out-of-band digit is received, that digit is immediately replicated inband. Previously, no inband digit was injected
• The SIP INFO event is not sent to the remote party until the received inband digit completes (in order to specify the proper digit duration). Peviously, the SIP INFO message was sent immediately.
• Only one virtual group is created in GrandPrix because groups are no longer defined in the configuration file.
• One of the object.system bits is now used for object locking and due to the large amount of object locking logs, users may no longer want to set object.system=0xffffffff. The object locking bit is not set when level=debug.
• SIP logs for the new Radvision protocol stack are located in the GP logs files, whereas log files for the OSIP protocol stack are located in the AoH log files.
• PKX_SYSTEM_Open: • now returns: • PKX_ERROR_USER_SECTION_NOT_FOUND • PKX_ERROR_LIBRARY_INVALID_FILE • PKX_ERROR_LIBRARY_UNABLE_TO_FIND • PKX_ERROR_LIBRARY_UNABLE_TO_LOAD • no longer returns: • PKX_ERROR_GROUP_INVALID_PRODUCT • PKX_ERROR_GROUP_MISSING_PRODUCT • PKX_ERROR_PRODUCT_ALREADY_LOADED • PKX_ERROR_PRODUCT_INVALID_LIBRARY
6
• PKX_ERROR_PRODUCT_NOT_SUPPORTED
• PKX_ERROR_PRODUCT_UNABLE_TO_FIND_LIBRARY • PKX_ERROR_PRODUCT_UNABLE_TO_LOAD
• PKX_SYSTEM_Close causes active SIP calls to be dropped. GP sends either a BYE (for connected calls), a CANCEL (for proceeding calls), or reject(for alerting calls) messages.
• PKX_SYSTEM_Reload • no longer returns: • PKX_ERROR_PRODUCT_NOT_SUPPORTED • PKX_ERROR_PRODUCT_UNABLE_TO_RELOAD • PKX_ERROR_PRODUCT_NOT_LOADED • PKX_SYSTEM_Start • now returns: • PKX_ERROR_LIBRARY_UNABLE_TO_START
• The Collection Group concept has been removed from the configuration files resulting in an increase in the number of groups presented in PKX_SYSTEM_GetConfig. PKX_SYSTEM_MAX_NUMBER_OF_GROUPS has increased from 32 to 64. Applications must now manage multiple groups that could route calls to the same location using the same protocol.
• PKX_CHANNEL_EnableToneDetection and PKX_CHANNEL_DisableToneDetection no longer return: • PKX_ERROR_CHANNEL_INVALID_CAS_DETECTION_TONE_INDEX • PKX_ERROR_CHANNEL_INVALID_AOB_DETECTION_TONE_INDEX • PKX_CHANNEL_PlayTone • now returns: • PKX_ERROR_OUT_OF_MEMORY • no longer returns: • PKX_ERROR_SYSTEM_NO_GENERATION_TONES_DEFINED
• PKX_CHANNEL_PlayTonePattern no longer returns:
• PKX_ERROR_SYSTEM_NO_GENERATION_TONE_PATTERNS_DEFINED
• The following functions now return PKX_ERROR_OUT_OF_MEMORY: • PKX_CHANNEL_RingingStart
• PKX_CHANNEL_PlayTone
• PKX_CHANNEL_PlayDigits
• PKX_CHANNEL_HalfDuplexConnect
• PKX_CHANNEL_FaxAddDocument • PKX_CALL_Answer • PKX_CALL_Info • PKX_CALL_Make • PKX_CALL_Transfer • PKX_CALL_TransferBlind • PKX_CONF_Create • PKX_CONF_AddMember • PKX_CONF_ChangeMember
• PKX_CHANNEL_GetBypassInfo now returns:
• PKX_ERROR_CHANNEL_BYPASS_INFO_NOT_READY
• The following functions no longer return PKX_ERROR_PRODUCT_NOT_SUPPORTED: • PKX_CHANNEL_GetConfig • PKX_CHANNEL_FaxAddDocument • PKX_CHANNEL_FaxGetDefaultConfig • PKX_CHANNEL_FaxReceive • PKX_CHANNEL_FaxSend • PKX_CHANNEL_FaxClearDocument
• PKX_CHANNEL_SetConfig now returns:
• PKX_ERROR_CHANNEL_ECHO_CANCEL_FAILED_TO_ENABLE
• PKX_ERROR_CHANNEL_ECHO_CANCEL_FAILED_TO_DISABLE
• PKX_CONF_Destroy no longer returns PKX_ERROR_PRODUCT_NOT_LOADED • PKX_CONF_AddMember: • no longer returns: • PKX_ERROR_CHANNEL_INVALID_REMOTE_HANDLE • PKX_ERROR_PRODUCT_NOT_LOADED • now returns: • PKX_ERROR_CONF_INVALID_CHANNEL • PKX_ERROR_OUT_OF_MEMORY
• PKX_CONF_RemoveMember and PKX_CONF_ChangeMember no longer return: • PKX_ERROR_CHANNEL_INVALID_REMOTE_HANDLE
• PKX_ERROR_PRODUCT_NOT_LOADED
• PKH_RTP_SetConfig now returns:
• PKH_ERROR_RTP_CANNOT_CHANGE_DIFF_SERV_WHEN_ACTIVE • PK_API PKH_RTP_SendNamedEvent now returns:
• PKH_ERROR_RTP_NOT_STARTED • PKH_RTP_GetStatus
• now returns PKH_ERROR_RTP_STATUS_NOT_AVAILABLE • no longer returns PKH_ERROR_RTP_STATUS_NOT_ENABLED • PKH_FAX_Stop now returns PKH_ERROR_FAX_ALREADY_STOPPED
6.2
HMP 2.8.11 Maintenance Release
6.2.1
High Level API
Patches Included
Patch Description
2.8.1 • Recording cannot be started if beep option is enabled (7669)
2.8.3 • Race condition with outgoing SIP Cancel message from PKX_CALL_Drop leaves the RTP channels in a unusable state (7643)
• Allow multiple MSN numbers for BRI groups (7681)
2.8.6 • Installer displays an error when registering with the RPM database on OpenSUSE 11.2 (7727) • The 'pause' and 'resume' options of the PKX_CHANNEL_PlayControl API stop working if the
commands are used after a 'skip' command is issued on an already paused play operation. (7744) • Reliable Provisional Response Handling causes a crash (7792)
• Update Method Not Accepted After Early Media Response (7815) • FXO gain configuration settings do not work (7862)
• GP may negotiate RFC2833 mode even if the user agent has not been configure to use it (7892)
2.8.7 • SIP Stops Generating DTMF Tone Events to the Application (8023) • Grandprix registration does not recover from a loss of ethernet (8050)
• RTP Channel Not Released After an Early Call PKX_CALL_Drop With 'rport' (8079) • Underflow event is generated if skip used multiple times while in pause mode (8082)
• PKX_CHANNEL_Stop does not clear the buffer list added by PKX_CHANNEL_PlayAddData (8083) • Fax tone is not triggering a CONNECT event if call analysis is disabled and a fax machine answers a call
initiated using an FXO channel (8102)
2.8.10 Application trap after the DLL that loaded PIKA GP libraries is unloaded (8284)
Bug Fixes
• SIP call stuck in BYE loop after receiving message 503 - Service Unavailable (8282)
• When an IP channel configured for out-of-band DTMF (rfc2833) is added to a conference, tones on the line are not injected into the conference (7309)
• If SIP UA A is connected to SIP UA B and with both configured to use RFC2833, if A sends a DTMF digit, B does not receive it. (8152)
• Out of band digits are not injected if the RTP channel is connected to a virtual channel (8151)
• After a SIP call that negotiates RFC2833 digits, subsequent SIP calls that do not use RFC2833 digits incorrectly use RFC2833 digits (8141)
API Changes
Feature Description
Increase the maximum number of simultaneously open files in Windows
New constants: • PKX_ERROR_SYSTEM_INVALID_MAX_FILE_HANDLES_VAL UE • PKX_ERROR_SYSTEM_UNABLE_TO_SET_MAX_FILE_HAND LES
Configuration Changes
• new key statslogginginterval in section [general] of pikagp_aoh.cfg
• new key maxfilehandles in section [general] of pikagp_aoh.cfg • the default value for the key clock1 is span1
Behavioural Changes
• The default answer supervision used to be 'speech'. It is now 'default' which includes 'speech', 'sit', and 'fax'.
• GPConfig now sets the default for the clock1 key to span1 in the default digital board configuration if a second span is present and has corresponding licenses.
6.2.2
Low Level API
New Features
• Software support for the Analog FXO expansion module
• The Analog Trunk FXO and Analog Station FXS expansion modules can be connected to either the Analog Station FXS board or the Analog Trunk FXO board
• Requires an FPGA upgrade to add either an FXO or FXS module to analog boards purchased before March 2010. The minimum required version is 2032.
• AoH can be installed and run with SELinux enabled on RedHat-based distributions (RH 4/5, CentOS 4/5, Fedora) • Performance improvements for quad-core PCs
• Maximum number of conferences increased from 900 to 4000
Patches Included
Patch Number
Description
2.8.4 • Q.SIG/PSS1 support added as a variant of ISDN • T1/E1 Span loopback support
2.8.6 • Installer displays an error when registering with the RPM database on OpenSUSE 11.2 (7744) • Application crashed upon OPTION message arrival due to a missing Call-Id header (7800) • Fax failed due to problems detecting the end of a modem signal (7888)
• PRACK message deletes INVITE dialog (7944)
2.8.7 • DTMF not detected during dial tone (7975)
• Deadlock when destroying queue and an attached object at same time (8034) • HMP Loses Track of the Call/Transaction ID after Audio Recording (8051) 2.8.9 • Echo cancellation issues (7817)
Bug Fixes
• Cannot load and unload AoH in Linux (6271) • Speech detector fails to detect initial speech (7067)
• fax_sample1 - PKH_ERROR_FAX_INVALID_HEADER_MODE received attempting a fax transmission (7916) • Media processing on a physical input mediastream can cause a segmentation fault (7281)
• Segmentation fault when sending a normal ISDN setup message (7631)
API Compatibility Changes
• C# users need to modify the definition of the structure PKH_TISDNChannelIdIE to adapt to the API changes listed below.
API Changes
Feature API Changes
Q.SIG support
Structure changes:
• PKH_TISDNChannelIdIE
• channelNumber field was changed from PK_U8 to PK_U16 - this may result in a size warning at compile time
• channelNumberExt0 field was changed from PK_BOOL to PK_U8 - setting this field to
PK_FALSE or PK_TRUE will still result in the expected behavior
New constants:
• PKH_ISDN_SWITCH_TYPE_QSIG • PKH_ISDN_COUNTRY_CODE_QSIG
T1/E1 Span loopback support New functions: • PKH_SPAN_GetDiag • PKH_SPAN_SetDiag New Constants: • PKH_SPAN_LOOPBACK_DISABLED • PKH_SPAN_LP3_PAYLOAD_LOOPBACK • PKH_SPAN_LP4_LOCAL_DIGITAL_LOOPBACK_1 • PKH_SPAN_LP5_REMOTE_LOOPBACK • PKH_SPAN_LP6_LOCAL_DIGITAL_LOOPBACK_2 • PKH_SPAN_LP7_ANALOG_LOOPBACK RTP Bypass fixes New constants: • PKH_EVENT_RTP_BYPASS_BUFFER_OVERFLOW • PKH_EVENT_RTP_BYPASS_BUFFER_OVERFLOW_CLEARED Log changes New constants:
• PKH_LOG_SYSTEM_RUNTIME_MIPS_STATISTICS • PKH_LOG_SYSTEM_RUNTIME_MIPS_POOL_STATISTICS Configure hsp system statistics logging interval Structure changes: • PKH_TSystemConfig
• new field statsLoggingInterval
New constants:
PKH_SYSTEM_STATS_LOGGING_INTERVAL_MIN PKH_SYSTEM_STATS_LOGGING_INTERVAL_DEFAULT PKH_SYSTEM_STATS_LOGGING_INTERVAL_MAX
Miscellaneous • New parameter p2 added to event PKH_EVENT_TG_TONE_PLAYED to indicate the number of tones left in list after the current tone is stopped
• PKH_CSTK_MAX_CALL_FILTERS increased from 5 to 8
Behavioural Changes
• Logs enabled by setting PKH_LOG_SYSTEM_RUNTIME_WARNINGS will only be generated if a counter value has changed since it was last logged
Documentation Changes
• New document Analog Trunk FXO Expansion Module Hardware Manual • Programmer's Guide Updates
• New section Application Development > Basic Functions > System Start Up > Initializing the Physical Devices > Digital Boards > Digital T1/E1 Board Initialization > Clear Channel
• New section Application Development > Basic Functions > System Start Up > Initializing the Physical Devices > Digital Boards > Digital T1/E1 Board Initialization > Span Initialization > Span Diagnostics
• New section Application Development > Basic Functions > Call Processing > ISDN Call Processing > Q.SIG • Updates to Application Development > Design Guidelines > PIKA HSP Media Processing Throttling
6.3
HMP 2.8.0 GA Release
6.3.1
High Level API
New Features
• Fax diagnostics
• Fax header font control (beta feature, supported on Windows only) • Configuration file reloading
• VoIP debug logging
• New log entry to indicate which SIP call id is associated with the specified GP call handle • New log entry to clearly identify the SIP message received
• During call setup, new log entries specifying call information such as codec used, DTMF mode selected, rport status, remote RTP IP address and port number
• Support for BRI overlap dialing
• New log files pikagp_cref.txt, pikahmp_cref.txt
• Contains handles of all objects created during initialization to assist in interpreting the main log files
• Log generation is controlled by setting the cref parameter to yes (default) in the [logs] section of the configuration files pikagp.cfg and pikagp_aoh.cfg
Patches Included
Patch Number Description
2.7.9 • Channel lockup when a media operations is attempted at the same time the remote end drops the call
• NULL character in the callerID data can cause callerID to fail 2.7.10 • Echo cancellation audio quality
• Change taillength default value to 64 ms to match the AoH default value • GrandPrix does not strip Route correctly in SIP messages
• GrandPrix does not stop EC if an attempt to add a non-VoIP channel to a conference fails. If a second attempt is made to add the same channel to another conference, the
PKH_ERROR_EC_ALREADY_STARTED error is returned.
2.7.11 • The event parameters for PKX_EVENT_CHANNEL_DONE_FAX are incorrect when sending a fax to a line that has no fax machine connected.
• PKX_CHANNEL_FaxGetStatus fails due to an invalid parameter, encoding, when a fax session starts and does not successfully negotiate with another fax device.
2.7.12 • GP drops the call after a SIT tone is detected while the call is in a connected state.
• PKX_CHANNEL_Stop was aborting call analysis and call progress, preventing the tones required from being cleaned up
2.7.13 • PKX_CALL_TransferReject always returns a PKX_EVENT_CALL_TASK_FAILED event • PKX_CALL_TransferAccept is failing
• Sending a NOTIFY with certain headers and parameters missing results in a '400 Invalid SIP body' response from certain stack implementations. These implementations do not terminate the blind transfer request by sending a BYE message which results in the call remaining up.
2.7.14 • Caller ID fails as a result of modem bit errors. 2.7.15 • Segmentation fault with HMP ISDN
2.7.16 • SIP - 180 Ringing retransmissions result in invalid ACK responses
• A 481 response is sent to an UPDATE message after a REFER has been issued
2.7.18 • SIP calls are failing with no audio on the remote end due to an incorrectly built "Request-Line" header of the ACK message
• An incorrect timer is destroyed when a NOTIFY message is received 2.7.19 • Channel Down event on a Below Threshold event (the start of an lc term).
Bug Fixes
• Various channel lockup issues
• VoIP channel media stream compand mode should be set based on country code (4316)
• PKX_CHANNEL_Reset is not resetting the channel properly if it is called during call disconnect (5727) • PKX_CHANNEL_Stop terminates call progress (5921)
• PKX_EVENT_CALL_EARLY_MEDIA events are generated multiple times if multiple session progress messages are received (5928)
• GP SIP - Transfer is not terminated properly - BYE message is not acknowledged (5987) • Random dropped fxo calls on two sites (Cadence defaults ? ) (6073)
• GPTEST: After successfully sending a fax we get drop cause=noanswer when call terminates (6014) • error: failed to reset terminal message when shutting down gptest (6021)
• ISDN/PRI number type IE isn't retrieved properly (6188)
• When speech detection is enabled and then recording is started, every time speech is detected, GP generates two
PKX_EVENT_CHANNEL_SPEECH_ON events followed by two PKX_EVENT_CHANNEL_SPEECH_OFF
events (6204)
• SIP - 486 Busy Here should be returned if no RTP channels are available (6359) • Echo Tail Length not being updated in GP (6503)
• GP SIP channel does not go back to READY state after rejecting INVITE (6505) • SIP Timeout timers not destroyed properly (6552)
• GP User Agent Registration - memory leak (6558)
• Windows shortcut to documentation does not link directly to the documentation page on the web site (6570) • Taillength option is missing for FXS, FXO, and BRI channels (6655)
• Low level call object fails to be destroyed after the FXO transfer is terminated (6670) • PKX_CHANNEL_FaxGetStatus reports an error when it shouldn't (6696)
• Handle leak when making SIP calls (6698)
• When sending a Fax with an invalid format, no error is reported (6745) • FSK fails if GP begins to parse incomplete caller identification data (6746) • GP fails to report a call task failure when answering SIP calls (6758) • Failure to detect dial tone during PKX_CHANNEL_PlayDigits raises the
PKX_EVENT_CHANNEL_STOPPED_TONE_GENERATION event rather than a
PKX_EVENT_CHANNEL_TASK_FAILED event (6802)
• GP does not answer incoming SIP call when PKH_RTPSetConfig fails (6881) • Gptest seg faults if the user specified a drop cause parameter with no value (6962) • Call Transfer: NOTIFY message receives response a 400 Invalid SIP body (6965)
• GP SIP: TASK_FAILED event doesn't show the cause string in the error message (6968) • GP crashes when SIP INVITE message is received with an empty line (7016)
• GPtest crashes when exiting if recording is active on a channel (7155)
• Caller Id detection is not started if trunk lines comes out of power-fail transfer on the appliance (7338) • DTMF digits not recognized by some IVR systems (7349)
• Channel lockup because the CHANNEL_READY event is not generated after the FXO call is disconnected (7381) • Can't reliably send a fax over an analog channel (7542)
• Segmentation fault when exiting gptest with an active fax channel (7550)
New APIs
Feature API Change Notes
Configuration file reloading New function • PKX_SYSTEM_Reload Errors: • PKX_ERROR_PRODUCT_UNABLE_TO_RELOAD
6
Fax Header Font Control In structure PKX_TFaxDocParms • fontFace • fontSize • fontAttributes • headerMargin • headerMode New Constants • PKX_FAX_HEADER_DEFAULT • PKX_FAX_FONT_FACE_COURIER_NEW • PKX_FAX_FONT_FACE_TIMES_NEW_ROMAN • PKX_FAX_FONT_FACE_ARIAL • PKX_FAX_FONT_FACE_GARAMOND • PKX_FAX_FONT_FACE_GEORGIA • PKX_FAX_FONT_FACE_TAHOMA • PKX_FAX_FONT_FACE_COMIC_SANS_MS • PKX_FAX_FONT_SIZE_MIN • PKX_FAX_FONT_SIZE_DEFAULT • PKX_FAX_FONT_SIZE_MAX • PKX_FAX_FONT_ATTR_NONE • PKX_FAX_FONT_ATTR_ITALIC • PKX_FAX_FONT_ATTR_UNDERSCORE • PKX_FAX_FONT_ATTR_STRIKEOUT • PKX_FAX_FONT_ATTR_BOLD • PKX_FAX_HEADER_MARGIN_DEFAULT • PKX_FAX_HEADER_MARGIN_MAX • PKX_FAX_HEADER_MODE_OVERLAY Fax diagnostics In structure PKX_TFaxStatus
• New field debugFileNameIn • New field debugFileNameOut • New field logFileName
Miscellaneous In structure PKX_TCallInfo: • New field interworkingPresent
Errors:
• PKX_ERROR_SIP_UNEXPECTED_MESSAGE
• PKX_ERROR_SIP_UNEXPECTED_MESSAGE
Behavioural Changes
• On FXO channels it is no longer possible to use the PKX_CALL_Drop function in response to a
PKX_EVENT_GROUP_INCOMING_CALL. The previous version of software incorrectly allowed its use. • The PKX_CHANNEL_Reset function now automatically returns PK_SUCCESS
• PKX_CHANNEL_Stop will no longer stop the call progress operation.
• A PKX_EVENT_CALL_TASK_FAILED event will be sent to the application whenever a failure occurs while answering the SIP call. If GP fails to send a 200 OK message, it attempts to send an "Internal Server Error" message to terminate the call. However, if GP succeeded to send the 200 OK message, but failed to setup RTP streaming, the call will be terminated as soon as GP receives the ACK from the remote side. A BYE will be sent to gracefully terminate the call in this case.
• In previous releases, GrandPrix is inconsistent in the way call failures are reported, and in some cases, fails to report the failure at all. In one case, a PKX_EVENT_CHANNEL_TASK_FAILED is reported instead of a
PKX_EVENT_CALL_TASK_FAILED event. • SDK 2.7.10 release (or prior) behaviour:
• PKX_EVENT_CALL_TASK_FAILED is reported if channel is down when attempting to make an outgoing call.
• PKX_EVENT_CALL_DISCONNECTED with a cause of “rejected” follows a
PKX_EVENT_CHANNEL_TASK_FAILED event if GP fails to dial after detecting dial tone. The same event sequence occurs when transferring a call.
• NO failure event or disconnected event is reported if GP fails to dial when not waiting for dial tone. Eventually, call is terminated with a disconnected event with a “noanswer” cause. However, if the same error happens when transferring an FXO call, a PKX_EVENT_CALL_DISCONNECTED event with a cause of “rejected” follows a PKX_EVENT_CHANNEL_TASK_FAILED event.
• PKX_EVENT_CALL_DISCONNECTED with a cause of “normal” follows a
PKX_EVENT_CALL_TASK_FAILED event if GP fails to send 200 OK message when answering a call. • PKX_EVENT_CALL_DISCONNECTED with a cause of “normal” is generated when GP fails to answer a
call because of issues with RTP. NO PKX_EVENT_CALL_TASK_FAILED is sent to the application. • 2.8.0 release:
• The PKX_EVENT_CALL_TASK_FAILED event will no longer be used to indicate that a call has been terminated, it only indicates that an error occurred while processing the application request. A
PKX_EVENT_CALL_DISCONNECTED event with a “failed” cause will indicate that the call was terminated due to an error. Below find the 2.8.0 version of the failures listed above.
• PKX_EVENT_CALL_DISCONNECTED with a cause of “failed” is generated when attempting to make a call on a channel that is not READY (or if memory issues were encountered, etc). NO
PKX_EVENT_CALL_TASK_FAILED will be generated in this case.
• A PKX_EVENT_CALL_TASK_FAILED event followed by a PKX_EVENT_CALL_DISCONNECTED
event with a cause of “failed” will be reported if GP fails to dial after detecting dial tone. Same sequence will be reported if GP fails to dial after detecting a dial tone or when transferring a call.
• A PKX_EVENT_CALL_TASK_FAILED event followed by a PKX_EVENT_CALL_DISCONNECTED
event with a cause of “failed” will be reported if GP fails to answer a SIP call.
• Note that in some cases a PKX_EVENT_CALL_TASK_FAILED will not be followed by a
PKX_EVENT_CALL_DISCONNECTED if the call does not need to be terminated. For example, if the application decides to issue a PKX_CALL_Answer for the second time when GP is already waiting for the RTP packets to generate the CONNECTED event.
• The PKX_CHANNEL_PlayDigits function allows the specification of 'w' (or 'W') in the dial string. This character indicates that the media function should wait until incoming dial-tone arrives on the audio channel before continuing with the rest of the dial string. The maximum duration that the media function will wait for dial tone is 8 seconds. If this period expires, a PKX_EVENT_CHANNEL_TASK_FAILED event will be raised with the parameter p1 set to the error code PKX_ERROR_CHANNEL_NO_DIAL_TONE_DETECTED. If a different error occurred, for example, attempting to dial digits when the audio path is connected to another channel, the
PKX_EVENT_CHANNEL_TASK_FAILED event will be raised and the appropriate error code will be placed in parameter p1. This behavior replaces the old method of raising the
PKX_EVENT_CHANNEL_STOPPED_TONE_GENERATION event when these two errors occur.
• PKX_CALL_EarlyMedia no longer adjusts that state of the call or automatically raises the ACCEPTED event. To use this function to indicate call progress tones OTHER than dialtone, PKX_CALL_Accept MUST be called first. The PKX_CALL_Accept function is now required to change the call state to the appropriate one before indicating that in-band tones are present.
Configuration Changes
• The gpconfig "update" option has been deprecated
• In inctonegen.cfg, DTMF levels have been increased by 8.5 dB (the amplitude parameters for each [dtmf_<x>] group were changed).
• New configuration parameter for logs section in both pikagp.cfg and pikagp_aoh.cfg: • cref
• New configuration parameters for phone resources (pikagp_aoh.cfg) • calleridassist
• New configuration parameters for ISDN BRI resources (pikagp_aoh.cfg) • addsendingcomplete • maxdigitsconnrq • default_tei • general_calls_behavior • in_calls_behavior • local_number • out_calls_behavior • servicetype
• HSP logging is now off by default, regardless of the value of the level key in the [logs] section in the file
pikagp_aoh.cfg. To enable HSP logs, in pikagp_aoh.cfg under the [logs] section, add hsp=0xffffffff after the entry for the level key.
6.3.2
Low Level API
New Features
• Improved audio quality, including enhancements to echo cancellation • Software support for Analog FXS expansion module
• Requires an FPGA upgrade to add a module to existing boards • Fax diagnostics
• Improvements to clock synchronization in multi-board systems
• To take advantage of these improvements, analog boards must be running FPGA version 2032 or higher. Digital PCIe boards must be running FPGA version 1011 or higher. The FPGA version may be retrieved using aohtest. Refer to Board Testing in the Getting Started Guide.
• The FPGA for the Digital PCI board is not affected by these changes. • These changes will not affect systems with only a single board. • More robust system shutdown
• DTMF talk-off improvements
• Fax header font control (beta feature, supported on Windows only) • Support for BRI overlap send and receive
• Support for default TEI configuration for BRI • New log file pikahmp_cref.txt
• Contains handles of all objects created during initialization to assist in interpreting the main log files • Log generation is controlled by setting cref to PK_TRUE in PKH_TLogConfig (default is PK_FALSE)
Patches Included
Patch Number
Description
2.7.9 • Calls fail when receiving V.34 fax from a particular FaxLab profile, Samsung CLX-3175FN. Fixes an issue introduced in 2.7.8.
2.7.10 • Audio quality improvements
• E1 HMP card -- D-channel comes up only on an incoming call 2.7.11 • RTP - RFC2833 Named Event does not set the Marker bit correctly
2.7.12 • ISDN stack automatically sends a RELEASE when it receives a STATUS with BadIE
• HMP FXO Analog board and Appliance FXO module driver is not compatible with new hardware 2.7.13 • Echo cancellation improvements
2.7.14 • Add a callerId mode to the fsk modem to improve the sample timing algorithm
• Command Sequence number in originating calls from HMP do not follow RFC3261, section 12.2 • INVITE SIP messages are dropped by if the display string is an empty string formatted as consecutive
quotes (``)
2.7.15 • Segmentation fault with ISDN
• HMP does not allow odd numbered remote RTP ports 2.7.16 • "180 Ringing" retransmissions result in invalid ACK responses
• Responses with an empty realm field in the Authorization header are rejected during registration
• When RFC2833 is enabled, DTMF talk-off will cause good audio to get suppressed and the far side will play a DTMF digit instead of the audio.
2.7.17 • Clocking issues cause Faxes over BRI to fail
• Memory leak - Memory is not being released after a 4xx response message is sent following a 100 Trying response
• Kernel crash due to multiple timer shutdowns
2.7.18 • Under heavy load conditions, floating-Point unavailable exceptions were causing the Appliance to crash. • Corrupted audio
2.7.20 • When a fax is sent between two PIKA systems using FXO boards connected via VoIP gateways, the sending side reports a successful fax but the receiving side reports a failure.
• An incoming INVITE message is incorrectly matched to an existing call setup dialog causing HMP to incorrectly raise an event indicating that a REINVITE message has been received for the existing call. 2.7.21 • Kernel panic on system shutdown
• A flood of unhandled PKH_EVENT_HDLC can use up all the memory, causing a segmentation fault • SIP BYE message is not complete
Bug Fixes
• Tone Generation - POTS dial tone not defined as continuous (3459) • It can take over 5 seconds for clocks to synchronize on PCIe board (4460) • PRACK is not being sent (5292)
• Calling PKH_TG_PlayDTMF with an " & " in the dial string results in return value of "PKH_ERROR_TG_INVALID_TONE_AMPLITUDE" value is instead of
"PKH_ERROR_TG_INVALID_DTMF_STRING" (5569)
• BRI - CSTK must filter incoming call requests based on called party number (PMP-related feature) (5957) • BRI PMP span state does not report correctly all the time (6022)
• BRI PMP calling does odd things, some times crashes (6023) • Cannot use PKH_HDLC with BRI channels (6038)
• BRI - CSTK Overlapped Receiving will not work as expected (6103)
• BRI - CSTK bearer capability structure settings may not be defined correctly (6104) • Pika HMP makefiles are not in Linux format (6107)
• BRI - Default CSTK network config must be PMP, not PP (6137)
• Attempting to run a second application using AoH WITH logging enabled results in a segfault on Linux (6501) • Quad-core system gets blue screen while running Fax server application (6658)
• Valgrind report PKH_TBoardInfo Info (6691)
• Fax image file with mixing up of legal pages and letter pages cannot be properly received by Canon 3170 machine (6741)
• TLogConfig.baseFolder parameter does not seem to work anymore (6742)
• GSM encoding isn't working when using record and play functions in aohtest (6878) • No CONTACT in SIP header in 1XX messages (6940)
• Fax issue when transmitting a document with an invalid MH encoding (6986) • Fax API: Setting the modemType to v27 does not work (7089)
• Rtp log files are not written to the proper folder (7090)
• SIP INVITE messages containing an "Alert-Info" header are dropped (7177)
• In Windows, drivers can get closed by Virus Scanner which may result in a BSOD (7345)
Non-Upward Compatible API Changes
• The default echo cancellation value is now 64 ms • The maximum echo tail length is now 128 ms
• PKH_TRUNK_LOF is now 0x040 (was incorrectly defined as 0x020)
• PKH_TRUNK_RX_OVERLOAD is now 0x080 (was incorrectly defined as 0x040)
New APIs
Feature API Changes
Audio quality/Echo cancellation
In structure PKH_TPlayConfig • New field clippingRatio In structure PKH_TRTPConfig
• New field clippingRatio
New Constants: • PKH_PLAY_CLIPPING_RATIO_MAX 0 • PKH_PLAY_CLIPPING_RATIO_DEFAULT • PKH_PLAY_CLIPPING_RATIO_MIN • PKH_RTP_CLIPPING_RATIO_MIN • PKH_RTP_CLIPPING_RATIO_DEFAULT • PKH_RTP_CLIPPING_RATIO_MAX Errors: • PKH_ERROR_PLAY_INVALID_CLIPPING_RATIO • PKH_ERROR_RTP_INVALID_DECODE_CODEC_CLIPPING_RATIO