The eurovoice Host Media Processing SDK provides a set of functions that may be called by the user application to receive and make SIP calls, start and stop audio (RTP) sessions, play and record audio files, send and receive DTMF tones and more.

 

The SDK provides an asynchronous architecture – this allows an application to support multiple simultaneous phone calls with one thread of execution.  When an HMP function is called from the user application it returns immediately.  The eurovoice HMP layer then performs the necessary low level functions and raises a completion event when done.  Additionally, the eurovoice HMP layer raises an event to the user application when an external telephony event, such as an incoming call, occurs.

 

eurovoice HMP architecture

 

The SDK includes a C or C++ compatible library which can be called by applications developed in Microsoft’s Visual Studio Integrated Development Environment or by other compatible compilers.  Visual Studio 2012 or later is recommended.

 

Developers wishing to use a higher level development environment, such as C# or VB.NET, or who do not want to develop low-level asynchronous event callback type applications are recommended to use eurovoice’s high-level application development toolkit, eurovoice objects 5.0.

 

The functions exposed by the eurovoice HMP SDK include:-

 

General functions

 

evHMP_EventText

Returns a text string representing an event

evHMP_GenTimerStart

Starts or restarts a general timer

evHMP_GenTimerStop

Stops a general timer

evHMP_GetNumLinesLicenced

Returns the number of eurovoice HMP lines licenced on server

evHMP_GetVersion

Returns eurovoice HMP version information

evHMP_Log

Writes a user specified entry to the HMP log file

evHMP_ResultText

Returns a text string representing a return code value

evHMP_SetCallback

Stores a reference to the call back handling function

 

 

SIP functions

 

evSIP_AnswerCall

Accepts an incoming call request

evSIP_AnswerCallDataInit

A convenience function to initialise AnswerCallData

evSIP_AuthChallenge

Sends an authentication challenge to the incoming request

evSIP_AuthChallengeDataInit

A convenience function to initialise AuthChallengeData

evSIP_AuthDataInit

A convenience function to initialise AuthData

evSIP_AuthValidateResponse

Validates an authentication response

evSIP_CancelCall

Cancels an outgoing call attempt

evSIP_GetAuthData

Retrieves incoming authentication information

evSIP_GetRTPData

Retrieves SDP information from incoming call

evSIP_GetSIPHeader

Retrieves SIP headers from incoming call

evSIP_GetSourceAddress

Returns source address and port of incoming request

evSIP_MakeCall

Initiates an outgoing call

evSIP_MakeCallDataInit

A convenience function to initialise MakeCallData

evSIP_OffHold

Takes a call off hold

evSIP_OnHold

Puts a call on hold

evSIP_Register

Sends a SIP registration request to a SIP Server

evSIP_RejectCall

Rejects an incoming call request

evSIP_SendBye

Ends a call

evSIP_SendInfo

Sends a SIP Info message

evSIP_SendNotify

Sends a SIP Notify message

evSIP_SendOptions

Sends a SIP Options message

evSIP_SendProvisional

Sends a SIP Provisional message to an incoming call

evSIP_SendRefer

Sends a SIP Refer message for mid-call transfer

evSIP_SendRegResponse

Returns a response to an incoming SIP REGISTER request

evSIP_SendReInvite

Sends a further SIP Invite request during a call

evSIP_SendReInviteResponse

Returns a response to a SIP Re-Invite request

evSIP_Start

Starts eurovoice HMP, logging and the SIP stack

evSIP_Stop

Stops the SIP stack, logging and eurovoice HMP

evSIP_UnRegister

Deregisters the SIP stack from a SIP Server

 

 

RTP functions

 

evRTP_Play

Starts the sending of audio buffer data over RTP

evRTP_PlayAddBuffer

Adds data to the audio output buffer

evRTP_PlayClearBuffer

Clears existing data from the audio output buffer

evRTP_PlayStop

Stops the sending of audio data over RTP

evRTP_Record

Starts the receiving of incoming audio data

evRTP_RecordGetBuffer

Retrieves a buffer of incoming audio data

evRTP_RecordStop

Stops the receiving of incoming audio data

evRTP_SendDTMF

Sends DTMF digit(s) over RTP using RFC2833

evRTP_SendDTMFStop

Stops the sending of a DTMF digit string

evRTP_SessionCreate

Creates a new RTP session

evRTP_SessionGetChannelFromHandle

Retrieves the application’s channel from RTP handle

evRTP_SessionGetHandleFromChannel

Retrieves the RTP handle from channel number

evRTP_SessionRemove

Ends an RTP session

evRTP_SpeechDetectionStart

Starts active speech detection on incoming audio

evRTP_SpeechDetectionStop

Stops active speech detection on incoming audio

evRTP_Start

Starts the RTP engine

evRTP_Stop

Stops the RTP engine

evRTP_StreamConnect

Streams RTP audio from one channel to another

evRTP_StreamDisconnect

Disconnects previously connected RTP streams

evRTP_TimerStart

Starts or restarts a user application RTP timer

evRTP_TimerStop

Stops a user application RTP timer

evRTP_TxRxStart

Starts transmission and reception of RTP audio

evRTP_TxRxStop

Stops transmission and reception of RTP audio

 

 

eurovoice HMP events

 

EVHMPEVENT_DTMF

Triggers for each new incoming DTMF digit

EVHMPEVENT_DTMFSENDCOMPLETE

A completion event for evRTP_SendDTMF

EVHMPEVENT_GENTIMERCANCELLED

Triggers when a general timer is cancelled

EVHMPEVENT_GENTIMEREXPIRED

Triggers when an general timer expires

EVHMPEVENT_PLAYCOMPLETE

A completion event for evRTP_Play

EVHMPEVENT_RECORDBUFFER

Triggers as recording buffer becomes available

EVHMPEVENT_RECORDCOMPLETE

A completion event for evRTP_RecordStop

EVHMPEVENT_RTPSTARTED

A completion event for evRTP_TxRxStart

EVHMPEVENT_RTPSTOPPED

A completion event for evRTP_TxRxStop

EVHMPEVENT_RTPTIMERCANCELLED

Triggers when an application RTP timer is cancelled

EVHMPEVENT_RTPTIMEREXPIRED

Triggers when a user application RTP timer expires

EVHMPEVENT_SIPBYE

Triggers on an incoming SIP BYE request

EVHMPEVENT_SIPCALLCONNECTED

Triggers when a SIP call is connected

EVHMPEVENT_SIPCALLPROGRESS

Triggers with call progress information

EVHMPEVENT_SIPCALLTERMINATED

Triggers when a SIP call is disconnected

EVHMPEVENT_SIPHOLDRESPONSE

A completion event for on/off hold functions

EVHMPEVENT_SIPINFOREQUEST

Triggers on incoming SIP INFO request

EVHMPEVENT_SIPINFORESPONSE

A completion event for evSIP_SendINFO

EVHMPEVENT_SIPINVITE

Triggers on incoming SIP INVITE request

EVHMPEVENT_SIPNOTIFYREQUEST

Triggers on incoming SIP NOTIFY request

EVHMPEVENT_SIPNOTIFYRESPONSE

A completion event for evSIP_SendNotify

EVHMPEVENT_SIPOFFHOLDREQUEST

Triggers on incoming off-hold request

EVHMPEVENT_SIPONHOLDREQUEST

Triggers on incoming on-hold request

EVHMPEVENT_SIPOPTIONSRESPONSE

A completion event for evSIP_SendOptions

EVHMPEVENT_SIPREFERREQUEST

Triggers on incoming SIP REFER request

EVHMPEVENT_SIPREFERRESPONSE

A completion event for evSIP_SendREFER

EVHMPEVENT_SIPREGISTER

Triggers on incoming SIP REGISTER request

EVHMPEVENT_SIPREGISTERED

A completion event for evSIP_Register

EVHMPEVENT_SIPREINVITE

Triggers on incoming SIP INVITE during call

EVHMPEVENT_SIPREINVITERESPONSE

A completion event for evSIP_SendReInvite

EVHMPEVENT_SIPUNREGISTERED

A completion event for evSIP_UnRegister

EVHMPEVENT_SPEECHOFF

Triggers when speech is no longer detected

EVHMPEVENT_SPEECHON

Triggers when speech is detected