Subject: [sipcore] Precondition and swap of 200 (OK) for INVITE and 200 (OK) for UPDATE

From: Ivo Sedlacek <[email-masked]>
Date: Tue, 25 Nov 2014 11:19:58 +0000

Hello,

can anyone please give advice on the following problem related to precondition usage in SIP session?

Use case:

- Alice is a mobile phone

- AS is an network based announcement service. AS accepts any received INVITE request, sends audio with 24 hour weather forecast, and hangs up.

- Alice and AS use precondition with segmented status type to indicate state of their resources, Alice needs to reserve resources for the call, AS always have resources available when call setup

- the normal flow for the call is:

               Alice                                        AS

               |                                            |

               |-------------(1) INVITE SDP1--------------->|

               |                                            |

               |<------(2) 183 Session Progress SDP2--------|

               |  ***                                       |

               |--*R*-----------(3) PRACK------------------>|

               |  *E*                                       |

               |<-*S*-------(4) 200 OK (PRACK)--------------|

               |  *E*                                       |

               |  *R*                                       |

               |  *V*                                       |

               |  *A*                                       |

               |  *T*                                       |

               |  *I*                                       |

               |  *O*                                       |

               |  *N*                                       |

               |  ***                                       |

               |  ***                                       |

               |  ***                                       |

               |-------------(5) UPDATE SDP3--------------->|

               |                                            |

               |<--------(6) 200 OK (UPDATE) SDP4-----------|

               |                                            |

               |<-----------(7) 200 OK (INVITE)-------------|

               |                                            |

               |------------------(8) ACK------------------>|

               |                                            |

QUESTION: What is expected Alice's behavior if message (6) and message (7) happened to be swapped during transport from AS to Alice, as shown below?

               Alice                                        AS

               |                                            |

               |-------------(1) INVITE SDP1--------------->|

               |                                            |

               |<------(2) 183 Session Progress SDP2--------|

               |  ***                                       |

               |--*R*-----------(3) PRACK------------------>|

               |  *E*                                       |

               |<-*S*-------(4) 200 OK (PRACK)--------------|

               |  *E*                                       |

               |  *R*                                       |

               |  *V*                                       |

               |  *A*                                       |

               |  *T*                                       |

               |  *I*                                       |

               |  *O*                                       |

               |  *N*                                       |

               |  ***                                       |

               |  ***                                       |

               |  ***                                       |

               |-------------(5) UPDATE SDP3--------------->|

               |                                            |

               |       +-(6) 200 OK (UPDATE) SDP4-----------|

               |       |                                    |

               |<-----------(7) 200 OK (INVITE)-------------|

               |       |                                    |

               |<------+                                    |

In my opinion:

- when receiving message (7), Alice should consider the call as established since 200 (OK) response is received for INVITE request. Alice should send media according to SDP2 as SDP answer to SDP3 has not been received yet.

- when receiving message (6), Alice should start sending media according to SDP4.

Any views?

Kind regards

Ivo Sedlacek