If you come from kamailio and transfer your setup to FreeSWITCH as SBC you can run into trouble cos kamailio is not case sensitive but FS is.
So sip:user1@FS-Box is not the same as sip:UsEr1@FS-Box.
Here is a solution to fix that and make FreeSWITCH not case sensitive.
First your directory/default/user1.xml needs to force the sipusername to lowercase. sip-force-user did the trick for us. Here an Example:
<include>
<user id="user1">
<params>
<param name="password" value="secretpass"/>
</params>
<variables>
<variable name="sip-force-user" value=user1"/>
<variable name="toll_allow" value="domestic,international,local"/>
<variable name="accountcode" value="user1"/>
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_name" value="user1/>
<variable name="effective_caller_id_number" value="user1"/>
<variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
<variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
</variables>
</user>
</include>
Then your dialplan extension should match User1 or user1 or UsEr1 – (?i) mades the condition match incasesensitve for you. For example dialplan/default/user1.xml. Hardwired is the lowercase dialed_extension – so it matches with the lowercase registration.
<extension name="user1">
<condition field="destination_number" expression="^(?i)(user1)$">
<action application="export" data="dialed_extension=user1"/>
<action application="set" data="ringback=${de-ring}"/>
<action application="set" data="transfer_ringback=$${de-ring}"/>
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="continue_on_fail=false"/>
<action application="bridge" data="sofia/external/${dialed_extension}%${domain_name}"/>
</condition>
</extension>
Thats all. Alternativ you can use in the sip_profile the option
<param name=“inbound-reg-force-matching-username“ value=“true“/>
That force Contact must match Username on register. Tested with FS 1.2.1