UAC And UAS For Timer Refresher Header

Home » Asterisk Users » UAC And UAS For Timer Refresher Header
Asterisk Users No Comments

Hi all,

I have a intriguing issue that the RFC is not really clear about.

Sometimes call hang-up on 45min mark because no-one refresh the call ( far-end hangup)

On both good and bad calls:

1)We initiate an invite
2)200OK is answered as refresher=UAS
3)Send ACK
4) ‘follow-up’ re-invite is received changing refresher to UAC
5) my sip accept with 200OK
6) receive ACK

after 15 minutes on a good call:
1) we send reinvite continuing the CSeq of initial invite refresher=uac
2) receive 200OK refresher=uac and continues to do so every 15 min

After 15 min for bad call:
1) we send reinvite continuing the CSeq of initial invite refresher=uac
2) receive 200OK refresher=uac
3) receive a reinvite changing refresher=UAS
4) we 200ok refresher=uas

Call hangup 30 min later (timer is set to 1800s)

The snip of RFC 3261 states that UAS AND UAC changes on each sip transaction. But what about the timer refresher? Does it use the UAS and UAC based on who initiated the dialog???

Asterisk seems to think/use whatever was set when dialog was opened, otherwise it wouldn’t send the first refresh and it wouldnt be kept from sending.

Whats confusing is that if it uses per transaction then why would it send the first reinvite if it was changed on the begging?

User Agent Client (UAC): A user agent client is a logical entity
that creates a new request, and then uses the client
transaction state machinery to send it. The role of UAC lasts
only for the duration of that transaction. In other words, if
a piece of software initiates a request, it acts as a UAC for
the duration of that transaction. If it receives a request
later, it assumes the role of a user agent server for the
processing of that transaction.

UAC Core: The set of processing functions required of a UAC that
reside above the transaction and transport layers.

User Agent Server (UAS): A user agent server is a logical entity
that generates a response to a SIP request. The response
accepts, rejects, or redirects the request. This role lasts
only for the duration of that transaction. In other words, if
a piece of software responds to a request, it acts as a UAS for
the duration of that transaction. If it generates a request
later, it assumes the role of a user agent client for the
processing of that transaction.

UAS Core: The set of processing functions required at a UAS that
resides above the transaction and transport layers.

User Agent (UA): A logical entity that can act as both a user
agent client and user agent server.

Right now they are set the following on sip.conf I’ve tried setting to UAS and same result. I’ve tried to refuse timer, far-end hang up after 30min

Session Timers: Accept Session Refresher: uac Session Expires: 1800 secs Session Min-SE: 90 secs

Marlon Araujo