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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxx

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/

Attachment: pjsip-preconditioning.pcap
Description: application/vnd.tcpdump.pcap

_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux