Example #1
0
            public override int  ondata(T140CallbackData pData)
            {
                tmedia_t140_data_type_t pDataType = pData.getType();

                switch (pDataType)
                {
                case tmedia_t140_data_type_t.tmedia_t140_data_type_utf8:
                {
                    uint size = pData.getSize();
                    if (size > 0)
                    {
                        IntPtr ptr = Marshal.AllocHGlobal((int)size);
                        if (ptr != IntPtr.Zero)
                        {
                            uint s;
                            if ((s = pData.getData(ptr, size)) != 0)
                            {
                                byte[] content = new byte[(int)s];
                                Marshal.Copy(ptr, content, 0, (int)s);
                                MessagingEventArgs eargs = new MessagingEventArgs(mSession.Id, MessagingEventTypes.INCOMING, "T.140", content);
                                eargs
                                .AddExtra(MessagingEventArgs.EXTRA_REMOTE_PARTY, mSession.RemotePartyUri)
                                .AddExtra(MessagingEventArgs.EXTRA_CONTENT_TYPE, ContentType.TEXT_PLAIN);
                                mSession.Stack.SipService.RaiseEvent(eargs);
                            }
                            Marshal.FreeHGlobal(ptr);
                        }
                    }
                    break;
                }

                default:
                {
                    break;
                }
                }

                return(0);
            }
Example #2
0
        protected bool SendT140Buffer(tmedia_t140_data_type_t dataType, byte[] bufferBytes)
        {
            if (bufferBytes != null && bufferBytes.Length > 0)
            {
#if WINDOWS_PHONE
                return(mSession.sendT140Data(dataType, Encoding.UTF8.GetString(bufferBytes, 0, bufferBytes.Length)));
#else
                IntPtr dataPtr = Marshal.AllocHGlobal(bufferBytes.Length);
                Marshal.Copy(bufferBytes, 0, dataPtr, bufferBytes.Length);
                bool ret = mSession.sendT140Data(dataType, dataPtr, (uint)bufferBytes.Length);
                Marshal.FreeHGlobal(dataPtr);
                return(ret);
#endif
            }
            else
            {
#if WINDOWS_PHONE
                return(mSession.sendT140Data(dataType));
#else
                return(mSession.sendT140Data(dataType, IntPtr.Zero, 0));
#endif
            }
        }
Example #3
0
 public bool SendT140Data(tmedia_t140_data_type_t dataType)
 {
     return(SendT140Buffer(dataType, null));
 }
Example #4
0
 protected bool SendT140Buffer(tmedia_t140_data_type_t dataType, byte[] bufferBytes)
 {
     if (bufferBytes != null && bufferBytes.Length > 0)
     {
     #if WINDOWS_PHONE
         return mSession.sendT140Data(dataType, Encoding.UTF8.GetString(bufferBytes, 0, bufferBytes.Length));
     #else
         IntPtr dataPtr = Marshal.AllocHGlobal(bufferBytes.Length);
         Marshal.Copy(bufferBytes, 0, dataPtr, bufferBytes.Length);
         bool ret = mSession.sendT140Data(dataType, dataPtr, (uint)bufferBytes.Length);
         Marshal.FreeHGlobal(dataPtr);
         return ret;
     #endif
     }
     else
     {
     #if WINDOWS_PHONE
         return mSession.sendT140Data(dataType);
     #else
         return mSession.sendT140Data(dataType, IntPtr.Zero, 0);
     #endif
     }
 }
Example #5
0
 public bool SendT140Data(tmedia_t140_data_type_t dataType)
 {
     return SendT140Buffer(dataType, null);
 }