Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="callId"></param>
        /// <param name="sturi"></param>
        /// <returns></returns>
        private static int onCallIncoming(int callId, string sturi)
        {
            string uri     = sturi;
            string display = "";
            string number  = "";

            if (null != uri)
            {
                // get indices
                int startNum = uri.IndexOf("<sip:");
                int atPos    = uri.IndexOf('@');
                // search for number
                if ((startNum >= 0) && (atPos > startNum))
                {
                    number = uri.Substring(startNum + 5, atPos - startNum - 5);
                }

                // extract display name if exists
                if (startNum >= 0)
                {
                    display = uri.Remove(startNum, uri.Length - startNum).Trim();
                }
                else
                {
                    int semiPos = display.IndexOf(';');
                    if (semiPos >= 0)
                    {
                        display = display.Remove(semiPos, display.Length - semiPos);
                    }
                    else
                    {
                        int colPos = display.IndexOf(':');
                        if (colPos >= 0)
                        {
                            display = display.Remove(colPos, display.Length - colPos);
                        }
                    }
                }
            }
            // invoke callback
            ICallProxyInterface.BaseCallStateChanged(callId, ESessionState.SESSION_STATE_INCOMING, "");
            ICallProxyInterface.BaseIncomingCall(callId, number, display);
            return(1);
        }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="callId"></param>
 /// <param name="callState"></param>
 /// <returns></returns>
 private static int onCallStateChanged(int callId, ESessionState callState)
 {
     ICallProxyInterface.BaseCallStateChanged(callId, callState, "");
     return(0);
 }