[Serusers] how to determine if src_ip and uri domain are the same?

Elena Ramona Modroiu ramona at voice-system.ro
Thu Nov 4 09:05:59 CET 2004


Allan wrote:

>Thanks Elena,
>
>I had no problems after getting a new copy of the
>unstable version.  This afternoon I ran a few tests
>with the different op_values and saw that $ruri, $to,
>and $from all end up with the same string - the ip
>address of the SER server.
>
Have you used different IDs for each AVP? Could you send me the sequence 
of avp_write() functions you used? It is possible that you overwritten 
the value of same AVP (actually added new values for same ID). The value 
for $ruri, $to, $from is taken from SIP request.

>  The $src_ip is correct. 
>At this point I assume this is the way it should work
>and the reason the domain portion of these fields are
>all the same is due to the NAT and the UAs sending
>everything to SER first.
>  
>
The $src_ip is affected by NAT, the others, as I said, are taken from 
first line/headers of SIP request and unless you have a strange 
SIP-aware ALG in the path, the initial R-URI, From and To are set by SIP 
client.

>Is there someway to compare the $scr_ip of an initial
>invite from UA1 to the domain/dst_ip of the invite
>sent to UA2 on behalf of UA1 by SER?
>
Didn't the example 5 
(http://www.siphub.net/docs/avpops/ar01s08.html#ex_org_dst) help you? It 
should be what you want. After you resolve the location of the user with 
lookup('location') you get the destination address into request URI 
(ruri). Write the domain of ruri into an avp and  compare it with src_ip.

Salutari,
Ramona

>  I can see the
>info I need to match in the etheral capture but they
>are in two different invite messages.  One from the
>calling phone to SER, and the second from SER to the
>called phone.
>
>Regards,
>Allan
>
> --- Elena Ramona Modroiu <ramona at voice-system.ro>
>wrote: 
>  
>
>>The module compiles only for unstable version (CVS
>>head). If you use 
>>this version, get a clean version from CVS 
>>(http://developer.berlios.de/cvs/?group_id=480) and
>>try again. If you 
>>still get errors, tell me more information about
>>your system/OS/compiler ...
>>
>>Salutari,
>>Ramona
>>
>>Allan wrote:
>>
>>    
>>
>>>Hi Marian,
>>>
>>>This is what I am looking for, thanks.  Had some
>>>difficulty getting the module to compile.  See the
>>>attached.
>>>
>>>Regards,
>>>Allan
>>>
>>>
>>>--- Marian Dumitru
>>>      
>>>
>><marian.dumitru at voice-sistem.ro>
>>    
>>
>>>wrote: 
>>> 
>>>
>>>      
>>>
>>>>Hi Allan,
>>>>
>>>>if you use the new module AVPOPS you can test what
>>>>you want. Example 
>>>>number 5 , if I'm not wrong, shows something very
>>>>similar:
>>>>http://voice-system.ro/docs/avpops
>>>>
>>>>Best regards,
>>>>Marian Dumitru
>>>>
>>>>Allan wrote:
>>>>   
>>>>
>>>>        
>>>>
>>>>>What can I do in order to make a decision based
>>>>>          
>>>>>
>>on
>>    
>>
>>>>>src_ip and the IP address in the URI domain?  I
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>have
>>>>   
>>>>
>>>>        
>>>>
>>>>>calls between UAs located behind the same NAT on
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>the
>>>>   
>>>>
>>>>        
>>>>
>>>>>other end of a low bandwidth WAN circuit and want
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>the
>>>>   
>>>>
>>>>        
>>>>
>>>>>ability to not force the call through rtp_proxy. 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>In
>>>>   
>>>>
>>>>        
>>>>
>>>>>practice this works ok with a fixed IP address
>>>>>          
>>>>>
>>but
>>    
>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>I
>>>>   
>>>>
>>>>        
>>>>
>>>>>am unsure how to make the process more dynamic. 
>>>>>          
>>>>>
>>I
>>    
>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>am
>>>>   
>>>>
>>>>        
>>>>
>>>>>new to SER and still learning the features and
>>>>>scripting language so I apologize of this topic
>>>>>          
>>>>>
>>is
>>    
>>
>>>>>covered somewhere else.
>>>>>
>>>>>Regards,
>>>>>Allan
>>>>>
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>______________________________________________________________________
>>    
>>
>>> 
>>>
>>>      
>>>
>>>>>Post your free ad now! http://personals.yahoo.ca
>>>>>
>>>>>_______________________________________________
>>>>>Serusers mailing list
>>>>>serusers at lists.iptel.org
>>>>>http://lists.iptel.org/mailman/listinfo/serusers
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>-- 
>>>>Voice Sistem
>>>>http://www.voice-sistem.ro
>>>>
>>>>   
>>>>
>>>>        
>>>>
>>______________________________________________________________________
>>
>>    
>>
>>>Post your free ad now! http://personals.yahoo.ca
>>>
>>>      
>>>
>>------------------------------------------------------------------------
>>    
>>
>>>avpops_impl.c:50: syntax error before `store_keys'
>>>avpops_impl.c:50: warning: type defaults to `int'
>>>      
>>>
>>in declaration of `store_keys'
>>    
>>
>>>avpops_impl.c:50: warning: data definition has no
>>>      
>>>
>>type or storage class
>>    
>>
>>>avpops_impl.c:51: syntax error before `store_vals'
>>>avpops_impl.c:51: warning: type defaults to `int'
>>>      
>>>
>>in declaration of `store_vals'
>>    
>>
>>>avpops_impl.c:51: warning: data definition has no
>>>      
>>>
>>type or storage class
>>    
>>
>>>avpops_impl.c: In function `init_store_avps':
>>>avpops_impl.c:58: warning: assignment makes integer
>>>      
>>>
>>from pointer without a cast
>>    
>>
>>>avpops_impl.c:59: request for member `type' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:59: `DB_STR' undeclared (first use in
>>>      
>>>
>>this function)
>>    
>>
>>>avpops_impl.c:59: (Each undeclared identifier is
>>>      
>>>
>>reported only once
>>    
>>
>>>avpops_impl.c:59: for each function it appears in.)
>>>avpops_impl.c:60: request for member `nul' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:62: warning: assignment makes integer
>>>      
>>>
>>from pointer without a cast
>>    
>>
>>>avpops_impl.c:63: request for member `type' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:64: request for member `nul' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:66: warning: assignment makes integer
>>>      
>>>
>>from pointer without a cast
>>    
>>
>>>avpops_impl.c:67: request for member `type' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:68: request for member `nul' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:70: warning: assignment makes integer
>>>      
>>>
>>from pointer without a cast
>>    
>>
>>>avpops_impl.c:71: request for member `type' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:71: `DB_INT' undeclared (first use in
>>>      
>>>
>>this function)
>>    
>>
>>>avpops_impl.c:72: request for member `nul' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:74: warning: assignment makes integer
>>>      
>>>
>>from pointer without a cast
>>    
>>
>>>avpops_impl.c:75: request for member `type' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:76: request for member `nul' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:78: warning: assignment makes integer
>>>      
>>>
>>from pointer without a cast
>>    
>>
>>>avpops_impl.c:79: request for member `type' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c:80: request for member `nul' in
>>>      
>>>
>>something not a structure or union
>>    
>>
>>>avpops_impl.c: At top level:
>>>avpops_impl.c:84: warning: `struct db_row' declared
>>>      
>>>
>>inside parameter list
>>    
>>
>>>avpops_impl.c:84: warning: its scope is only this
>>>      
>>>
>>definition or declaration, which is probably not
>>what you want.
>>    
>>
>>>avpops_impl.c: In function `dbrow2avp':
>>>avpops_impl.c:94: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:94: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:94: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:101: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:101: `DB_STRING' undeclared (first
>>>      
>>>
>>use in this function)
>>    
>>
>>>avpops_impl.c:101: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:101: `DB_STR' undeclared (first use
>>>      
>>>
>>in this function)
>>    
>>
>>>avpops_impl.c:102: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:102: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:103: dereferencing pointer to
>>>      
>>>
>>incomplete type
>>    
>>
>>>avpops_impl.c:103: `DB_INT' undeclared (first use
>>>      
>>>
>>in this function)
>>
>>    
>>
>=== message truncated === 
>
>______________________________________________________________________ 
>Post your free ad now! http://personals.yahoo.ca
>  
>




More information about the sr-users mailing list