[OpenSER-Users] CPL "Location" and "Proxy" behavior

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Nov 8 11:30:17 CET 2007


Hi Daniel,

Hmmm....I see - you say (for outgoing scenario) that the location set is 
initialized with the A destination instead of B destination, right?
If so, please open a bug report on the tracker.

regards,
Bogdan

Daniel Grotti wrote:
> Hi bogdan,
> If it's my cpl outgoing script configuration, from USER A
> ******************************************************
> <cpl>
>  <outgoing>
>         <address-switch field="destination" subfield="user">
>                        <address is="B">
>                                <proxy />
>                        </address>
>         </address-switch>
> </outgoing>
> <cpl>
> *******************************************************
> When I make a call from A to B, then the script has called, but in 
> debug I can see that CPL rewrites R-URI with source address 
> (A at A_ip_address) instead of destination address (B at B_ip_address). So 
> the message goes back to user A.
>
> regards,
> Daniel
>
> Bogdan-Andrei Iancu wrote:
>> Hi Daniel,
>>
>> there are no differences - the implementation follows the RFC. For 
>> incoming calls, the location set is empty, but it can be populated by 
>> the CPL script during execution. So, when you do "proxy", you may 
>> have multiple entries in the location set.
>>
>> The comment in the cpl_sig.c file refers to some implementation 
>> details - how to process the available location set, depeding if it 
>> is the first time doing proxy (for the call) or a second time.
>>
>> regards,
>> bogdan
>>
>> daniel grotti wrote:
>>> Hi all,
>>> this is what CPL_SIG.c says about forwarding a given message to the 
>>> given location set:
>>>
>>> " forwards the msg to the given location set; if flags has set the
>>>   CPL_PROXY_DONE, all locations will be added as branches, 
>>> otherwise, the   first one will set as RURI (this is ha case when 
>>> this is the first proxy   of the message)
>>>   The given list of location will be freed, returning 0 instead.
>>>   Returns:  0 - OK "
>>>  
>>>
>>> My question is : which and what is "the first one" location ? Can 
>>> you explain it better?
>>> Because RFC 3880 say that : "For the incoming top-level call 
>>> processing action, the location set is initialized to the empty set.
>>> For the outgoing action, it is initialized to the destination 
>>> address of the call."
>>>
>>> So RFC is very clear. I think there are considerable differences 
>>> between RFC and the behavior of CPL interpreter.
>>>
>>> Thanks.
>>> Daniel
>>>





More information about the Users mailing list