[asterisk-dev] chan_sip SIP Authentication

Klaus Darilion klaus.mailinglists at pernau.at
Wed Jan 28 08:41:32 CST 2009



Johansson Olle E schrieb:
> Well,
> 
> The problem arises since you use phone numbers as identifiers for the  
> users. This is not a good thing (TM) and should be avoided. The  
> dialplan is where you route phone numbers. Devices should have device  
> names that you address in the dialplan on the extension that is  
> supposed to connect to one or several devices.

That's the more elegant version, but then you need a mapping from number 
to user. Thats why I use name=number to avoid this mapping
> 
> I guess we have no make this need of namespace separation clear in the  
> documentation.
> 
> If we go ahead and change matching order, I'm afraid it will break  
> backwards compatibility and stop many systems from working properly.  
> We don't want that.
> 
> The real solution to this users/peers/friends thing is to create a  
> better solution and implement it. The first big step towards it was to  
> kill the sip_user structure,
> and thus the need for users at all in 1.6.1. We now also match peers  
> by name before we match IP.

Does this mean that my setups do not work anymore in 1.6.1. Does all 
peers use this name checking or is this an configuration option?

> There are many bug reports in the bug tracker that all indicate  
> frustration with this and some bad hacks that also breaks backwards  
> compatibility and won't be accepted.
> 
> I think the next step is to find a good way to define a trunk, a  
> service, that will match separately. Nick Lewis has been working with  
> that and I have code for it somewhere in my branches.

This sounds like changing names user->peer, peer->trunk.

> This implements a way to
> - register with SIp services
> - get the call back
> - match the proper peer, even if you have five accounts, we will match  
> the proper peer
> - send the call to the called number (to: header), not using a pseudo- 
> exten that overrides.

ahh. It took us many yours to tell vendors that To-based routing is wrong.

regards
klaus



> I would call this type=service

> After that is done, we should implement type=trunk that matches on IP  
> and/or domains.
> Check here for an old writeup of this:
> http://www.codename-pineapple.org/newtypes.shtml
> 
> (Shameless plug: If any company out there wants to fund this work,  
> please contact me! )
> 
> /O
> 
> 28 jan 2009 kl. 00.19 skrev Klaus Darilion:
> 
>> Hi!
>>
>> I recently had the same problem.
>>
>> One solution is to define everything as sip "peer" - also the sIP  
>> clients.
>>
>> This does not work out of the box if you use users.conf for user
>> provisioning. For this case I have submitted a patch (which was  
>> rejected
>> as users.conf must not be flexible :-)
>> http://bugs.digium.com/view.php?id=14188
>>
>> I think changing the priority (peer before user) might be a solution  
>> as
>> well. Actually if someone uses "peers" for gateways and "users" for  
>> SIP
>> clients IMO the gateways should have higher priority. Another matching
>> option would be the order in sip.conf.
>>
>> regards
>> klaus
>>
>> asterisk at ntplx.net wrote:
>>> I have the same old problem that has come up before, I know this
>>> has asked before.
>>>
>>> I use a cisco AS5300 PRI gateway to connect the PSTN to asterisk 1.4
>>> with SIP. When a call comes into the PRI, the cisco sends it to
>>> asterisk with a from of the CID which is normally a 10 digit phone
>>> number. The cisco gateway is configured as a peer in the sip.conf  
>>> file
>>> and setup as insecure so asterisk can match the IP address.
>>>
>>> I also have some SIP ATA devices where the user name/device name is
>>> set as just the 10 digit phone number. This causes a problem for
>>> asterisk when one of the users calls back into the same system.
>>> The cisco box sends a SIP from with the 10 digit number and asterisk
>>> matches the username in sip.conf and says the authentication does
>>> not match (I want it to match the insecure gateway IP).
>>>
>>> If I change check_user_full in chan_sip.c to match IP peers first  
>>> then
>>> this seems to solve the problem for the cisco/asterisk system, but  
>>> seems
>>> it may cause future authentication issues for users. When a user  
>>> connects
>>> it matches the username and then later requests match the IP in the  
>>> peer
>>> list. Are authenticated uses added as peers? Do they expire?
>>>
>>> Other then not using the 10 digit number as a name for authentication
>>> to solve this issue, is there a real problem matching IP peers first?
>>> Why is this not done now? Why does asterisk not match peers by IP  
>>> after
>>> an authentication failure?
>>>
>>> Does any/all of this change in version 1.6/trunk?
>>>
>>>    Andrew
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>>
>>> asterisk-dev mailing list
>>> To UNSUBSCRIBE or update options visit:
>>>   http://lists.digium.com/mailman/listinfo/asterisk-dev
>>
>> _______________________________________________
>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>
>> asterisk-dev mailing list
>> To UNSUBSCRIBE or update options visit:
>>   http://lists.digium.com/mailman/listinfo/asterisk-dev
> 
> ---
> * Olle E Johansson - oej at edvina.net
> * Cell phone +46 70 593 68 51, Office +46 8 96 40 20, Sweden
> 
> 
> 
> 
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
> 
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev



More information about the asterisk-dev mailing list