i am trying to architect a solution which will support many softphones for many users. My scenario is somewhat unique in that the softphones will ONLY be receiving calls and never making outbound calls.
I have a farm of 8 asterisk servers which process inbound and outbound calls for a virtual call center platform. These softphones are going to be for agents who are handling call center calls remotely.
What I am considering doing is having all the softphones register to a single asterisk machine. This machine will never process any audio, but will simply be used to issue re-invite requests. i am just checking to make sure I am heading down the right path here:
1 - Softphone registers with dedicated asterisk registrar server
2 - Inbound call arrives on one of the core 8 call processing servers. A lookup is done and it is determined an agent on a softphone should be the one to handle this inbound call. We will Dial(SIP) to the registrar server looking for a specific registered user.
3 - Call processing server sends SIP invite to registrar server for a specific user. The registrar server will perform a Dial() to the requested SIP softphone which registered in step 1.
4 - After the softphone issues a 200 OK the registrar asterisk server should issue a re-invite to both parties and remove itself from the media stream, thus allowing good scalability on the registrar server side.
Is there anything special i have to do here to make this work. So far it seems like this should work so long as the SIP peers all have canreinvite=yes.