[OpenSER-Devel] TM-API-Calls: t_request, Presence and others....

Carsten Bock lists at bock.info
Tue Aug 7 16:43:15 CEST 2007


Hi Klaus,

if i understand the t_request-method right, i give it the following
parameters:
- m: Method-Name 
- ruri: Request-URI
- to: To-Line
- from: From-Line
- h: Additional Headers (if any)
- b: Body (if any)
- c / cp: Callback + Parameters

I want to send a request to a specific phone, e.g. a Request to 
"sip:user at 192.168.1.1:2054;line=c5rotyx7"; if i put this in the
To-Parameter, it'll only be in the "To"-Line, not in the Request-URI...
And even if i could put it there, that would not affect the
t_request-Calls from other modules like the presence modules.

Carsten

Am Dienstag, den 07.08.2007, 15:52 +0200 schrieb Klaus Darilion:
> Why not setting the destination URI (which is actually an outbound proxy)
> 
> regards
> klaus
> 
> Carsten Bock schrieb:
> > Hi,
> > 
> > i need an Outbound-Proxy in the "t_request"-Method in the TM-API, but i
> > do not know how to define it properly in the request. I've managed to do
> > this, by extending the TM-API, where i can define the outbound proxy:
> > 
> > /*
> >  * Send a transactional request, no dialogs involved
> >  */
> > int request_via(str* m, str* ruri, str * via, str* to, str* from, str*
> > h, str* b, transaction_cb c, void* cp)
> > {
> > 	str callid, fromtag;
> > 	dlg_t* dialog;
> > 	int res;
> > 
> > 	if (check_params(m, to, from, &dialog) < 0) goto err;
> > 
> > 	generate_callid(&callid);
> > 	generate_fromtag(&fromtag, &callid);
> > 
> > 	if (new_dlg_uac(&callid, &fromtag, DEFAULT_CSEQ, from, to, &dialog) <
> > 0) {
> > 		LOG(L_ERR, "request(): Error while creating temporary dialog\n");
> > 		goto err;
> > 	}
> > 
> > 	if (ruri) {
> > 		dialog->rem_target.s = ruri->s;
> > 		dialog->rem_target.len = ruri->len;
> > 		dialog->hooks.request_uri = &dialog->rem_target;
> > 	}
> > 	w_calculate_hooks(dialog);
> > 	if (via) {
> > 		dialog->hooks.next_hop = via;
> > 	}
> > 
> > 	res = t_uac(m, h, b, dialog, c, cp);
> > 	dialog->rem_target.s = 0;
> > 	free_dlg(dialog);
> > 	return res;
> > 
> >  err:
> > 	if (cp) shm_free(cp);
> > 	return -1;
> > }
> > 
> > /*
> >  * Send a transactional request, no dialogs involved
> >  */i have a question about the t_request from the TM-API:
> > int request(str* m, str* ruri, str* to, str* from, str* h, str* b,
> > transaction_cb c, void* cp)
> > {
> > 	return request_via(m, ruri, NULL, to, from, h, b, c, cp);
> > }
> > 
> > (i can provide a complete patch for OpenSER 1.2.1/Trunk, if required)
> > Is this the correct way to implement something like this? What about
> > other modules? For our setup, also the messages generated from the
> > presence-Module need to go through the outbound proxy (probably the same
> > with other modules), and i do not know how configure this (and i found
> > no clue in the docs)...
> > 
> > Thank you,
> > Carsten
> > 
> > 
> > 
> > _______________________________________________
> > Devel mailing list
> > Devel at openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/devel




More information about the Devel mailing list