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); }
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; }