[OpenSIPS-Users] Multiple Area Codes in Customer Area

osiris123d duane.larson at gmail.com
Wed Aug 26 05:13:20 CEST 2009


Got it working!  Man OpenSIPS sure can do anything with SIP

So here is what I did for future searchers

So the users account is a 7 digit DID number XXXXXXX at blah.com

I set up an AVP called areacode for the whole domain blah.com (this assumes
that the whole domain blah.com is only in one areacode)

opensipsctl avp add -T usr_preferences 0 at blah.com areacode 1 201
opensipsctl avp add -T usr_preferences 0 at foo.com areacode 1 339


In the opensips.cfg file I do the following (it depends on your config as to
where you want to put this)
if (uri=~"^sip:[2-9][0-9]{6}@") {
avp_db_load("$ru/domain","$avp(s:areacode)");
subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(s:areacode)\1@\2/i');
};

So when someone calls a 7 digit number the avp_db_load() loads the variable
for areacode and the subst_uri adds the areacode at the beginning of the
Request-URI.






Bogdan-Andrei Iancu wrote:
> 
> Hi Duane,
> 
> You can correlate AVPs you a USER, a DOAMAIN, etc - it is up to you, 
> from the script, when loading the AVP - is a pure logical mapping.
> 
> Regards,
> Bogdan
> 
> osiris123d wrote:
>> I was reading Flavio's "Building Telephony Systems with OpenSER" chapter
>> about AVPOPs and he mentions that AVP's can be used for a whole domain. 
>> I
>> was thinking that I might be able to configure a area code for Company
>> A's
>> domain and then route calls that way.  If not that then I can set the AVP
>> on
>> the fly within the transaction by looking at the callers Request URI's
>> first
>> 3 digits and route it appropriately.
>>
>>
>> Bogdan-Andrei Iancu wrote:
>>   
>>> Hi,
>>>
>>> Requirements on the format of  CONTACT and TO headers are nonsense as 
>>> they are not used for routing at all. Only FROM (which provides info on 
>>> the caller) and RURI (request URI) (which provide info on callee).
>>>
>>> So, bottom line, only the normalization of the RURI should be required 
>>> on the system.
>>>
>>> Regards,
>>> Bogdan
>>>
>>> osiris123d wrote:
>>>     
>>>> Thanks for the info.
>>>>
>>>> I will look into this and work up a config.
>>>>
>>>> I also got this direct email about my post from someone else who lives
>>>> in
>>>> the US.  I figured I would go ahead and post below what he sent just so
>>>> its
>>>> out there.
>>>>
>>>>
>>>> Hello Duane --  
>>>>
>>>> You have hit on one of the more difficult areas in SIP and telephony in
>>>> general -- especially here in the North American Numbering Plan.  Below
>>>> I
>>>> will address the problem in general, and not particularly related to
>>>> the
>>>> OpenSIPs question, because IMO you need a solution that will work in
>>>> any
>>>> architecture, not just OpenSIPs.
>>>>
>>>> In a nutshell, I recommend that for your USA users you:
>>>>
>>>> 1.) Require From: and Contact: headers to be in NANPA National (10
>>>> digit)
>>>> format.  This is method is standard in the telephone industry, and will
>>>> allow easy integration with North American ANI or Caller ID format,
>>>> especially when a call may eventually be handed off to the PSTN.   
>>>>
>>>> 2.)  Require incoming To: headers to be in e.164 International format,
>>>> i.e. 
>>>> NANPA-destination numbers all begin with the 1 digit, followed by the
>>>> 10
>>>> digit National number.   Any incoming call to 612xxxxxxx goes to
>>>> Sydney,
>>>> Austrailia, and not Minneapolis, MN.  This requirement should be
>>>> enforced
>>>> at
>>>> the perimeter of your network, where Customer Equipment can enforce the
>>>> "local" digit normalization policy.  
>>>>
>>>> 3.)  If you can't enforce #2 above, you will need to "Normalize"
>>>> incoming
>>>> calls to the e.164 International format prior to routing.  The
>>>> unfortunate
>>>> reality here in the USA is that the requirements for how many digits to
>>>> dial
>>>> for a given destination (the "dialing plan") depends on where the call
>>>> comes
>>>> from.   Here in the Chicago area, residents of the 847 area code must
>>>> today
>>>> dial all calls as 11 digits.  Calls within the 312 or 773 area code may
>>>> today be dialed as 7 digits, however beginning on 07 November, all
>>>> calls
>>>> originating in 312 and 773 must be dialed as 1+10 digits, due to the
>>>> new
>>>> 872
>>>> overlay area code.    For more information, see
>>>> http://www.nanpa.com/reports/NPA_Dialing_Plans_05_09.pdf
>>>>
>>>> 4.)  Finally, if you have any termination carriers who need special
>>>> "prefixes,"  append them after you have made your route selection.  
>>>>
>>>> If you would like further information or discussion, please feel free
>>>> to
>>>> contact me.
>>>>
>>>> John S. RobiXXXX
>>>>
>>>> jXX at communXXX.com
>>>>
>>>>
>>>>
>>>> Bogdan-Andrei Iancu wrote:
>>>>   
>>>>       
>>>>> Hi there,
>>>>>
>>>>> When you have to deal with local dialling you need consider the amount 
>>>>> of information yon need to keep in order to translate to national
>>>>> format 
>>>>> and the complexity of the processing you have to do.
>>>>>
>>>>> A compromise solution will be to keep in user profile some information 
>>>>> about the location (like for US, the 2 digits Id of the state) - this 
>>>>> will reduce the amount of data you need to keep per user. Also, this 
>>>>> info can be loaded at auth time, using "load_credentials" parameter 
>>>>> (just an example).
>>>>>
>>>>> Now, using the location information, you can use dialplan to do the 
>>>>> actual transformation. Like, if location is NJ (use a separate plan):
>>>>>     if 7 digits -> put 011-201 prefix
>>>>>     if  10 digits -> put 011 prefix
>>>>>
>>>>> And so on...
>>>>>
>>>>> This works pretty fine and scale (not for local dialling but for 
>>>>> national dialling in international platforms).
>>>>>
>>>>> Regards,
>>>>> Bogdan
>>>>>
>>>>> osiris123d wrote:
>>>>>     
>>>>>         
>>>>>> I was curious to see how people configure OpenSIPS when their
>>>>>> customers
>>>>>> could
>>>>>> potentially be in different area codes.  I am located in the US.  Say
>>>>>> I
>>>>>> have
>>>>>> customers that are in the following area codes
>>>>>>
>>>>>> 201-XXX-XXXX    <- New Jersey
>>>>>> 339-XXX-XXXX    <- Boston
>>>>>>
>>>>>> Initially when I was setting up users I configured the username to be
>>>>>> just
>>>>>> like the persons email address (ex. bobsmith at xyz.com), and configured
>>>>>> an
>>>>>> alias that included the DID for that person (ex. 2011XXXXX1 at xyz.com).
>>>>>>
>>>>>> So when bobsmith in New Jersey calls someone and just types 7 digits
>>>>>> then
>>>>>> obviously its local.  How do people out there using OpenSIPS usually
>>>>>> determine if the call is local or not?  I was thinking that I need to
>>>>>> swap
>>>>>> my username and alias around so that the username is the 10 digit DID
>>>>>> and
>>>>>> then I can look at the first 3 digits to see what the area code is. 
>>>>>> My
>>>>>> other idea was to set up Groups for each area code and add the users
>>>>>> to
>>>>>> their Area Code group and determine it that way.
>>>>>>
>>>>>> Am I looking at this the right way or am I making this more
>>>>>> complicated? 
>>>>>> I
>>>>>> would like to get my setup right the first time so that this config
>>>>>> scales
>>>>>> well.
>>>>>>
>>>>>> Thanks for any input.
>>>>>>   
>>>>>>       
>>>>>>           
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at lists.opensips.org
>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>>>
>>>>>     
>>>>>         
>>>>   
>>>>       
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>     
>>
>>   
> 
> 
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 
> 

-- 
View this message in context: http://n2.nabble.com/Multiple-Area-Codes-in-Customer-Area-tp3419932p3513813.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.



More information about the Users mailing list