PJSIP and Preconditioning (UPDATE prior to 200 OK on INVITE)

CB
Carsten Bock
Tue, Feb 20, 2018 4:31 PM

Hi,

i've identified a bug in PJSIP (and thereby in Asterisk 13):

Scenario:

UA calling to PJSIP
---> INVITE (in SDP: a=inactive)
<--- 183 Session Progress (in SDP: a=inactive)

(some conditions are met [a dedicated bearer on LTE is activated], so
the UA will activate the Audio-Stream by sending an UPDATE-Request)

---> UPDATE (in SDP: a=sendrecv)
<--- 200 OK (to the UPDATE, in SDP: a=sendrecv)

What happens now, is wrong:

<--- 200 OK (to the INVITE, in the SDP: a=inactive)
---> ACK

The 200 OK should be "a=sendrecv", since the original session was
activated/updated by the "UPDATE" request.

After digging through the code of chan_pjsip/Asterisk, I've found that
it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates,
that the call is hold during INVITE and upon UPDATE, it indicates that
the call was reactivated.

Currently, I replace the a=inactive with a=sendrecv in the 200 OK on
Kamailio-Proxy, but that's more a dirty hack than a proper fix.

I've verified the behaviour with Asterisk and the pjsip-ua from the
samples folder (both Version 2.7.1).

Thanks,
Carsten

Carsten Bock
CEO (Geschäftsführer)

Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action!
(February 26th - March 1st, Hall 7 - Booth 7L80)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten@ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/

Hi, i've identified a bug in PJSIP (and thereby in Asterisk 13): Scenario: UA calling to PJSIP ---> INVITE (in SDP: a=inactive) <--- 183 Session Progress (in SDP: a=inactive) (some conditions are met [a dedicated bearer on LTE is activated], so the UA will activate the Audio-Stream by sending an UPDATE-Request) ---> UPDATE (in SDP: a=sendrecv) <--- 200 OK (to the UPDATE, in SDP: a=sendrecv) What happens now, is wrong: <--- 200 OK (to the INVITE, in the SDP: a=inactive) ---> ACK The 200 OK should be "a=sendrecv", since the original session was activated/updated by the "UPDATE" request. After digging through the code of chan_pjsip/Asterisk, I've found that it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates, that the call is hold during INVITE and upon UPDATE, it indicates that the call was reactivated. Currently, I replace the a=inactive with a=sendrecv in the 200 OK on Kamailio-Proxy, but that's more a dirty hack than a proper fix. I've verified the behaviour with Asterisk and the pjsip-ua from the samples folder (both Version 2.7.1). Thanks, Carsten -- Carsten Bock CEO (Geschäftsführer) Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action! (February 26th - March 1st, Hall 7 - Booth 7L80) ng-voice GmbH Millerntorplatz 1 20359 Hamburg / Germany http://www.ng-voice.com mailto:carsten@ng-voice.com Office +49 40 5247593-40 Fax +49 40 5247593-99 Sitz der Gesellschaft: Hamburg Registergericht: Amtsgericht Hamburg, HRB 120189 Geschäftsführer: Carsten Bock Ust-ID: DE279344284 Hier finden Sie unsere handelsrechtlichen Pflichtangaben: http://www.ng-voice.com/imprint/
CB
Carsten Bock
Tue, Mar 6, 2018 10:00 AM

Hi,

any feedback on this?

Thanks,
Carsten
Carsten Bock
CEO (Geschäftsführer)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten@ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/

2018-02-20 17:31 GMT+01:00 Carsten Bock carsten@ng-voice.com:

Hi,

i've identified a bug in PJSIP (and thereby in Asterisk 13):

Scenario:

UA calling to PJSIP
---> INVITE (in SDP: a=inactive)
<--- 183 Session Progress (in SDP: a=inactive)

(some conditions are met [a dedicated bearer on LTE is activated], so
the UA will activate the Audio-Stream by sending an UPDATE-Request)

---> UPDATE (in SDP: a=sendrecv)
<--- 200 OK (to the UPDATE, in SDP: a=sendrecv)

What happens now, is wrong:

<--- 200 OK (to the INVITE, in the SDP: a=inactive)
---> ACK

The 200 OK should be "a=sendrecv", since the original session was
activated/updated by the "UPDATE" request.

After digging through the code of chan_pjsip/Asterisk, I've found that
it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates,
that the call is hold during INVITE and upon UPDATE, it indicates that
the call was reactivated.

Currently, I replace the a=inactive with a=sendrecv in the 200 OK on
Kamailio-Proxy, but that's more a dirty hack than a proper fix.

I've verified the behaviour with Asterisk and the pjsip-ua from the
samples folder (both Version 2.7.1).

Thanks,
Carsten

Carsten Bock
CEO (Geschäftsführer)

Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action!
(February 26th - March 1st, Hall 7 - Booth 7L80)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten@ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/

Hi, any feedback on this? Thanks, Carsten Carsten Bock CEO (Geschäftsführer) ng-voice GmbH Millerntorplatz 1 20359 Hamburg / Germany http://www.ng-voice.com mailto:carsten@ng-voice.com Office +49 40 5247593-40 Fax +49 40 5247593-99 Sitz der Gesellschaft: Hamburg Registergericht: Amtsgericht Hamburg, HRB 120189 Geschäftsführer: Carsten Bock Ust-ID: DE279344284 Hier finden Sie unsere handelsrechtlichen Pflichtangaben: http://www.ng-voice.com/imprint/ 2018-02-20 17:31 GMT+01:00 Carsten Bock <carsten@ng-voice.com>: > Hi, > > i've identified a bug in PJSIP (and thereby in Asterisk 13): > > Scenario: > > UA calling to PJSIP > ---> INVITE (in SDP: a=inactive) > <--- 183 Session Progress (in SDP: a=inactive) > > (some conditions are met [a dedicated bearer on LTE is activated], so > the UA will activate the Audio-Stream by sending an UPDATE-Request) > > ---> UPDATE (in SDP: a=sendrecv) > <--- 200 OK (to the UPDATE, in SDP: a=sendrecv) > > What happens now, is wrong: > > <--- 200 OK (to the INVITE, in the SDP: a=inactive) > ---> ACK > > The 200 OK should be "a=sendrecv", since the original session was > activated/updated by the "UPDATE" request. > > After digging through the code of chan_pjsip/Asterisk, I've found that > it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates, > that the call is hold during INVITE and upon UPDATE, it indicates that > the call was reactivated. > > Currently, I replace the a=inactive with a=sendrecv in the 200 OK on > Kamailio-Proxy, but that's more a dirty hack than a proper fix. > > I've verified the behaviour with Asterisk and the pjsip-ua from the > samples folder (both Version 2.7.1). > > Thanks, > Carsten > -- > Carsten Bock > CEO (Geschäftsführer) > > Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action! > (February 26th - March 1st, Hall 7 - Booth 7L80) > > ng-voice GmbH > Millerntorplatz 1 > 20359 Hamburg / Germany > > http://www.ng-voice.com > mailto:carsten@ng-voice.com > > Office +49 40 5247593-40 > Fax +49 40 5247593-99 > > Sitz der Gesellschaft: Hamburg > Registergericht: Amtsgericht Hamburg, HRB 120189 > Geschäftsführer: Carsten Bock > Ust-ID: DE279344284 > > Hier finden Sie unsere handelsrechtlichen Pflichtangaben: > http://www.ng-voice.com/imprint/
CB
Carsten Bock
Mon, Jun 4, 2018 8:20 AM

Hi,

is there any proper way to report bugs? I haven't found a way, to open
a ticket on the bug-tracker.... nor to create an account, in order to
do so.

Thanks,
Carsten

Carsten Bock
CEO (Geschäftsführer)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten@ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/

2018-02-20 17:31 GMT+01:00 Carsten Bock carsten@ng-voice.com:

Hi,

i've identified a bug in PJSIP (and thereby in Asterisk 13):

Scenario:

UA calling to PJSIP
---> INVITE (in SDP: a=inactive)
<--- 183 Session Progress (in SDP: a=inactive)

(some conditions are met [a dedicated bearer on LTE is activated], so
the UA will activate the Audio-Stream by sending an UPDATE-Request)

---> UPDATE (in SDP: a=sendrecv)
<--- 200 OK (to the UPDATE, in SDP: a=sendrecv)

What happens now, is wrong:

<--- 200 OK (to the INVITE, in the SDP: a=inactive)
---> ACK

The 200 OK should be "a=sendrecv", since the original session was
activated/updated by the "UPDATE" request.

After digging through the code of chan_pjsip/Asterisk, I've found that
it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates,
that the call is hold during INVITE and upon UPDATE, it indicates that
the call was reactivated.

Currently, I replace the a=inactive with a=sendrecv in the 200 OK on
Kamailio-Proxy, but that's more a dirty hack than a proper fix.

I've verified the behaviour with Asterisk and the pjsip-ua from the
samples folder (both Version 2.7.1).

Thanks,
Carsten

Carsten Bock
CEO (Geschäftsführer)

Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action!
(February 26th - March 1st, Hall 7 - Booth 7L80)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten@ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/

Hi, is there any proper way to report bugs? I haven't found a way, to open a ticket on the bug-tracker.... nor to create an account, in order to do so. Thanks, Carsten -- Carsten Bock CEO (Geschäftsführer) ng-voice GmbH Millerntorplatz 1 20359 Hamburg / Germany http://www.ng-voice.com mailto:carsten@ng-voice.com Office +49 40 5247593-40 Fax +49 40 5247593-99 Sitz der Gesellschaft: Hamburg Registergericht: Amtsgericht Hamburg, HRB 120189 Geschäftsführer: Carsten Bock Ust-ID: DE279344284 Hier finden Sie unsere handelsrechtlichen Pflichtangaben: http://www.ng-voice.com/imprint/ 2018-02-20 17:31 GMT+01:00 Carsten Bock <carsten@ng-voice.com>: > Hi, > > i've identified a bug in PJSIP (and thereby in Asterisk 13): > > Scenario: > > UA calling to PJSIP > ---> INVITE (in SDP: a=inactive) > <--- 183 Session Progress (in SDP: a=inactive) > > (some conditions are met [a dedicated bearer on LTE is activated], so > the UA will activate the Audio-Stream by sending an UPDATE-Request) > > ---> UPDATE (in SDP: a=sendrecv) > <--- 200 OK (to the UPDATE, in SDP: a=sendrecv) > > What happens now, is wrong: > > <--- 200 OK (to the INVITE, in the SDP: a=inactive) > ---> ACK > > The 200 OK should be "a=sendrecv", since the original session was > activated/updated by the "UPDATE" request. > > After digging through the code of chan_pjsip/Asterisk, I've found that > it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates, > that the call is hold during INVITE and upon UPDATE, it indicates that > the call was reactivated. > > Currently, I replace the a=inactive with a=sendrecv in the 200 OK on > Kamailio-Proxy, but that's more a dirty hack than a proper fix. > > I've verified the behaviour with Asterisk and the pjsip-ua from the > samples folder (both Version 2.7.1). > > Thanks, > Carsten > -- > Carsten Bock > CEO (Geschäftsführer) > > Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action! > (February 26th - March 1st, Hall 7 - Booth 7L80) > > ng-voice GmbH > Millerntorplatz 1 > 20359 Hamburg / Germany > > http://www.ng-voice.com > mailto:carsten@ng-voice.com > > Office +49 40 5247593-40 > Fax +49 40 5247593-99 > > Sitz der Gesellschaft: Hamburg > Registergericht: Amtsgericht Hamburg, HRB 120189 > Geschäftsführer: Carsten Bock > Ust-ID: DE279344284 > > Hier finden Sie unsere handelsrechtlichen Pflichtangaben: > http://www.ng-voice.com/imprint/
M
Ming
Mon, Jun 4, 2018 10:30 AM

Hi Carsten,

Can you please attach the PJSIP log for this issue?

Regards,
Ming

On Mon, Jun 4, 2018 at 4:20 PM, Carsten Bock carsten@ng-voice.com wrote:

Hi,

is there any proper way to report bugs? I haven't found a way, to open
a ticket on the bug-tracker.... nor to create an account, in order to
do so.

Thanks,
Carsten

Carsten Bock
CEO (Geschäftsführer)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten@ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/

2018-02-20 17:31 GMT+01:00 Carsten Bock carsten@ng-voice.com:

Hi,

i've identified a bug in PJSIP (and thereby in Asterisk 13):

Scenario:

UA calling to PJSIP
---> INVITE (in SDP: a=inactive)
<--- 183 Session Progress (in SDP: a=inactive)

(some conditions are met [a dedicated bearer on LTE is activated], so
the UA will activate the Audio-Stream by sending an UPDATE-Request)

---> UPDATE (in SDP: a=sendrecv)
<--- 200 OK (to the UPDATE, in SDP: a=sendrecv)

What happens now, is wrong:

<--- 200 OK (to the INVITE, in the SDP: a=inactive)
---> ACK

The 200 OK should be "a=sendrecv", since the original session was
activated/updated by the "UPDATE" request.

After digging through the code of chan_pjsip/Asterisk, I've found that
it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates,
that the call is hold during INVITE and upon UPDATE, it indicates that
the call was reactivated.

Currently, I replace the a=inactive with a=sendrecv in the 200 OK on
Kamailio-Proxy, but that's more a dirty hack than a proper fix.

I've verified the behaviour with Asterisk and the pjsip-ua from the
samples folder (both Version 2.7.1).

Thanks,
Carsten

Carsten Bock
CEO (Geschäftsführer)

Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action!
(February 26th - March 1st, Hall 7 - Booth 7L80)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten@ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/

Hi Carsten, Can you please attach the PJSIP log for this issue? Regards, Ming On Mon, Jun 4, 2018 at 4:20 PM, Carsten Bock <carsten@ng-voice.com> wrote: > Hi, > > is there any proper way to report bugs? I haven't found a way, to open > a ticket on the bug-tracker.... nor to create an account, in order to > do so. > > Thanks, > Carsten > -- > > Carsten Bock > CEO (Geschäftsführer) > > ng-voice GmbH > Millerntorplatz 1 > 20359 Hamburg / Germany > > http://www.ng-voice.com > mailto:carsten@ng-voice.com > > Office +49 40 5247593-40 > Fax +49 40 5247593-99 > > Sitz der Gesellschaft: Hamburg > Registergericht: Amtsgericht Hamburg, HRB 120189 > Geschäftsführer: Carsten Bock > Ust-ID: DE279344284 > > Hier finden Sie unsere handelsrechtlichen Pflichtangaben: > http://www.ng-voice.com/imprint/ > > > 2018-02-20 17:31 GMT+01:00 Carsten Bock <carsten@ng-voice.com>: >> Hi, >> >> i've identified a bug in PJSIP (and thereby in Asterisk 13): >> >> Scenario: >> >> UA calling to PJSIP >> ---> INVITE (in SDP: a=inactive) >> <--- 183 Session Progress (in SDP: a=inactive) >> >> (some conditions are met [a dedicated bearer on LTE is activated], so >> the UA will activate the Audio-Stream by sending an UPDATE-Request) >> >> ---> UPDATE (in SDP: a=sendrecv) >> <--- 200 OK (to the UPDATE, in SDP: a=sendrecv) >> >> What happens now, is wrong: >> >> <--- 200 OK (to the INVITE, in the SDP: a=inactive) >> ---> ACK >> >> The 200 OK should be "a=sendrecv", since the original session was >> activated/updated by the "UPDATE" request. >> >> After digging through the code of chan_pjsip/Asterisk, I've found that >> it's actually a bug in PJSIP and not in Asterisk. Asterisk indicates, >> that the call is hold during INVITE and upon UPDATE, it indicates that >> the call was reactivated. >> >> Currently, I replace the a=inactive with a=sendrecv in the 200 OK on >> Kamailio-Proxy, but that's more a dirty hack than a proper fix. >> >> I've verified the behaviour with Asterisk and the pjsip-ua from the >> samples folder (both Version 2.7.1). >> >> Thanks, >> Carsten >> -- >> Carsten Bock >> CEO (Geschäftsführer) >> >> Meet us at MWC 2018 in Barcelona and see IMS and VoLTE in action! >> (February 26th - March 1st, Hall 7 - Booth 7L80) >> >> ng-voice GmbH >> Millerntorplatz 1 >> 20359 Hamburg / Germany >> >> http://www.ng-voice.com >> mailto:carsten@ng-voice.com >> >> Office +49 40 5247593-40 >> Fax +49 40 5247593-99 >> >> Sitz der Gesellschaft: Hamburg >> Registergericht: Amtsgericht Hamburg, HRB 120189 >> Geschäftsführer: Carsten Bock >> Ust-ID: DE279344284 >> >> Hier finden Sie unsere handelsrechtlichen Pflichtangaben: >> http://www.ng-voice.com/imprint/ > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org