Systems and methods for handling multiple concurrent session initiation protocol transactions
View Patent ↗Systems and methods for handling the processing of multiple SIP transactions that have been requested at substantially the same time can involve establishing a priority order for processing the SIP transactions, and then individually processing the SIP transactions based on the established priority order. One or more SIP transactions having a lower priority can be held in a SIP processing queue of a software application until the processing of SIP transactions having a higher priority has been completed. Each time that the processing of a higher priority SIP transaction is completed, the next-highest priority SIP transaction in the queue is submitted for processing. Also, where possible, two or more SIP transactions in the queue may be consolidated into a single SIP transaction.
1. A method of handling multiple session initiation protocol (SIP) transactions during a SIP dialog, a SIP transaction including at least a SIP request message and a SIP response message, comprising:
receiving requests for the processing of two SIP transactions using at least one processor;
determining whether the two SIP transactions can be consolidated into a single SIP transaction using at least one processor;
consolidating the two SIP transactions into a single SIP transaction when it is determined that the two SIP transactions can be consolidated into a single SIP transaction, and thereafter initiating the processing of the consolidated SIP transaction;
determining, when the two SIP transactions cannot be consolidated into a single SIP transaction, a prioritization order for processing the two SIP transactions using at least one processor;
initiating the processing of a first of the two SIP transactions that was determined to have a higher priority order;
determining when processing of the first SIP transaction has been completed; and
initiating the processing of the second of the two SIP transactions that was determined to have a lower priority order after processing of the first SIP transaction is determined to have been completed.
2. The method of claim 1 , wherein the requests for the processing of two SIP transactions are received from a core application layer of the software application, and wherein initiating the processing of the first and second SIP transactions comprises passing first and second SIP transaction requests to a SIP processing layer of the software application.
3. The method of claim 1 , wherein determining when processing of the first SIP transaction has been completed comprises determining that a dialog object that holds the first SIP transaction has discarded the first SIP transaction.
4. The method of claim 1 , wherein determining when processing of the first SIP transaction has been completed comprises determining that a SIP processing layer of the software application has sent a message to a core application layer of the software application indicating that the first transaction has been completed.
5. The method of claim 1 , wherein determining when processing of the first SIP transaction has been completed comprises determining when an acknowledgment message is sent in reaction to receiving a response message from a second software application to which the first SIP transaction request was originally directed.
6. A non-transitory computer readable medium that contains instructions which, when performed by one or more processors, cause the one or more processors to perform a method for handling multiple session initiation protocol (SIP) transactions during a SIP dialog, a SIP transaction including at least a SIP request message and a SIP response message, the method comprising:
receiving requests for the processing of two SIP transactions;
determining whether the two SIP transactions can be consolidated into a single SIP transaction;
consolidating the two SIP transactions into a single SIP transaction when it is determined that the two SIP transactions can be consolidated into a single SIP transaction, and thereafter initiating the processing of the consolidated SIP transaction;
determining a prioritization order for processing the two SIP transactions;
initiating the processing of a first of the two SIP transactions that was determined to have a higher priority order;
determining when processing of the first SIP transaction has been completed; and
initiating the processing of the second of the two SIP transactions that was determined to have a lower priority order after processing of the first SIP transaction is determined to have been completed.
7. The non-transitory computer readable medium of claim 6 , wherein the requests for the processing of two SIP transactions are received from a core application layer of a software application, and wherein initiating the processing of the first and second SIP transactions comprises passing first and second SIP transaction requests to a SIP processing layer of the software application.
8. The non-transitory computer readable medium of claim 6 , wherein determining when processing of the first SIP transaction has been completed comprises determining that a dialog object that holds the first SIP transaction has discarded the first SIP transaction.
9. The non-transitory computer readable medium of claim 6 , wherein determining when processing of the first SIP transaction has been completed comprises determining that a SIP processing layer of the software application has sent a message to a core application layer of the software application indicating that the first transaction has been completed.
10. The non-transitory computer readable medium of claim 6 , wherein determining when processing of the first SIP transaction has been completed comprises determining when an acknowledgment message is sent in reaction to receiving a response message from a second software application to which the first SIP transaction request was originally directed.