[OpenSIPS-Devel] Sending INFO from MI
alex at jajah.com
Tue Sep 21 10:04:16 CEST 2010
We're on the way to implement the feature. The idea is to have one more counter that will be incremented each time in-dialog request is initiated and proxy needs to fix all following requests considering this counter's value.
It will work in following way:
a) dlg_send_info will send INFO request just like dlg_end_dlg sends BYE
b) in dlg_cell struct there will be counter lcseq (at dialog level not per leg). This counter will be initiated with 0 by dlg_create_dialog().
c) each time dlg_send_info is called it will increment lcseq counter
d) each time dlg_send_info is called it will increment callee_cseq and caller_cseq (in dlg struct)
e) each time dlg_onroute is called (triggered by loose_route()) it will update callee_cseq and caller_cseq not by request's cseq but by reqquest's cseq + lcseq
f) each time loose_route() called and lcseq > 0, request's cseq should be fixed (by adding lcseq to it)
This way I believe the cseq problem can be fixed.
a, b, c, e are already done.
I'm missing d and f.
What do you think? And I need a tip please how to implement f. Can it be done from dialog module or I should play with TM as well?
From: devel-bounces at lists.opensips.org [mailto:devel-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu
Sent: Wednesday, September 15, 2010 2:37 PM
To: OpenSIPS devel mailling list
Subject: Re: [OpenSIPS-Devel] Sending INFO from MI
As Ovidiu pointed out, this is not an easy one - if you generate a
in-dialog request from the proxy, you will de-sync the cseq numbers
between the 2 end-parties....So any change from the mid-proxy will imply
the proxy to "fix" all the following cseq numbers in the following
in-dialog requests (from the end parties).
With the BYE this is not a problem as after BYE there is not other
"following in-dialog requests" ;)
Alex Massover wrote:
> I need to pass events generated by the external application during the
> call. I'm thinking about to implement this with INFO.
> The idea is to add sending INFO functionality to the dialog module. In
> analogy with 'dlg_end_dlg' MI function exported by dialog module, I
> want to add 'dlg_send_info' function. That will receive 2 parameters:
> a) Direction (caller, callee, both) – to what side to send INFO
> b) Headers to add to INFO
> and eventually generate INFO request.
> What I'm trying to understand is how complex is to add such
> functionality. Is the dialog module ready for such extension (I'll
> look at how 'dlg_end_dlg' is implemented and do similar) or it will
> require more advanced understanding and major changes to the module
> Best Regards,
> Alex Massover
> Telephony Group Manager
> R&D Department
> Jajah Inc.
> This mail was sent via Mail-SeCure System.
> Devel mailing list
> Devel at lists.opensips.org
20 - 24 September 2010, Frankfurt, Germany
Devel mailing list
Devel at lists.opensips.org
This mail was received via Mail-SeCure System.
This mail was sent via Mail-SeCure System.
More information about the Devel