×

Overload protection for SIP servers

  • US 7,522,581 B2
  • Filed: 08/01/2006
  • Issued: 04/21/2009
  • Est. Priority Date: 08/01/2006
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method for operating a server a session initiation protocol (SIP) server having a maximum capacity for servicing requests, the method-comprising steps of:

  • a) receiving a plurality of requests for an SIP message session, wherein said plurality of requests comprise;

    session initiation requests, session modification requests, and requests for binding a user to an address;

    b) classifying each request according to a value, wherein said classifying step comprises;

    b.1) running a classification algorithm at run time, the classification algorithm comprising steps of;

    b.2) receiving a rule set, each rule comprising headers and conditions, wherein the rules with a numerically higher priority value have precedence over the rules with a numerically lower priority value and wherein a first matching rule will be applied for the rules with a same priority value, and the rules are sorted in decreasing order of priority such that a matching process can be stopped after a first matching rule is found; and

    wherein headers are classified as one of;

    simple headers, pseudo-headers, and derived headers, and wherein, in conjunction with user-defined derived headers, the user is allowed to specify complex data types comprising structures and complex data variables associated with arrays, pointers, and scalars;

    b.3) creating a condition table by taking a union of all conditions in the rules;

    b.4) creating a header table by extracting a common set of headers from the condition table;

    b.5) extracting the relevant headers from the header table;

    b.6) determining a matching rule;

    b.7) creating a bit vector table;

    b.8) selecting the matching rule according to data in the bit vector table; and

    b.9) applying the matching rule to place the request in an appropriate queue from among a plurality of queues comprising a high priority queue, a medium priority queue, and a low priority queue; and

    wherein said value of the request is based upon a plurality of message types, the message types comprising;

    register message;

    presence subscription and notification;

    bye messages;

    specific destinations;

    source of the message;

    whether the message belongs to a session-in-progress;

    whether the message belongs to a new session setup; and

    within a message, retransmission of a message vs. the first instance the message is being sent;

    c) determining a priority for handling the request according to the value, such that requests with higher values are assigned higher priorities;

    d) placing each request in one of multiple queues according to its priority value; and

    e) dropping the requests with the lowest priority when the plurality of requests are received at a rate that exceeds the maximum capacity.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×