[Serusers] Problem with specific phones only able to registerto ipnumber andnotdomain..

Marian Dumitru marian.dumitru at voice-sistem.ro
Wed Nov 3 20:59:07 CET 2004


Hi Alex,

As I said, that was a very ugly solution.

The problem you are facing can be approached from two direction:
1) mangle the REGISTER - SER takes the aor from TO header, so you have 
to mangle it; but doing this will screw up badly the transaction 
matching (see my previous email).
2) try to fix it on lookup - try to do lookup both as user at ip and 
user at domain - but is the ugly solution.

Maybe doing code changing will help you. Something like having a 
"use_domain" parameter for registrar module which will force to ignore 
the domain part when building the aor.

Best regards,
Marian Dumitru


Alex Mack wrote:
> Hi Marian!
> 
> You're right, that way IS very ugly.
> You also could leave out the "if"-clause completely: transform *every* 
> request into "user at ip"-form rendering wrong requests only and transform 
> those back to the correct form. That's not an approach, that's a proof 
> of misconcept.
> 
> It can't be we're the only ones facing this problem. What does ser have 
> included to handle malformed/wrong REGISTER-requests? It has to be able 
> to mangle incoming REGISTER-requests beyond checking them. How can one 
> control what ser is puting into 'aor'? There have to be more parameters 
> for the save() function.
> 
> In the CVS one can see, that "use_domain" was removed for multi-domain 
> capability, but there has to be implemented a feature to "alias" 
> domains, e.g., all "100.100.100.100" are also "mydomain.org".
> 
> Best regards,
> Alex Mack.
> 
> Marian Dumitru wrote:
> 
>> Hi Alex,
>>
>> The subst() cannot fix the problem. If you use it to alter the To 
>> header, you will have to forward the message to your self to allow the 
>> modifications to take place (for each message SER keeps the original 
>> message and a list of changes which are applied only when sending out 
>> he message). Even if you modify the To hdr and spiral the message back 
>> to you, you will have to catch the reply to undo the modification on 
>> To - otherwise, the UAC will no be able to match the reply with the 
>> request it sent. And to be able to catch the reply you need to use tm, 
>> but you cannot do so because the transaction will be broken because of 
>> the modified To hdr.  I hope my words make some sens to you :-).
>>
>> there is a way, but very ugly and inefficient - try lookup using both 
>> forms user at ip and user at domain:
>>
>> if (!lookup("location)) {
>>   # try to replace domain with IP or IP with domain
>>   if ( subst_uri("/(sip:.*@)mydomain\.com(;.*)/\1xxx.xxx.xxx.xxx\2/") ||
>>   subst_uri("/(sip:.*@)xxx\.xxx\.xxx(;.*)\.xxx/\1mydomain.com\2/") ) {
>>     if (!lookup("location")) {
>>       # not found
>>     }
>>   }
>> }
>>
>> I haven't test this, it's just an idea.
>>
>> Best regards,
>> Marian Dumitru
>>

-- 
Voice Sistem
http://www.voice-sistem.ro




More information about the sr-users mailing list