Hi all,
I'm experimenting with sofia PRACK (early dialog) support, and have a strange issue.
The system I'm using is freeswitch, which uses nua as sofia interface.
Standard prack support works ok, for example:
invite ->
<- 183 ringing
prack ->
<- 200 ok(prack)
but in a more complex scenario, where a remote party uses update method
for transferring calls, sofia stops sending prack,
and events to upstream application (for example I don't receive nua_i_state events,
maybe because is not yet prack'ed).
The scenario is as follows:
invite ->
<- 100 Trying
<- 183 Session Progress
prack ->
<- 200 ok(prack)
<- update
200 ok (update) ->
<- invite (new callid, to different local number, redirected by proxy)
100 Trying ->
183 Session Progress -> (newcallid)
<- 183 Session Progress (newcallid)
... prack is expected here...
only log that I see on sofia debug is :
nta: 183 Session Progress is reliably received with RSeq: 512718638
nta: 183 Session Progress with initial RSeq: 512718638 outside dialog
and then the message is destroyed in nta.c outgoing_recv()
any hint on where to look ?
maybe if guided into the stack I can provide some patch :)
thanks,
matteo
|