Ejemplo n.º 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);
            }
Ejemplo n.º 2
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;
            }