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); }
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 } }
public bool SendT140Data(tmedia_t140_data_type_t dataType) { return(SendT140Buffer(dataType, null)); }
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 } }
public bool SendT140Data(tmedia_t140_data_type_t dataType) { return SendT140Buffer(dataType, null); }