예제 #1
0
        public TSIP_Header GetHeaderAtIndex(tsip_header_type_t type, int index)
        {
            /* Do not forget to update tinyWRAP::SipMessage::getHeaderAt() */
            int pos = 0;
            TSIP_Header hdr = null;

            switch(type)
            {
            case tsip_header_type_t.Via:
                if(index == 0){
                    hdr = this.FirstVia;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.From:
                if(index == 0){
                    hdr = this.From;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.To:
                if(index == 0){
                    hdr = this.To;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.Contact:
                if(index == 0){
                    hdr = this.Contact;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.Call_ID:
                if(index == 0){
                    hdr = this.CallId;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.CSeq:
                if(index == 0){
                    hdr = this.CSeq;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.Expires:
                if(index == 0){
                    hdr = this.Expires;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.Content_Type:
                if(index == 0){
                    hdr = this.ContentType;
                    goto bail;
                }else pos++; break;
            case tsip_header_type_t.Content_Length:
                if(index == 0){
                    hdr = this.ContentLength;
                    goto bail;
                }else pos++; break;
            default:
                break;
            }

            foreach(TSIP_Header h in this.Headers)
            {
                if(h.Type == type)
                {
                    if(pos++ >= index)
                    {
                        hdr = h;
                        break;
                    }
                }
            }

            bail:
            return hdr;
        }
예제 #2
0
 public TSIP_Header GetHeader(tsip_header_type_t type)
 {
     return(this.GetHeaderAtIndex(type, 0));
 }
예제 #3
0
 public TSIP_Header GetHeader(tsip_header_type_t type)
 {
     return this.GetHeaderAtIndex(type, 0);
 }
예제 #4
0
        public TSIP_Header GetHeaderAtIndex(tsip_header_type_t type, int index)
        {
            /* Do not forget to update tinyWRAP::SipMessage::getHeaderAt() */
            int         pos = 0;
            TSIP_Header hdr = null;

            switch (type)
            {
            case tsip_header_type_t.Via:
                if (index == 0)
                {
                    hdr = this.FirstVia;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.From:
                if (index == 0)
                {
                    hdr = this.From;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.To:
                if (index == 0)
                {
                    hdr = this.To;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.Contact:
                if (index == 0)
                {
                    hdr = this.Contact;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.Call_ID:
                if (index == 0)
                {
                    hdr = this.CallId;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.CSeq:
                if (index == 0)
                {
                    hdr = this.CSeq;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.Expires:
                if (index == 0)
                {
                    hdr = this.Expires;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.Content_Type:
                if (index == 0)
                {
                    hdr = this.ContentType;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            case tsip_header_type_t.Content_Length:
                if (index == 0)
                {
                    hdr = this.ContentLength;
                    goto bail;
                }
                else
                {
                    pos++;
                } break;

            default:
                break;
            }

            foreach (TSIP_Header h in this.Headers)
            {
                if (h.Type == type)
                {
                    if (pos++ >= index)
                    {
                        hdr = h;
                        break;
                    }
                }
            }

bail:
            return(hdr);
        }