pjsip / pjproject

PJSIP project
http://www.pjsip.org
GNU General Public License v2.0
2.07k stars 782 forks source link

Forking/multiple early dialogs #2535

Closed wajahat-abbas closed 1 year ago

wajahat-abbas commented 4 years ago

Is your feature request related to a problem? Please describe. Hi, I am new to SIP and PJSIP so this is more like a question. Can someone please shed some light on current implementation for forking? From code, it seems there is very limited support i.e. dialog just detects that forking has happened. The developers manual mentions that usages have to be attached to new dialog. I don't see a clean way of doing that as normally usages are attached after invite session.

Describe the solution you'd like As per my understanding, SIP forking is an essential part of RFC3261. In cases such as Call forwarding, a sequential forked SIP dialog is created after we have received a 2xx response. e.g. we have received a 180 message after UPDATE but since the other user does not attends the call, the call gets forwarded and another 183 message is received with a different to tag.

Describe alternatives you've considered Since UA detects that forking has happened, i am able to create a forked dialog using methods provided but there is problem of what happens to previous dialog? Also all the pending transactions and INVITE session are associated with previous dialog. So after creating new forked dialog i am not sure how to get PJSIP to process further forked message by new dialog.

Additional context A lot of stuff related to forking mentioned in developer's manual is not inline with current implementation.

sauwming commented 1 year ago

We have callback pjsip_ua_init_param.on_dlg_forked()