On Friday 18 April 2008, Ovidiu Sas wrote: > Hello Dan, > > The problem that I'm trying to solve was described at the beginning of > this thread, maybe with not enough clarity (please follow also > http://sourceforge.net/tracker/index.php?func=detail&aid=1933630&group_ >id=139143&atid=743022).
Maybe I missed or overlooked it. > > I will use as an example the sst module. The sst module has a call > specific context: > typedef struct sst_info_st { > enum sst_flags requester; > enum sst_flags supported; > unsigned int interval; > } sst_info_t; > > The pointer to the sst call specific context is saved inside the > dialog callbacks. Here by the saved context inside the dialog module, you mean the param that is passed to the dialog callbacks? > I would like to be able to interrogate - via the mi interface - the > content of the sst call specific context, but the only way to do it is > via the dialog module. Therefore, I need a callback from the dialog Forgive me if I ask some obvious question here, but why can't the sst module implement a MI interface and offer that information directly, instead of going through an awkward reverse dependency? From the description it looks like if the dialog module would implement a function in the public API to retrieve this context, then the sst module could implement the MI interface itself? Maybe I just miss something obvious. Because it is clear the dialog module is ill equipped to serve information from other modules of which it knows nothing, without it having to implement code to deal with such foreign information from other modules. Can you elaborate a bit why this MI interface cannot be implemented in the sst module and it has to be in the dialog module? > module into the sst module in order to be able to retrieve the sst > call specific context. > > As an example, here's the output of the dlg_list mi command, with the > content of the sst call specific context (see the last line: "sst:: > requester_flags=4 supported_flags=0 interval=2400"): > dialog:: hash=898:913256572 > state:: 2 > timestart:: 0 > timeout:: 0 > callid:: [EMAIL PROTECTED] > from_uri:: sip:[EMAIL PROTECTED]:5050 > from_tag:: 1 > caller_contact:: sip:[EMAIL PROTECTED]:5050 > caller_cseq:: 1 > caller_route_set:: > caller_bind_addr:: udp:10.11.10.63:5060 > to_uri:: sip:[EMAIL PROTECTED]:5060 > to_tag:: > callee_contact:: > callee_cseq:: > callee_route_set:: > callee_bind_addr:: > sst:: requester_flags=4 supported_flags=0 interval=2400 > > > Hope this answer your question. I think I'm getting close. If you clarify that last bit I asked above, I think I will have a pretty good picture. -- Dan _______________________________________________ Devel mailing list Devel@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/devel