So I was able to get extensions working in both asterisk and ser.
Asterisk is designed as a PBX so all calls are routed through it, SER is designed like the internet and the router is just a location service. Once a SIP call is initiated through SER it's just the two clients talking to each other.
adding a user in asterisk at the simplest involves adding a sip user for authentication and then binding that user identity to an extension.
In sip the user identity is the extension, however if you want to make it easy for phones to dial the user id you can create aliases using the serctl command.
One major difficulty I had with getting ser working was the registration kept failing. It turns out that its really important for SER to know what all the hostnames its using are so it can know if a request is actualy being sent to itself.
Because my dns server reverse name lookup was broken it wasn't able to determine its FQDN. (there's a reason why you should always list names as "host.domain.name." in the reverse name tables, because if you don't know what you're doing its easy for the default domain to be wrong.
Once I got that fixed SER worked correctly
call transfer worked right too...