[OpenSER-Devel] TM-API-Calls: t_request, Presence and others....
Daniel-Constantin Mierla
daniel at voice-system.ro
Tue Aug 7 16:51:04 CEST 2007
Hello,
development version has the outbound uri in place already:
int request(str* m, str* ruri, str* to, str* from, str* h, str* b, str
*oburi, transaction_cb c, void* cp);
Daniel
On 08/07/07 17:43, Carsten Bock wrote:
> 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
>>>
>
>
> _______________________________________________
> Devel mailing list
> Devel at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/devel
>
>
More information about the Devel
mailing list