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 |