PJSIP 100rel, Rseq Broken in SIP Response

Scenario: For an incoming call to asterisk 16.12

  1. I have enabled 100rel in pjsip configuration of asterisk

  2. Asterisk responds with “183 Session Progress” for an incoming “INVITE”.But the 183 that is sent out have both Rseq and Require: 100rel SIP headers are missing.

Our Operator complains that in 183, 100rel and Rseq is missing because which they are unable to send PRACK in response to that and start accepting audio for early media.

PJSIP.conf Configurations:
[anonymous]
type=endpoint
context=public
disallow=all
allow=ulaw,alaw
100rel=yes

SIP Traces

Frame 81: 418 bytes on wire (3344 bits), 418 bytes captured (3344 bits)
Linux cooked capture v1
Internet Protocol Version 4, Src: 10.x.x.x, Dst: 10.x.x.x
User Datagram Protocol, Src Port: 5060, Dst Port: 5062
Session Initiation Protocol (INVITE)
Request-Line: INVITE sip:+91783888xxxx;npdi;rn=2727;rn-context=+91@10.x.x.x;user=phone SIP/2.0
Message Header
Record-Route: <sip:10.x.x.x.;lr;ftag=83UZA0VAd95b6Z.U;did=e3b.695;nat=yes >
Via: SIP/2.0/UDP 10.x.x.x;branch=z9hG4bK57bc.172fdfe70dddcdf8061da008a84379c5.0
Via: SIP/2.0/UDP 10.x.x.x:5090;branch=z9hG4bK_IMSCL2020635.000_9790ea1e831d8fade6fc9e5edc5ad38b;lskpmc=SO8M
Content-Length: 603
From: <sip:+91777706xxxx@10.x.x.x;user=phone >;tag=83UZA0VAd95b6Z.U
To: <sip:+912727783888xxxx@10.x.x.x;user=phone >
Via: SIP/2.0/TCP 10.x.x.x:5070;branch=z9hG4bKf.6Y1g9XZe30X2Zb;yop=00.00.1DCEF737.0000.7012
Call-ID: 175B881A19D8489E79F2B349@1270ffffffff
[Generated Call-ID: 175B881A19D8489E79F2B349@1270ffffffff]
CSeq: 1 INVITE
Max-Forwards: 65
Record-Route: <sip:10.x.x.x:5090;lr;interface=see;lskpmc=SO8M;routing_id=aaf1fd06cf957e9546530e3000a508d8 >
Record-Route: <sip:10.x.x.x:5090;lr;interface=isc;lskpmc=SO8M;routing_id=3a2471b0d50b0b919c51deb3efd1095d >
Record-Route: <sip:AAQACEmNwAABcAAAAtwAAfB8K@10.x.x.x:5070;yop=00.00.1DCEF737.0000.7012;lr >
Request-Disposition: no-fork
P-Asserted-Identity: <sip:+91777706xxxx@10.x.x.x;user=phone >,<tel:+917777064015 >
Session-Expires: 1800;refresher=uac
[truncated]Contact: <sip:85b6c3ab-3503-4bf0-abf1-9d80b18670a3@10.x.x.x:5070;yop=00.00.1DCEF737.0000.7012;x-fbi=prim-2;ue-addr=2401:4900:5802:b276:93fc:209f:847:98e8;tgrp=3007_MU_WE_MOBILE;
Supported: 100rel,precondition,replaces,timer,histinfo,eventlist,norefersub
Allow: ACK,BYE,CANCEL,INFO,INVITE,NOTIFY,OPTIONS,PRACK,REFER,UPDATE
P-Early-Media: supported
Content-Type: application/sdp
Content-Disposition: session;handling=required
Accept: application/sdp,application/3gpp-ims+xml
User-Agent: ASUS_X00TDA

Frame 294: 104 bytes on wire (832 bits), 104 bytes captured (832 bits)
Linux cooked capture v1
Internet Protocol Version 4, Src: 10.x.x.x, Dst: 10.x.x.x
User Datagram Protocol, Src Port: 5062, Dst Port: 5060
Session Initiation Protocol (183)
Status-Line: SIP/2.0 183 Session Progress
Message Header
Via: SIP/2.0/UDP 10.x.x.x;rport=5060;received=10.x.x.x;branch=z9hG4bK57bc.172fdfe70dddcdf8061da008a84379c5.0
Via: SIP/2.0/UDP 10.x.x.x:5090;branch=z9hG4bK_IMSCL2020635.000_9790ea1e831d8fade6fc9e5edc5ad38b;lskpmc=SO8M
Via: SIP/2.0/TCP 10.x.x.x:5070;branch=z9hG4bKf.6Y1g9XZe30X2Zb;yop=00.00.1DCEF737.0000.7012
Record-Route: <sip:10.x.x.x;lr;ftag=83UZA0VAd95b6Z.U;did=e3b.695;nat=yes >
Record-Route: <sip:10.x.x.x:5090;lr;interface=see;lskpmc=SO8M;routing_id=aaf1fd06cf957e9546530e3000a508d8 >
Record-Route: <sip:10.x.x.x:5090;lr;interface=isc;lskpmc=SO8M;routing_id=3a2471b0d50b0b919c51deb3efd1095d >
Record-Route: <sip:AAQACEmNwAABcAAAAtwAAfB8K@10.x.x.x:5070;lr;yop=00.00.1DCEF737.0000.7012 >
Call-ID: 175B881A19D8489E79F2B349@1270ffffffff
[Generated Call-ID: 175B881A19D8489E79F2B349@1270ffffffff]
From: <sip:+91777706xxxx@10.x.x.x;user=phone >;tag=83UZA0VAd95b6Z.U
To: <sip:+912727783888xxxx@10.x.x.x;user=phone >;tag=49f6c233-7159-4f65-9581-e284f21e877f
CSeq: 1 INVITE
Server: Asterisk PBX 16.12.0
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, REFER
Contact: <sip:10.x.x.x:5062 >
Content-Type: application/sdp
Content-Length: 214

Have you tried setting the parameter to required? (100rel=required)

If the operator requires 100rel, this should be set this in the INVITE Require header instead of the Supported header. When present in a Require header in a request, it indicates that the UAS MUST send all provisional responses reliably.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.