Defines event values and return values the application can receive from the media engine.

Namespace:  LanScape
Assembly:  LMEVoipManaged (in LMEVoipManaged.dll) Version: 6.0.5226.26700

Syntax

C#
public enum TELEPHONY_RETURN_VALUE
Visual Basic (Declaration)
Public Enumeration TELEPHONY_RETURN_VALUE
Visual C++
public enum class TELEPHONY_RETURN_VALUE
J#
public enum TELEPHONY_RETURN_VALUE

Members

Member nameDescription
SipUndefined
Not Used.
SipDtmfDigitEvent
The SipDtmfDigitEvent event is sent to an application when the media engine detects incoming in-band or RFC2833 DTMF signals. Note that this event is only sent to the application if integrated DTMF support has been enabled in the media engine. For complete details, see the "Fully Integrated DTMF Overview" in the Software Developer's Reference. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a DTMF_EVENT_DATA object that describes the specifics of the DTMF digit detection.

(IMMEDIATE_NOTIFICATION)

SipPhoneLineIncomingDtmfEventOverflow
The SipPhoneLineIncomingDtmfEventOverflow event is sent to an application when the media engine detects that it cannot keep up with incoming DTMF digit detections. If this event get sent to your application, your application will miss incoming DTMF digits. To fix this situation, execute your VOIP application on a faster host machine or increase the value of the DtmfIncomingPhoneLineEventBuffers media engine startup parameter.

(IMMEDIATE_NOTIFICATION)

SipInvalidDtmfToneDuration
Application software attempted to start a DTMF tone by calling the StartDtmfTone(Int32, UInt32, VoipMediaEngine..::.DTMF_TONE, UInt32, Boolean, Boolean, Boolean) API procedure. The media engine determined that the DTMF tone duration is in error.

(API return value)

SipInvalidDtmfTone
Application software attempted to start a DTMF tone by calling the StartDtmfTone(Int32, UInt32, VoipMediaEngine..::.DTMF_TONE, UInt32, Boolean, Boolean, Boolean) API procedure. The media engine determined that the DTMF tone specified is not a valid DTMF tone.

(API return value)

SipRfc2833DtmfPayloadTypeNotAllowed
Application software called the SetRfc2833DtmfPayloadType(Int32, Int32) API procedure specifying an RTP payload type that is already being used by the media engine for another purpose. The application should use another payload type value and call the procedure again.

(API return value)

SipRfc2833DtmfDecoderDoesNotExist
The application tried to destroy an RFC2833 DTMF decoder for a phone line using the UnInitializeRfc2833DtmfDecoder(Int32) API procedure and the DTMF decoder did not exists.

(API return value)

SipRfc2833DtmfDecoderAlreadyExists
The application tried to create an RFC2833 DTMF decoder for a phone line using the InitializeRfc2833DtmfDecoder(Int32) API procedure and the DTMF decoder already exists.

(API return value)

SipInBandDtmfDecoderDoesNotExist
The application tried to destroy an in-band DTMF decoder for a phone line using the UnInitializeInBandDtmfDecoder(Int32) API procedure and the DTMF decoder did not exists.

(API return value)

SipInBandDtmfDecoderAlreadyExists
The application tried to create an in-band DTMF decoder for a phone line using the InitializeInBandDtmfDecoder(Int32) API procedure and the DTMF decoder already exists.

(API return value)

SipInternalDtmfSupportNotEnabled
Internal media engine in-band and RFC2833 DTMF support has not been enabled. See the DtmfEnabled startup parameter in the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS structure for additional information.

(API return value)

SipReceivedRtpMediaConflict
The SipReceivedRtpMediaConflict event is sent to an application when the media engine detects that is it receiving RTP media packets from a call endpoint that is different from what was negotiated for the call. This immediate event can be processed by the application to instruct the media engine on how to deal with this situation. Processing this event can be useful when deploying the media engine in the global IP address space (such as a generic VOIP server or PSTN gateway application) and other call endpoints are behind NAT routers or firewalls. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.RECEIVED_RTP_MEDIA_CONFLICT object which contains additional information for this event. Dealing with this event is straight forward. When your application receives the SipReceivedRtpMediaConflict immediate event, it will receive data in a VoipMediaEngine..::.RECEIVED_RTP_MEDIA_CONFLICT structure. To ensure that the media conflict is handled, assign the "detected" IP address and port to the "New" IP address and port in the structure. The code below shows this:
CopyC#
case SipReceivedRtpMediaConflict:
{
    // RTP packets are coming from a different IP:port than what
    // was negotiated for the call.
    // 
    RECEIVED_RTP_MEDIA_CONFLICT ReceivedRtpMediaConflict;

    // access the event data.
    ReceivedRtpMediaConflict = (RECEIVED_RTP_MEDIA_CONFLICT)EventData;

    // just allow the media to flow.
    ReceivedRtpMediaConflict.NewFarEndMediaIpAddress = ReceivedRtpMediaConflict.DetectedFarEndMediaIpAddress;
    ReceivedRtpMediaConflict.NewFarEndMediaPort = ReceivedRtpMediaConflict.DetectedFarEndMediaPort;
}
break;
Additional Information: When your application receives the SipReceivedRtpMediaConflict immediate event, the media engine is asking your application for help. The event tells your application that the media engine is receiving call media from a different IP:port than what was negotiated in the SIP. If your application processes this event, it can tell the media engine to use the "media detected" IP address and port of where the "real" far end media is coming from. By doing so, far end call endpoints will not have problems exchanging media with your VOIP application even if the far end call endpoints are behind nasty symmetrical NATs.
Caution:
SECURITY WARNING: If a VOIP application wants to process this event, it can (and it should). However, to prevent media hijacking by some other RTP endpoint or hacker attack, the VOIP application should expect to see this event upon first media arrival from the TRUE far end call endpoint. This will occur on average within the first 500Ms to 1000Ms of the call once the call enters the SipInCall state. VOIP applications should ignore the SipReceivedRtpMediaConflict media engine event if it occurs after this "average" amount of time. To ensure to a higher degree the trustworthiness of where the TRUE media is coming from, the VOIP application can also verify that the call media type in the RTP header of the VoipMediaEngine..::.RECEIVED_RTP_MEDIA_CONFLICT object is the same media type as that used by the SIP call setup. The application can go even further to verify the trustworthiness of the TRUE media endpoint by comparing the NegotiatedFarEndMediaIpAddress and the DetectedFarEndMediaIpAddress IP addresses as reported in the VoipMediaEngine..::.RECEIVED_RTP_MEDIA_CONFLICT structure. If they are the same, the application has a higher degree of certainty that the TRUE media endpoint is the real media endpoint as negotiated via SIP. If the IP addresses are the same, the far end call endpoint at least knows its public IP address (via STUN or similar protocol) and has published it in the call's SIP. If applications need to defend against denial-of-service type attacks, the VOIP application should maintain a "timed cache" of all IP:port addresses of where SipReceivedRtpMediaConflict errors are coming from. If the VOIP application detects that media conflicts are continually coming from the same IPport address, this may be an indication of a denial-of-service hacker attack against the VOIP server.

(IMMEDIATE_NOTIFICATION)

SipCallRecordComplete
The SipCallRecordComplete event is sent to an application when the media engine stops recording audio data from a phone line.

When recording to a file:

When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to the filename that was used to record phone line audio data. If the phone call was recorded using raw PCM samples, the file name will have a ".dat" extension. If a wave file was requested, the file name will have a ".wav" extension.

When recording using callback procedure only:

When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a null value assigned to the EventData parameter.

(IMMEDIATE_NOTIFICATION)

SipCallRecordActive
The SipCallRecordActive event is sent to an application when the media engine starts to record audio data from a phone line.

When recording to a file:

When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to the filename that will be used to record phone line audio data.

When recording using callback procedure only:

When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a null value assigned for the EventData parameter.

(IMMEDIATE_NOTIFICATION)

SipCallRecordFileWriteError
The SipCallRecordFileWriteError event is sent to an application when the media engine detects a file I/O error when writing recorded phone line audio samples to a file. Once this event is sent to the application, no further recording of the current phone call will take place. To resolve this error, make sure there is enough free disk space on the host machine. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference assigned to the EventData parameter. This value is a reference to the filename that was used when the attempt was made to create the sample record file.

(IMMEDIATE_NOTIFICATION)

SipCallRecordSampleFileNotCreated
The SipCallRecordSampleFileNotCreated event is sent to an application when the media engine tries to start call recording and the record sample file image cannot be created. If the application receives this event, no call recording will take place. To resolve this error, make sure there is enough free disk space on the host machine and that the target directory is not write protected. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to the filename that was used when the attempt was made to create the sample record file.

(API return value, IMMEDIATE_NOTIFICATION)

SipCallRecordFilenameNotCreated
The SipCallRecordFilenameNotCreated event is sent to an application when the media engine tries to start phone line recording and it cannot create a unique record file name. In this case, no phone line recording will take place. This event will only be sent if recording to a file is enabled.

(API return value, IMMEDIATE_NOTIFICATION)

SipCallRecordAlreadyStopped
Application software called the StopPhoneLineRecording(Int32) API procedure and call recording was already stopped.

(API return value)

SipCallRecordAlreadyStarted
Application software called the StartPhoneLineRecording(VoipMediaEngine, Int32, Boolean, Boolean, Boolean, Boolean, Int32, String, VoipMediaEngine..::.PHONE_LINE_RECORD_CALLBACK_PROC, Object) API procedure and call recording was already started.

(API return value)

SipCallRecordNotEnabled
The media engine must be instantiated with call recording enabled before application software can call any of the phone line record API procedures. See the EnablePhoneLineRecording value of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS structure.

(API return value)

SipReceivedSipMessageParseError
The SipReceivedSipMessageParseError event is sent to application software when the telephony engine detects that a received SIP message cannot be parsed. Applications that process this immediate event can then access additional information about the received SIP message using the VoipMediaEngine..::.SIP_MESSAGE_PARSE_IMMEDIATE_DATA structure.

(IMMEDIATE_NOTIFICATION)

SipModifySipMessage
The SipModifySipMessage event is sent to application software when the telephony engine receives a SIP message or when a SIP message is ready to be transmitted. If an application processes this event, the application has the ability to change the SIP message as it requires. One such use of modifying SIP messages would be to support custom or non standard SIP protocol header information. For transmitted SIP messages, application software also has the ability to alter the destination (IP address and port) of where the SIP message will be sent.

For received SIP messages:

The application is sent this event as soon as the SIP message is received. At the time of this event, the VOIP Media Engine has not performed any processing of the received SIP message.

For transmitted SIP messages:

The application is sent this event as soon as a SIP message is ready to be transmitted. At the time of this event, the VOIP Media Engine has completed its construction of the SIP message that is ready to be transmitted.

When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.SIP_MESSAGE_IMMEDIATE_DATA object which contains additional information for this event. If application software is required to modify a SIP message, it must do so using the ModifySipMessage(VoipMediaEngine..::.SIP_MESSAGE, String) API procedure.

(IMMEDIATE_NOTIFICATION)

SipComputeAuthenticationCredentialsFailed
This event informs application software that the media engine attempted to compute challenge authentication credentials for a SIP transaction and the computation failed. This error could be due to low memory resources on the host machine or it can be causes by a non supported authentication challenge type received from the far end SIP device.

(PHONE_LINE_NOTIFICATION)

SipOutgoingCallUnsupportedAuthentication
This event informs application software that an attempt was made to initiate an outbound phone call that required an unsupported authentication mode. The phone call will fail.

(PHONE_LINE_NOTIFICATION)

SipOutgoingCallBasicAuthenticationRequired
This event informs application software that an attempt was made to initiate an outbound phone call that required "Basic" plain text authentication. The phone call will fail because the media engine does not support this authentication technique due to its lack of security.

(PHONE_LINE_NOTIFICATION)

SipOutgoingCallDigestAuthenticationRequired
This event informs application software that an attempt was made to initiate an outbound phone call that required "Digest" authentication. The phone call will fail because the media engine was not configured with the proper authorization credentials in order to create a valid response to the far end's authentication challenge. If you receive this event, you should call the AddAuthorizationCredentials(String, String, String) API procedure with the proper values so the media engine can respond to Digest authentication challenges with the proper response.

(PHONE_LINE_NOTIFICATION)

SipUnRegisterAuthorizationError
This event can be sent to the application when un-registering with the configured SIP registrar server. This event indicates that the registration failed because your application could not be authenticated. To allow the media engine to handle authentication requests automatically, your application should call the AddAuthorizationCredentials(String, String, String) API procedure with the proper authentication credentials prior to performing any registration operations.

(API return value, GLOBAL_NOTIFICATION)

SipRegisterAuthorizationError
An application called the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure to register with a remote registrar server. However, the registration failed because your application could not be authenticated. To allow the media engine to handle authentication requests automatically, your application should call the AddAuthorizationCredentials(String, String, String) API procedure with the proper authentication credentials prior to calling the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure.

(API return value, GLOBAL_NOTIFICATION)

SipIncomingAuthentication
The SipIncomingAuthentication event is sent to an application when the media engine requires application assistance when performing authentication of incoming requests. In order for the media engine to send this event to the application, the application must enable authentication by calling the SetChallengeAuthenticationState(Boolean) API procedure. When an application processes this immediate event, it will have access to a VoipMediaEngine..::.CHALLENGE_AUTHENTICATION object in memory. The application should inspect the object passed to it to determine the proper course of action for the authentication request. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.CHALLENGE_AUTHENTICATION object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipNetworkTransmitFatalError
The media engine attempted to transmit network data and experienced a fatal transmission error. This may indicate a serious network error condition on the host machine. Normally you should not see this error.
Note:
If SIP logging to a log file is enabled, the SIP log file will contain a special log message that indicates this error condition. For example, the SIP log error text will be something similar to the following:

ERROR:
A fatal socket error occurred while sending the previous SIP message.
Windows socket error code: nnnnnnnn

(API return value)

SipNetworkTransmitWouldBlock
The media engine attempted to transmit network data but the transmit operation could not be completed at this time. Normally you should not see this error - even on heavily loaded systems.

(API return value)

SipNetworkTransmitNotAllBytesSent
The media engine attempted to transmit network data but not all data bytes could be sent. This may indicate a serious network error condition on the host machine. Normally you should not see this error.
Note:
If SIP logging to a log file is enabled, the SIP log file will contain a special log message that indicates this error condition. For example, the SIP log error text will be something similar to the following:

WARNING:
Not all bytes of the previous UDP packet were transmitted.
UDP datagram size in bytes: 462
Number of bytes actually transmitted: 226

(API return value)

SipNotifyNetworkError
An application attempted to transmit an event notification and there was a fatal network error. The value will also be returned to the application if the network cable is unplugged.

(API return value)

SipSubscriptionNetworkError
The SipSubscriptionNetworkError event is sent to application software when the telephony engine detects a fatal network error when it attempts to transmit event subscription information. This event will also be sent to the application if the network cable gets unplugged during normal SUBSCRIBE operations. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a SUBSCRIBE_RESULTS object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipCallNetworkError
The SipCallNetworkError event is sent to application software when the telephony engine detects a fatal network error when it attempts normal outgoing or incoming phone call operations. This event will also be sent to the application if the network cable gets unplugged during call operations.

(API return value, PHONE_LINE_NOTIFICATION)

SipUnRegisterNetworkError
The SipUnRegisterNetworkError event is sent to application software when the telephony engine detects a fatal network error when it attempts to un-register with the configured SIP registrar server (or proxy). This event will also be sent to the application if the network cable gets unplugged during an un-register operation.

(API return value, GLOBAL_NOTIFICATION)

SipRegisterNetworkError
The SipRegisterNetworkError event is sent to application software when the telephony engine detects a fatal network error when it attempts to send registration information to the configured SIP registrar server (or proxy). This event will also be sent to the application if the network cable gets unplugged during a register operation.

(API return value, GLOBAL_NOTIFICATION)

SipPortTranslationError
The SipPortTranslationError event is sent to an application in an effort to allow the application to detect SIP protocol port translation errors due to network routers, firewalls or other network elements that lie between two call endpoints. Network elements that are deployed without proper planning and that perform address and/or port translation can cause voice over IP applications and other real time media streaming applications to fail. Depending on the network topology, there generally are multiple solutions that can solve address and port translation issues. If this event is sent to your application, it is an indication that the call will fail to connect or media streaming will not function properly.

(PHONE_LINE_NOTIFICATION)

SipWanIpAddressConfigError
This event may be sent to application software when the application initiates a phone call. It allows application software to detect if its wide area network (WAN) IP address has been configured properly. The two primary causes of application call failures can be associated with WAN IP address errors and router port translation issues. If your telephony application communicates with another LanScape telephony product, this event will always occur if a WAN IP address error is detected. If your telephony application will communicate with other SIP user agents, those user agents must support the SIP VIA header "received=x.x.x.x" and "rport=xxxx" parameters.

(PHONE_LINE_NOTIFICATION)

SipWanIpAddressChange
The SipWanIpAddressChange event is sent to an application when the media engine detects that the "telephony system" Wan IP address has changed. In order for an application to receive this event, the application must be deployed and registered with a LanScape proxy/registrar solution. Generally speaking, a LanScape proxy/registrar would be deployed behind a NAT router in the DMZ of the telephony system's network configuration. The proxy registrar could also be placed on any machine in the telephony system's private network with the appropriate NAT router port forwarding configuration. A LanScape proxy/registrar solution would then be configured to monitor the Wan IP address of the "telephony system". In addition, telephony applications in the private "telephony system's" network can optionally be behind their own NAT router configurations to further sub-net the telephony installation. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a WAN_IP_NOTIFICATION object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipEventNotifyReceived
The SipEventNotifyReceived event is sent to an application when another telephony device has generated an event that the application has subscribed to. This event is also sent to the application when an unsolicited NOTIFY SIP message is received and unsolicited NOTIFY processing has been enabled using the SetReceivedUnsolicitedNotifyState(Boolean) API procedure. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.SUBSCRIBE_REQUEST object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipSubscriptionReceived
The SipSubscriptionReceived event is sent to an application when some other telephony device is asking to subscribe to a particular event that is offered by the application. Applications can respond to this event either by informing the media engine that the application supports the event or the event subscription is not acceptable. This event must be handled by applications that offer events to other devices. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.SUBSCRIBE_REQUEST object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipSubscriptionSuccess
The SipSubscriptionSuccess event is sent to an application when the application is making an attempt to subscribe to an event offered by another telephony device. This event is sent to the application when the event type has been accepted by the far end device and the subscription is active. The far end device will at some future time contact your application's media engine when the subscribed event occurs. The media engine will then contact the application using the SipNotifyReceived event (events from other devices are received by the application as notify request events). When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.SUBSCRIBE_RESULTS object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipSubscriptionRequiresAuthentication
The SipSubscriptionRequiresAuthentication event is sent to an application when the application made an attempt to subscribe to an event offered by another telephony device and the subscription requires authentication. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.SUBSCRIBE_RESULTS object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipSubscriptionNotAccepted
The SipSubscriptionNotAccepted event is sent to an application when the application is making an attempt to subscribe to an event offered by another telephony device. This event is sent to the application when the event type is not supported by the far end device. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. The EventData parameter references a VoipMediaEngine..::.SUBSCRIBE_RESULTS object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipSubscriptionTimeOut
The SipSubscriptionTimeOut event is sent to an application when the application is making an attempt to subscribe to an event offered by another telephony device. This event is sent to the application to inform the application that the telephony device offering the event has not responded in the specified amount of time. The application must assume the event subscription is not valid. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to a VoipMediaEngine..::.SUBSCRIBE_RESULTS object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipSubscriptionTrying
The SipSubscriptionTrying event is sent to an application when the application is making an attempt to subscribe to an event offered by another telephony device. This event is sent to the application for information purposes. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned to the EventData parameter. This value is a reference to the VoipMediaEngine..::.SUBSCRIBE_RESULTS object which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipSubscriptionMemoryError
The SipSubscriptionMemoryError event is sent to an application when the application made an attempt to subscribe to an event offered by another telephony device. The host system is low on memory resources and the event subscription request can not be carried out. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a reference value assigned for the EventData parameter. The EventData value is a reference to the VoipMediaEngine..::.SUBSCRIBE_RESULTS class which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipEventNotifyNotAccepted
The destination device that received the event notification did not accept it. Generally this is caused by sending an event to a telephony device or application that did not previously subscribe to the event. This error can also occur if the far end device challenges the notify event. If the notify event is challenged, make sure you have properly set up authorization credentials using the AddAuthorizationCredentials(String, String, String) API procedure. To obtain the error information associated with a failed challenge, call the GetNotifyChallengeErrorData(UInt32, VoipMediaEngine..::.CHALLENGE_ERROR_DATA) API procedure.

(API return value)

SipEventNotifyResponseTimeOut
An application has sent an event notification to another telephony device and the receiving device has not responded in the specified time out period.

(API return value)

SipSubscriptionAlreadyExists
An application has attempted to subscribe to an event that is offered by another telephony device. The media engine has determined that the application has already subscribed to the particular event and the latest subscription request is redundant.

(API return value)

SipUnRegisterError
The SipUnRegisterError event is sent to application software when the telephony engine tries to un-register with the configured SIP registration server and an unknown error occurs. This error does not indicate that the server could not be contacted. It indicates that the registration server received our request but responded with an error indication.

(API return value, GLOBAL_NOTIFICATION)

SipUnRegisterErrorBadCredentials
The SipUnRegisterErrorBadCredentials event is sent to application software after all un-register attempts have been exhausted using application configured authentication credentials. This event indicates that the Media Engine was challenged by the registrar for authentication information. This event is the result of the Media Engine sending bad authentication data for the challenge response. To correct this error, the user should verify that their user name and password are correct for the configure authentication domain/realm.

(API return value, GLOBAL_NOTIFICATION)

SipUnRegisterTimeOut
This event indicates that the telephony engine made an attempt to un-register with the configured SIP registration server. The registration server however never responded to the un-register request. The time out value used by the telephony engine is specified by the TimeOutMs parameter of the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure.

(GLOBAL_NOTIFICATION)

SipUnRegisterSuccess
When the application receives the SipUnRegisterSuccess event, the telephony engine has successfully transacted with the SIP registration server and has un-registered.

(GLOBAL_NOTIFICATION)

SipUnRegisterTrying
The SipUnRegisterTrying event indicates to application software that the telephony engine is making the attempt to un-register with the configured SIP registrar server.

(GLOBAL_NOTIFICATION)

SipRegisterError
The SipRegisterError event is sent to application software when the telephony engine completes an attempt to perform a registration cycle with the configured SIP registration server and an unknown error occurred. This error does not indicate that the server could not be contacted. It indicates that the registration server received our request but responded with an error indication.

(API return value, GLOBAL_NOTIFICATION)

SipRegisterBadNameList
When registering individual phone lines using the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure, this error value will be returned if the number of registration names (extensions) is not equal to the number of configured phone lines.

(API return value)

SipRegisterErrorBadCredentials
The SipRegisterErrorBadCredentials event is sent to application software after all registration attempts have been exhausted using application configured authentication credentials. This event indicates that the Media Engine was challenged by the registrar for authentication information. This event is the result of the media engine sending bad authentication data for the challenge response. To correct this error, the user should verify that their user name and password are correct for the configure authentication domain/realm.

(API return value, GLOBAL_NOTIFICATION)

SipRegisterTimeOut
This event indicates that the telephony engine made an attempt to contact the configured SIP registration server. The registration server however never responded to the registration request. The time out value used by the telephony engine is specified by the TimeOutMs parameter of the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure.

(API return value, GLOBAL_NOTIFICATION)

SipRegisterIntervalError
When an application receives the SipRegisterIntervalError event, it indicates that the telephony engine attempted to register with the specified SIP registrar server. The server however declined the registration request because the registration time interval is not acceptable. If you receive this error, please refer to the user documentation for your SIP registration server. Note also that the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure can also return this value immediately if a registration interval of 0 seconds was specified when the telephony engine was asked to initiate registration cycles with a SIP register server. A valid non zero registration interval must be specified to remove this error. Registration intervals are specified using a value that represents the number of second in between registration periods. The telephony engine can only verify that a non zero number of seconds has been specified for the registration period. If a registration cycle is attempted and the registration interval is unacceptable to the SIP register server, the application will also receive this error via the callback event mechanism when the registration is denied. For further information, see the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure.

(API return value, GLOBAL_NOTIFICATION)

SipRegisterSuccess
When the application receives the SipRegisterSuccess event, the telephony engine has successfully transacted with the SIP registration server and has completed a registration cycle. The telephony engine will not contact the server again until the specified registration interval has elapsed as specified by the RegistrationIntervalSeconds parameter of the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure.

(GLOBAL_NOTIFICATION)

SipRegisterTrying
The SipRegisterTrying event indicates to application software that SIP registration services have been enabled and the telephony engine is making the attempt to register with the configured SIP registrar server. For additional details on how to enable telephony registrar services, see the EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean) API procedure.

(GLOBAL_NOTIFICATION)

SipRegisterReceived
The SipRegisterReceived event is sent to an application when the media engine receives a SIP REGISTER message. If your application wants to support SIP oriented registrar functions, then you will have to process this event. When your application receives this immediate event, it will also receive a reference to a REGISTER_DETAILS object in memory. Your application can use the contents of this object to determine if you want to accept or decline the registration request. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a value assigned for the EventData parameter. This value is a reference to the REGISTER_DETAILS structure which contains additional information for this event.

(IMMEDIATE_NOTIFICATION)

SipCallEngineTerminated
The SipCallEngineTerminated event is sent to application software as the result of application software executing the StopSipTelephony()()(). API procedure. This is the last event the application will receive from an instance of the telephony engine.

(GLOBAL_NOTIFICATION)

SipCallEngineReady
The SipCallEngineReady event is sent to application software as the final step to initializing an instance of the telephony engine. Telephony engine initialization is performed by calling the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure with the appropriate startup parameters.

(GLOBAL_NOTIFICATION)

SipBadAudioDataType
SipAudioOutputFull
Application software attempted to stream audio data to an audio output line using the WriteAudioOutData(array<Object>[]()[]) API procedure and there were no more audio output transmit buffers available. Application software should call the GetNumAudioOutBuffers(Int32%) to see how many audio output stream buffers are available before attempting to output audio data.

(API return value)

SipNoAudioOutType
The application attempted to obtain the audio output sample block size by calling the GetAudioOutSampleBlockSize(Int32%, Int32%, Boolean%) API procedure. Before calling the GetAudioOutSampleBlockSize(Int32%, Int32%, Boolean%) API procedure, you must first set the data type for the specified audio output line by calling the SetAudioOutDataType(VoipMediaEngine..::.AUDIO_BANDWIDTH) API procedure.

(API return value)

SipBadAudioOutLine
The application attempted to open an audio output line that is invalid. For further information, see the OpenAudioOutChannel(VoipMediaEngine, Int32) API procedure.

(API return value)

SipAudioOutAlreadyOpened
Indicates that application software attempted to open an audio output channel that is already open. Audio output channels can only be opened once.

(API return value)

SipIvrTransmitterFull
Application software attempted to stream audio data to the phone line using the TransmitInCallIvrData(array<Object>[]()[]) or TransmitOnHoldIvrData(array<Object>[]()[]) API procedures and there were no more transmit buffers available. Application software should call the GetNumIvrTxBuffers(Int32%) to see how many transmitter stream buffers are available before attempting to transmit audio data out the phone line.

(API return value)

SipIvrAlreadyOpened
Indicates that application software attempted to open an IVR channel that is already open. IVR channels can only be opened once.

(API return value)

SipIvrBadChannel
A bad channel number value was specified. For further details see the OpenTxIvrChannel(VoipMediaEngine, Int32, Int32) API procedure..

(API return value)

SipCallComplete
This event informs application software that a phone call on one of the phone lines has been terminated. The application will receive this event whenever a phone call is terminated. It does not matter if the far end or the local end terminated the call. Application software should process this event to detect call end conditions.

(PHONE_LINE_NOTIFICATION)

SipByeAckNotReceived
This event informs application software that the telephony engine did not receive a response from the far end of a phone call that is being terminated by the application. Internally, the telephony engine waits for the far end of a call to acknowledge that the call is terminating. If you receive this event, you may want to call the SetCallTerminateTimeout(UInt32) API procedure to specify a longer call terminate time out value. Most application software can ignore this event. If the far end does not respond in a timely manner to call termination requests, it has no effect on the telephony engine and future use of the specified phone line being terminated.

(PHONE_LINE_NOTIFICATION)

SipReceivedByeErrorAck
This event informs the application software that the telephony engine received an error response from the far end of a phone call that is being terminated by the application. This event signals that the far end understands that we are terminating the phone call but decided to return an error status. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipReceivedByeAck
This event informs the application software that the telephony engine received a response from the far end of a phone call that is being terminated by the application. This event signals that the far end understands that we are terminating the phone call. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipSendBye
This event informs the application software that the telephony engine is in the process of terminating a phone call on one of the phone lines. Application software received this event after executing the TerminateCall(Int32, Boolean, UInt32) API procedure. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipSendByeAck
This event informs the application software that the telephony engine is responding to the far end's action of terminating the phone call. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipByeReceived
This event informs the application software that a phone call on a specific phone line has been terminated by the far end of the call. In other words, the phone call was terminated because the far end hung up. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipInConferenceOff
This event informs the application software that a phone line has been removed from a conference session. The application receives this event notification as the result of executing the ConferenceLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipInConferenceOn

(PHONE_LINE_NOTIFICATION)

This event informs the application software that a phone line is about to be added to a conference session. When a phone line is added to a conference session, the call shares full duplex audio with all other conference session members. The application receives this event notification as the result of executing the ConferenceLine(Int32, Boolean) API procedure.
SipBusyOutOff
This event informs the application software that a phone line is about to be placed back into service ("non busied out"). When a phone line is placed back into service, it can once again be used to initiate or receive phone calls. The application receives this event notification as the result of executing the BusyOutLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipBusyOutOn
This event informs the application software that a phone line is about to be "busied out". When a phone line is in the busy out state, it is out of service and cannot be used to initiate or receive phone calls. The application receives this event notification as the result of executing the BusyOutLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipCallHoldOff
This event informs the application software that a phone line is about to be placed on hold. This event allows applications software to detect when phone line hold is being activated. The application receives this event notification as the result of executing the HoldLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipCallHoldOn
This event informs the application software that a phone line is about to be placed on hold. This event allows applications software to detect when phone line hold is being activated. The application receives this event notification as the result of executing the HoldLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipTransferingCall
This event informs the application software that a phone line is being transferred to a new location by the far end participant of the previous phone call. This event is typically used by application software to display to the user the new call destination.

(PHONE_LINE_NOTIFICATION)

SipFarEndHoldOff
This event informs the application software that a phone line has been removed from hold by the far end participant of the phone call. This event is generally used by application software to update the user interface so as to give end users a visual indication that they have been removed from the on "hold state".

(PHONE_LINE_NOTIFICATION)

SipFarEndHoldOn
This event informs the application software that a phone line has been placed on hold by the far end participant of the phone call. This event is generally used by application software to update the user interface so as to give end users a visual indication that they have been placed on hold.

(API return value, PHONE_LINE_NOTIFICATION)

SipInConference
This event informs the application software that a phone line has been added to a conference session. When a phone line is added to a conference session, the call shares full duplex audio with all other conference session members. The application receives this event notification as the result of executing the ConferenceLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipBusyOut
This event informs the application software that a phone line has entered the busy out state. When a phone line is in the busy out state, it is out of service and cannot be used to initiate or receive phone calls. The application receives this event notification as the result of executing the BusyOutLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipCallHold
This event informs the application software that a phone line has transitioned into the hold state. The application receives this event notification as the result of executing the HoldLine(Int32, Boolean) API procedure.

(PHONE_LINE_NOTIFICATION)

SipInCall
This event informs the application software that an inbound or an outbound call is now active. The exchange of streaming media data over the phone line is now possible.

(PHONE_LINE_NOTIFICATION)

SipIncomingCallAborted
This event signals to application software that an incoming phone call has been aborted as the result of application software calling the AbortIncomingCall(Int32, Int32, String) API procedure.

(IMMEDIATE_NOTIFICATION)

SipIncomingCallConnected
This event informs application software that the call session for the inbound phone call has been completed.

(PHONE_LINE_NOTIFICATION)

SipAnsweringCall
This event informs application software that the telephony engine is in the process of answering an inbound phone call. An application is sent this event as the result of executing the GoOffHook(Int32) API procedure. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipReceivedInviteAck
This event informs application software that the far end of an incoming phone call respond when we agreed to enter into a phone call session. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipInviteAckNotReceived
This event informs application software that the far end of an incoming phone call did not respond with a final SIP INVITE ACK after the media engine agreed to enter into a phone call session by sending a "200 OK" response to the original INVITE. There are three primary reasons this event will be sent to application software:

ACK not sent by the far end of the call:

In this case, the far end of the call (the initiating side of the call) did not send the final ACK in response to the media engine sending out its "200 OK" response to the original INVITE. If your application gets this event due to this situation, you may want to ignore final ACK loss by calling the ConnectIncomingCallWithoutInviteAck(Boolean) API procedure. If your application calls the ConnectIncomingCallWithoutInviteAck(Boolean) API procedure, the loss of the final ACK will be ignored by the media engine and the incoming call will be established.

ACK sent by the far end of the call but was lost in the network:

This case has the same ramifications as the previous case. In this scenario, the far end of the call did send the final ACK but for some reason it was not delivered by the network. You may want to call the ConnectIncomingCallWithoutInviteAck(Boolean) API procedure in order to solve this issue.

ACK sent by the far end of the call but arrived too late:

In this case, the far end of the call sent the final ACK but it arrived at the media engine too late. The Media Engine will only wait a fixed amount of time for the final ACK to arrive. To change the default time the media engine will wait for the reception of final ACKs, call the SetInboundInviteAckTimeout(UInt32) API procedure.

(PHONE_LINE_NOTIFICATION)

SipSend200Ok
This event informs application software that the telephony engine is responding to the incoming phone call by accepting the request to enter into a phone call session. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipOkToAnswerCall
This event informs application software that it is permissible to go off hook in order to answer an incoming phone call. To answer an incoming phone call, application software should execute the GoOffHook(Int32) API procedure. Also, an internal "call answer timeout" timer is started when this event is sent to the application software. The telephony engine internally uses a 60 second time out to allow applications software to answer the call. If application software does not answer the call in this 60 second period, the telephony engine will ignore the incoming phone call and reset the phone line. In this case, the call that is not answered is lost. You can change the call answer timeout value by calling the SetCallAnswerTimeout(UInt32) API procedure. If application software intends to answer incoming phone calls, it must detect this event.

(PHONE_LINE_NOTIFICATION)

SipSendSessionProgress
This event informs application software that the telephony engine is sending a session progress indication to the far end of the incoming call. Most application software can ignore this event.
Note:
Session progress indications to the far end are no longer used by the telephony engine. This event is maintained for compatibility with earlier versions of the telephony engine. New applications can completely ignore this event notification. If you use network sniffer software to monitor SIP protocol activity, you will no longer see SIP session progress packets being transmitted by the telephony engine.

(PHONE_LINE_NOTIFICATION)

SipSendRinging
This event informs application software that the telephony engine is notifying the far end of the incoming call that we are about to ring the local phone line. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipSendTrying
This event informs application software that the telephony engine has sent the far end of the incoming call a notification that the phone call is being processed. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipStartIncomingRing

Making an outbound call:

Indicates that a call was initiated using the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedures and call setup did not complete in the time specified. Either the call destination did not respond (is overloaded), the destination of the call is off line, or your host machine could not handle call setup in the time specified. To remove this error, increase the time out value specified to complete the operation.

Terminating a call:

Indicates that a call was terminated using the TerminateCall(Int32, Boolean, UInt32) API procedure and call tear down did not complete in the time specified. Either the call destination did not respond (is overloaded), the destination of the call is off line, or your host machine could not handle call termination in the time specified. To remove this error, increase the time out value specified to complete the operation.

Answering an inbound call:

Indicates that an inbound call was being answered using the GoOffHook(Int32) API procedure and call setup did not complete in the time specified. Either the call destination did not respond (is overloaded), the destination of the call is off line, or your host machine could not answer the call in the time specified. To remove this error, increase the time out value specified to complete the operation.

(API return value)

SipTransferExecuting
The SipTransferExecuting event is sent to an application when another telephony device has commanded your application to transfer to a new call location. This event is sent to an application during early call transfer setup. An application would want to handle this event if it wants to receive call instance data from the device that initiated the transfer operation. In this case, application software can access the call instance data using the GetCallInstanceDataLength(Int32, Int32%) and GetCallInstanceData(Int32, array<Byte>[]()[]) API procedures.

(IMMEDIATE_NOTIFICATION)

SipIncomingCallInitialized
The SipIncomingCallInitialized event is sent to an application when an incoming call is received. The primary purpose of this event is to give the application the chance to terminate the incoming call before the VOIP Media Engine starts to process the request. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a non zero value assigned for the pEventData parameter. This value is a pointer to the VoipMediaEngine..::.INCOMING_CALL_INITIALIZED_DATA structure which contains additional information for this event. Also, setting one of the member variables of the VoipMediaEngine..::.INCOMING_CALL_INITIALIZED_DATA structure will allow your application to terminate the incoming call.
Note:
If your application needs to inform the media engine what available phone line to assign the incoming call to, you should process the SipIncomingCallAssignPhoneLine event.

(IMMEDIATE_NOTIFICATION)

SipIncomingCallAssignPhoneLine
The SipIncomingCallAssignPhoneLine event is sent to application software when an incoming call is received. The media engine uses this event to give the application a chance to determine what available phone line to assign the incoming call to. This event can also be used to terminate the incoming phone call similarly to processing the SipIncomingCallInitialized event. When an application receives this event, the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC will have a value assigned for the EventData parameter. This value is a reference to the VoipMediaEngine..::.ASSIGN_INCOMING_PHONE_LINE class which contains additional information for this event. Also, setting one of the member variables of the VoipMediaEngine..::.ASSIGN_INCOMING_PHONE_LINE object will allow your application to terminate the incoming call.

(IMMEDIATE_NOTIFICATION)

SipIncomingCallStart
This event informs application software that an incoming phone call has been detected. Internally, the telephony engine selects an available phone line (one that is not in use or is not "busied out") and prepares the phone line to accept the incoming phone call.

(PHONE_LINE_NOTIFICATION)

SipOutgoingCallConnected
This event informs the application software that the call setup phase of making an outgoing phone call is complete. Exchange of streaming media data over the phone line is now possible.

(PHONE_LINE_NOTIFICATION)

SipSendInviteAck
This event informs the application software that the telephony engine is sending the final acknowledge to the far end of an outgoing phone call. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipInviteOkReceived
This event informs the application software that the far end of an outgoing call has responded to our request to enter into a phone call. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipWaitForInviteOk
This event informs the application software that the telephony engine is waiting for the far end of an outgoing call to respond to an initial session invite request. Most application software can ignore this event.

(PHONE_LINE_NOTIFICATION)

SipReceivedUnsupportedProvisionalResponse
This event informs the application software that the far end SIP call is actively being processed. This event is a "catch all" event for future provisional responses that are not yet supported by the VOIP Media Engine.

(PHONE_LINE_NOTIFICATION)

SipReceived183SessionProgress
This event informs the application software that the far end SIP call is being actively processed.

(PHONE_LINE_NOTIFICATION)

SipReceived182Queued
This event informs the application software that the far end SIP call is being queued and will be processed shortly.

(PHONE_LINE_NOTIFICATION)

SipReceived181CallBeingForwarded
This event informs the application software that the far end SIP call is being forwarded to a new location.

(PHONE_LINE_NOTIFICATION)

SipReceived180Ringing
This event informs the application software that the far end SIP device has responded to an invitation to take part in a call. The far end is stating that it is "Ringing" the far end phone.
Note:
This is the first provisional event your application can receive that does reflect the actual activity of the call destination. If you receive this event, it is because the far end has sent you the "ringing" provisional response. This event is not generated due to intermediate SIP proxy behavior.

(PHONE_LINE_NOTIFICATION)

SipReceived100Trying
This event informs the application software that the far end SIP device has responded to an invitation to take part in a call. The far end is stating that it is "Trying" to process the call request.
Note:
If your VOIP application uses a SIP proxy server, this event will most likely be sent to the application when the call request is first processed by your proxy server and not by the SIP call endpoint.

(PHONE_LINE_NOTIFICATION)

SipReceivedProvisionalResponse
This event informs the application software that the far end SIP device has responded to an invitation to take part in a call. If your application does not care about other provisional event types but simple wants to know when the far end started to respond, you should process this event.
Note:
If your VOIP application uses a SIP proxy server, this event will be sent to the application when the call request is first processed by your proxy server and not by the SIP call endpoint.

(PHONE_LINE_NOTIFICATION)

SipStartOutgoingRing
This event indicates that the far end of an outgoing phone call has been contacted and that local phone ringing has started.

(PHONE_LINE_NOTIFICATION)

SipSendInvite
This event indicates that the SIP INVITE message is being sent to a call destination. This event is for information purposes only and can be ignored by most application software.

(PHONE_LINE_NOTIFICATION)

SipDialing
This event signals the start of DTMF tone generation by the telephony engine for an outgoing phone call. The application always receives this event notification regardless of the internal DTMF tone generation enable state. The DTMF internal enable state is set by calling the EnableOutgoingDtmfDigits(Boolean) API procedure. If an application disabled internal DTMF tone generation, the application software can process this event by playing whatever DTMF or other tones as required. If an application plays its own DTMF tones for the phone call, it should synchronously play all DTMF digits in the event handler before returning from the event handler.

(PHONE_LINE_NOTIFICATION)

SipDialTone
This event is sent to application software whenever the telephony engine plays dial tone. The application generally receives this event when going off hook (when there is no pending incoming phone call) and when initiating a call using the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedure. Application software will always receive this event for the above mentioned cases. If the application software has disabled internal telephony engine dial tone generation using the EnableDialTone(Boolean) API procedure, application software can use this event to play its own dial tone to the user.

(PHONE_LINE_NOTIFICATION)

SipOutgoingCallStart
This event is sent to application software when you make an outgoing call using the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedure. It signals to your application that phone call session initiation has started.

(PHONE_LINE_NOTIFICATION)

SipOutgoingTransferInitializing
The SipOutgoingTransferInitializing event is sent to an application when the application makes a request to transfer a call to another location using the TransferLine(String, String, Int32, Int32) API procedure. An application would handle this event if it wanted to send call instance data to the phone being transferred at the time of the transfer. The phone that is being transferred then has the ability to process the SipTransferExecuting immediate event to retrieve the call instance data for further processing. During the SipTransferExecuting event, the transferred phone could access the call instance data using the GetCallInstanceDataLength(Int32, Int32%) and GetCallInstanceData(Int32, array<Byte>[]()[]) API procedures.

(IMMEDIATE_NOTIFICATION)

SipOutgoingCallInitializing
The SipOutgoingCallInitializing event is sent to an application when an outgoing phone call is in the earliest stages of call setup. The primary purpose of this event is to allow the application to associate call instance data with the outgoing phone call. If an application needs to associate call instance data with the outgoing phone call, it can call the SetCallInstanceData(Int32, array<Byte>[]()[]) API procedure when processing this event. The call endpoint that will receive the call can then access the call instance data by calling the GetCallInstanceDataLength(Int32, Int32%) and GetCallInstanceData(Int32, array<Byte>[]()[]) API procedures when it receives the SipIncomingCallStart event.

(IMMEDIATE_NOTIFICATION)

SipOutgoingCallStateError
An internal state error was detected while attempting to make an outgoing call using either the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedures. Contact LanScape support if you detect this error.

(API return value)

SipBadSipUri
A bad Sip URI string was passed to the MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedure.

(API return value)

SipOnHook
This event is sent to application software whenever the phone line transitions from some other phone line state back to the on hook state. When a phone line is in the on hook state, it can again be used to initiate phone calls or receive incoming phone calls.

(PHONE_LINE_NOTIFICATION)

SipOffHook
This event is sent to application software whenever you call the GoOffHook(Int32) API procedure and the phone line was previously in the on hook state.

(PHONE_LINE_NOTIFICATION)

SipDomainNameNotDefined
Application software has configured proxy services but has not specified a SIP domain name using the EnableSipDomain(String) API procedure. This error can be generated for the following API procedures: TransferLine(String, String, Int32, Int32), MakeCall(String, String, UInt32, Int32, Boolean, UInt32), MakeCallUri(String, Boolean, Int32, Boolean, UInt32), and EnableSipRegisterServer(String, Boolean, Boolean, String, UInt32, UInt32, UInt32, UInt32, Boolean).

(API return value)

SipTransfrerNotAllowed
Application software attempted to transfer a phone call using the TransferLine(String, String, Int32, Int32) API procedure that was placed on hold by the far end. Transferring a call when the far end has placed the call on hold is not supported. The only options that are possible are to: wait for the far end to remove the call from the hold state and then perform the transfer, or terminate the phone call by executing the TerminateCall(Int32, Boolean, UInt32) API procedure.

(API return value)

SipBadUserName
A bad Sip user name string was passed to the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedures.

(API return value)

SipDomainError
A bad Sip domain name string was passed to the EnableSipDomain(String) API procedure.

(API return value)

SipConferenceNotEnabled
Application software can receive this return value if the application calls the ConferenceLine(Int32, Boolean) API procedure and call conferencing is not enabled in the media engine. For additional details, see the CallConferenceEnabled startup parameter in the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS startup class.

(API return value)

SipConferenceActive
Application software attempted to remove a phone call from the hold state using the HoldLine(Int32, Boolean) API procedure when an active conference session was under way. Once a conference session is started, application software should manipulate conference and hold call state using the ConferenceLine(Int32, Boolean) API procedure.

(API return value)

SipCallNotOnHold
Indicates that application software attempted to stream audio data to a phone line using the TransmitOnHoldIvrData(array<Object>[]()[]) API procedure. However, the phone line was not in the SipCallHold state and the audio media streaming failed.

(API return value)

SipNoCallActive
Indicates that application software attempted an operation on a phone line and the phone line was not in a proper state to carry out the request. The following scenarios can generate this error: Calling the ConferenceLine(Int32, Boolean) API procedure when the phone line is not in the SipInCall or SipCallHold states. Calling the TransferLine(String, String, Int32, Int32) API procedure when the phone line is not in the SipInCall or SipCallHold states. Attempting to open a transmit media stream to a phone line using the OpenTxIvrChannel(VoipMediaEngine, Int32, Int32) API procedure and the phone line is not in the SipInCall or SipCallHold states. Application software executed the TransmitInCallIvrData(array<Object>[]()[]) API procedure using a particular phone line and the phone line was no longer in the SipInCall state.

(API return value)

SipAnswerTimeout
This event is sent to application software when an incoming phone call is being received and the call is not answered by your application software. The call answer time out is set internally to 60 seconds and can not be changed by application software. After you receive this event notification, the telephony engine terminates the incoming call so as to ignore the call. The phone line is then reset so the line is prepared for the next out going or incoming call.

(PHONE_LINE_NOTIFICATION)

SipFarEndError
This event informs the application software that an attempt was made to place a call to the specified destination. The destination existed and participated in the call's session setup. However, the call failed because the destination returned an error response when the call was being set up. Normally this is due to incompatibilities in streaming media support or possible issues associated with user and password log in, etc. at the far end.

(API return value, PHONE_LINE_NOTIFICATION)

SipFarEndIsBusy
This event informs the application software that an attempt was made to place a call to the specified destination. The call failed because the destination is busy (already in a phone call).

(API return value, PHONE_LINE_NOTIFICATION)

SipCallCanceled
This event is sent to application software when a phone call is in the process of completing its session initiation tasks and the phone call gets canceled.

For out bound phone calls:

If you make an asynchronous phone call using the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) API procedure, the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) API procedure will return immediately and you will be notified of phone call progress via the callback event mechanism. If your software terminates the phone call by calling the TerminateCall(Int32, Boolean, UInt32) API procedure before the phone call completes its session setup, the telephony engine cancels the call internally and sends this event to your software. The same applies to calls using the MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedure.

For incoming calls:

If a phone call is being received, your application software will attempt to answer the phone call by calling the GoOffHook(Int32) API procedure. Calling the GoOffHook(Int32) API procedure allows session setup for the call to continue. If the far end of the phone call terminates the phone call before the telephony engine completes call setup, the call will be canceled internally. Your software will receive this notification informing you that the call has been canceled (terminated prematurely) by the far end.

(PHONE_LINE_NOTIFICATION)

SipInviteAckSendFailed
This event is sent to application software when the normal SIP invite transaction could not be completed. This failure can occur if you are making an out bound call using the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedures and your host machine is low on memory. This event can also be caused when your network cable is unplugged or your NIC adaptor has been disabled.

(PHONE_LINE_NOTIFICATION)

SipInviteSendFailed
This event is sent to application software when the normal SIP invite transaction could not be completed. This failure can occur if you are making an out bound call using the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedures and your host machine is low on memory. This event can also be caused when your network cable is unplugged or your NIC adaptor has been disabled.

(PHONE_LINE_NOTIFICATION)

SipCallStartFailed
This event can be sent to the application when making an outbound call or when an incoming call is being received. Call start failure is attributed to two factors, low memory situations and the inability of the telephony engine to create new threads of execution. If you receive this error, increase the amount of memory in your system and/or close all other unnecessary executing applications.

(API return value, PHONE_LINE_NOTIFICATION)

SipLineCapacityReached
Whenever the telephony engine detects a new incoming phone call and there are no more phone lines available, the SipLineCapacityReached event is sent to application software. This event allows unattended IVR applications to detect when all phone lines are consumed. Monitoring this event in your application software will allow you to determine if you have enough phone lines to service your particular application.

(GLOBAL_NOTIFICATION)

SipLineInitialized
This event informs application software that a phone line has been created and initialized by the media engine. It is only sent to the application when the media engine is started and when the SendLineInitializedEvents member of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS structure is set to a non zero value. High density line applications generally use this to drive a GUI progress display when the VOIP application starts.

(PHONE_LINE_NOTIFICATION)

SipInitializeError
Your application software called the InitializeMediaEngine(String, UInt32) API procedure and the telephony engine initialization operation failed. This error is critical an must be resolved before any telephony operations are possible. Typical causes for this error are low memory situations and thread startup errors.

(API return value)

SipMediaEngineAlreadyInitialized
Your application software called the InitializeMediaEngine(String, UInt32) API procedure more than once. You should only call this API procedure once during application startup. This error is for informational purposes.

(API return value)

SipMediaEngineNotInitialized
Your application software attempted a telephony engine operation before calling the InitializeMediaEngine(String, UInt32) API procedure. Before attempting any API operations, you must initialize the telephony engine by calling the InitializeMediaEngine(String, UInt32) API procedure.

(API return value)

SipCallThreadTerminateTimeout
If this event is sent to the application, it signals that a phone call terminated but there was a problem associated with resetting the phone line. Applications will not experience this event unless the host machine is experiencing a thread termination problem. If your application detect this event. your application will still function properly. However, there is the possibility that the application will experience termination problems when it is shut down. If your application detects this event, please contact LanScape Corporation with specific details regarding your application.

(GLOBAL_NOTIFICATION)

SipRtpFatalStartError
This event informs application software that the telephony engine detected an unhandled RTP start error. Please contact LanScape technical support if your VOIP application receives this event.

(PHONE_LINE_NOTIFICATION)

SipRtpReceiveBufferTooSmall
This event will be sent to application software when the media engine receives an RTP packet that is too large to be processed. If this condition occurs, application software can increase the value specified in the MaxRtpPacketLength member of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS structure when instantiating the media engine.
Note:
The media engine can handle normal RTP packet reception for all RTP media payload types that are supported. If your application software receives this event, there are two primary causes. Either the far end VOIP device is not sending the proper amount of RTP media data for the call's negotiated rate/format or it is possible that the far end VOIP device is sending encrypted RTP media packets that are too large.

(GLOBAL_NOTIFICATION)

SipReceiveBufferTooSmall
This event will be sent to application software when the media engine receives a SIP message that is too large to be processed. If this condition occurs, application software can increase the value specified in the MaxSipMesageLength member of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS structure when instantiating the media engine.

(GLOBAL_NOTIFICATION)

SipSessionReceiveOverrun
The telephony engine monitors its network activity and is able to determine if it is falling behind under extremely heavy load usage. This event is sent to the telephony application to inform the application that additional incoming telephony traffic can not be processed. In such situations, incoming call or device event processing is ignored. If you develop an application that spends too much time in the media engine event callback procedure VoipMediaEngine..::.SIPCALLBACKPROC, then you may experience this error condition.

(GLOBAL_NOTIFICATION)

SipRtpSocketBindError
This event informs application software that the internal RTP stack detected an error while attempting a bind operation on an open network socket. This error event indicates that the port the RTP stack is attempting to use is already in use. If you receive this error event, make sure no other application is attempting to use any of the RTP ports you specified when starting an instance of the telephony engine.

(PHONE_LINE_NOTIFICATION)

SipRtpSocketOpenError
This event informs application software that the internal RTP stack detected an error while attempting to open a network socket. This error event generally indicates that system resources are being stressed and that a handle to a network socket could not be granted by the operating system. Your application can receive this error event only when initiating an outbound phone call or while attempting to accept an in bound phone call.

(PHONE_LINE_NOTIFICATION)

SipSipLogServerNotFound
This value is returned by the media engine when the application tries to disable SIP message logging to a remote SIP log server using the SetSipLogServer(Boolean, String, Int32) API procedure. This error indicates that the SIP log server was not previously enabled.

(API return value)

SipEventLogServerNotFound
This value is returned by the media engine when the application tries to disable event logging to a remote event log server using the SetEventLogServer(Boolean, String, Int32) API procedure. This error indicates that the event log server was not previously enabled.

(API return value)

SipProxyNotEnabled
Indicates that an operation was attempted that requires a proxy server to be configured and enabled. However, proxy support has not yet been enabled.

(API return value)

SipNetworkInitializeError
Indicates a critical internal network initialization error within the telephony engine. User application software should not continue if this error is detected. Make sure the host machine is configured properly and is adequate for the intended application. For host systems running Microsoft Windows operating systems, you must have Windows socket 2 support properly installed. Close all other unnecessary network applications to reduce the loading on the host machine's network layer.

(API return value)

SipApiProcNotAllowed
This error informs an application that it has called an API procedure that can not be executed during the current call state.

(API return value)

SipInvalidInstance
This error informs an application that is has exceeded the number of telephony engine instances allowed. The total number of telephony engine instances your application can create is determined by the licensing capabilities you have purchased.

(API return value)

SipSocketBindError
This error informs application software that the internal SIP stack detected an error while attempting a bind operation on an open network socket. This error indicates that the port the SIP stack is attempting to use is already in use or the IP address the telephony engine is using is invalid on the host machine. If you receive this error, make sure no other application is attempting to use the SIP port you specified when starting an instance of the telephony engine. Also make sure that the IP address the telephony engine is using is actually assigned to the host machine.

(API return value)

SipSocketOpenError
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. The telephony engine experienced an error while creating a socket resource for the internal SIP stack.

(API return value)

SipUdpRxBufferSizeError
This error occurs when an instance of the telephony engine is being created. It indicates that the media engine could not resize the SIP receive network buffer to the specified number of bytes. You may have to specify a smaller buffer size.

(API return value)

SipUdpTxBufferSizeError
This error occurs when an instance of the telephony engine is being created. It indicates that the media engine could not resize the SIP transmit network buffer to the specified number of bytes. You may have to specify a smaller buffer size.

(API return value)

SipEventError
This error occurs when an instance of the telephony engine is being created. It indicates that the operating system refused to created an event required by the SIP stack. Make sure the host system you are using has enough free resources and memory to support telephony operations.

(API return value)

SipCallThreadStartFailure
When the media engine is started, this return value indicates that a critical call thread could not be created. This is primarily related to low memory situations.

(API return value)

SipCallThreadStartEventFailure
When the media engine is started, this return value indicates that a critical internal event could not be created. This is primarily related to low memory situations and/or exceeding the maximum number of process handles in your application.

(API return value)

SipPlaybackMixerThreadStartError
The telephony engine attempted to create an internal thread object. The thread creation failed. Make sure your system has enough free resources to perform the operations you are requesting from the telephony engine.

(API return value)

SipRtpReceiverThreadStartFailure
The telephony engine attempted to create an internal thread object. The thread creation failed. Make sure your system has enough free resources to perform the operations you are requesting from the telephony engine.

(API return value)

SipRtpTxMixerThreadStartError
The telephony engine attempted to create an internal thread object for the phone line's transmit mixer operation. The thread creation failed. Make sure your system has enough free resources to perform the operations you are requesting from the telephony engine.

(API return value)

SipRtpReceiverEventError
This error occurs when an instance of the telephony engine is being created. It indicates that the operating system refused to created an event required by the RTP stack. Make sure the host system you are using has enough free resources to support telephony operations.

(API return value)

SipAudioInFailure
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. When you called the API procedure, you specified that the telephony engine manage a host multimedia device for audio input. When the telephony engine was being initialized, the audio input device could not be opened. To remove this error, make sure the audio input device is not already being used by another application. Also, make sure your audio input device supports 22kHz PCM sampled data.

(API return value)

SipAudioOutFailure
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. When you called the API procedure, you specified that the telephony engine manage a host multimedia device for audio output. When the telephony engine was being initialized, the audio output device could not be opened. To remove this error, make sure the audio output device is not already being used by another application. Also, make sure your audio output device supports 22kHz PCM sampled data.

(API return value)

SipBadNumberOfPhoneLines
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. When you called the API procedure, you specified an invalid number of phone lines the telephony engine was supposed to create. You will get this error if you request the creation of phone lines that exceed the maximum number of phone lines you are licensed to use.

(API return value)

SipBadParameter
One of the telephony API procedures was called by application software and was passed a pointer to an invalid memory address. Normally this error will occur when application software passes NULL pointer values to the telephony API. For managed code applications, you should never see this error unless your process space has exhausted memory.

(API return value)

SipBadDisplayName
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. When you called the API procedure, you specified an invalid pointer to the display name of the phone. For further information, see the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS class.

(API return value)

SipBadPhoneName
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. When you called the API procedure, you specified an invalid pointer to the name of the phone. For further information, see the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS class.

(API return value)

SipRtpAndSipPortOverlapError
This error applies to telephony engines that are licensed to create more that one telephony engine instance. Your application attempted to create another instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. This secondary instance detected that there is a port assignment overlap for either the internal SIP stack or the RTP stack with an earlier instance another telephony engine. If you are instantiating more than one instance of the telephony engine, SIP and RTP ports across all telephony engines must be unique.

(API return value)

SipStartRtpPortError
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. You specified an invalid starting RTP port number. To remove this error, specify a starting RTP port number that is an even integer. Odd ports are assigned to RTCP.

(API return value)

SipDirectoryDoesNotExist
The telephony engine attempted to access an application supplied directory that does not exist.

(API return value)

SipEventLogServerParameterError
Your application attempted to start the media engine using invalid remote event log server parameter values. Verify the values you specified for the pEventLogServerList and pEventLogServerPortList parameters of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS class.

(API return value)

SipMemoryError
The telephony engine attempted to allocate system memory but the allocation failed. Make sure the host system has enough virtual memory. Increasing the amount of virtual memory can remove these errors, however if critical telephony engine code has been swapped out to disk and is not resident in physical memory, you may experience degraded audio/video performance. If you want to remove this error and obtain the best possible audio/video performance, make sure the host system has enough physical memory. To resolve this error, you may also want to consider disabling certain features of the media engine such as conference calling. You can also reduce memory requirements if you reduce the maximum signal length of internal media engine signal paths by specifying a smaller number for the MaxMixerLinebuffers member of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS class that is passed to the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) and ReStartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedures.

(API return value, PHONE_LINE_NOTIFICATION)

SipBandwidthError
Your application attempted to create an instance of the telephony engine using the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedure. You specified an invalid sample rate value for the AudioRecordBandWidth and/or the AudioPlaybackBandWidth members of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS class.

(API return value)

SipThreadCreationError
The telephony engine attempted to create an internal thread object. The thread creation failed. Make sure your system has enough free resources (memory) to perform the operations you are requesting from the telephony engine. Thread creation errors are generally associated with the application process space consuming too much system memory. To resolve this error, you may want to consider disabling certain features of the media engine such as conference calling. You can also reduce memory requirements if you reduce the maximum signal length of internal media engine signal paths by specifying a smaller number for the MaxMixerLinebuffers member of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS structure that is passed to the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) and ReStartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedures. Reducing the default stack size for threads in your application may also allow your process space to consume less system memory.

(API return value, PHONE_LINE_NOTIFICATION)

SipAlreadyOnHook
Application software tried to place the phone line on hook when the phone line was already in the on hook state.

(API return value)

SipAlreadyOffHook
Application software tried to take the phone line off hook when the phone line was already in the off hook state.

(API return value)

SipLineBusyOut
Application software attempted to use a phone line that was previously taken out of service by calling the BusyOutLine(Int32, Boolean) API procedure. Return the phone line to service and try the operation again. A phone line is placed back into service by calling the BusyOutLine(Int32, Boolean) API procedure with a value of FALSE.

(API return value)

SipNotEnabled
Indicates that the telephony engine was not enabled for normal operation. Application software should always execute the SipTelephonyEnable()()() API procedure as the final step during configuration when initializing the telephony engine.

(API return value)

SipCallInstanceDataNoExist
An application will receive this API return value when it calls the GetCallInstanceData(Int32, array<Byte>[]()[]) API procedure and when there is no call instance data associated with the phone call.

(API return value)

SipCallStateHistoryMustBeRead
This error return value indicates that call state history for the phone line has been enabled and existing call state history must be cleared before attempting to use the phone line again. Call the ClearRecordedCallStates(Int32) API procedure to clear the phone line's current call state history and try the call again.

(API return value)

SipInvalidHandle
Application software specified an invalid telephony handle in one of the API procedures. This usually indicates memory corruption on the part of application software.

(API return value)

SipBadPhoneLine
Application software called a telephony API procedure and specified an invalid phone line. Phone lines are numbered starting from zero. This error is most commonly returned when attempting to access phone lines in excess of the max number of lines supported by the telephony engine.

(API return value)

SipCallAlreadyInProgress
Another phone call (incoming or outgoing) is in the process of entering the SipInCall state. An application can not initiate new phone calls unless all active calls have entered the SipInCall state.

(API return value)

SipUnknownHost
A network address was specified as a UNC name and DNS was used to obtain the destination IP address. DNS could not resolve the UNC network name. Make sure the spelling you specified for the destination machine is correct.

(API return value)

SipPhoneLineAccessError
This value may be returned when initiating outgoing calls. It indicates there was an internal error detected while accessing internal phone line data. If you continually see this error, please contact LanScape support.

(API return value)

SipCallTimeOut

Making an outbound call:

Indicates that a call was initiated using the MakeCall(String, String, UInt32, Int32, Boolean, UInt32) or MakeCallUri(String, Boolean, Int32, Boolean, UInt32) API procedures and call setup did not complete in the time specified. Either the call destination did not respond (is overloaded), the destination of the call is off line, or your host machine could not handle call setup in the time specified. To remove this error, increase the time out value specified to complete the operation.

Terminating a call:

Indicates that a call was terminated using the TerminateCall(Int32, Boolean, UInt32) API procedure and call tear down did not complete in the time specified. Either the call destination did not respond (is overloaded), the destination of the call is off line, or your host machine could not handle call termination in the time specified. To remove this error, increase the time out value specified to complete the operation.

Answering an inbound call:

Indicates that an inbound call was being answered using the GoOffHook(Int32) API procedure and call setup did not complete in the time specified. Either the call destination did not respond (is overloaded), the destination of the call is off line, or your host machine could not answer the call in the time specified. To remove this error, increase the time out value specified to complete the operation.

(API return value)

SipCallFailure
This value is returned by telephony API procedures to indicate general API failure. This error value is used as a "catch all error". If you receive this error, check to make sure that all parameters specified in the API procedure call are correct. Particularly, verify that pointers to memory regions are valid. This error return value is only used if a mapping to another specific error value does not exist.

(API return value)

SipSuccess
Indicates that there are no errors and the operation you requested completed successfully.

(API return value)

See Also