I implemented twilio direct SIP calling with a SIP-Domain for in- and outbound with multiple SIP Clients using twilio functions without any additional PBX. Currently SIP inbound is configured in parallel, so all registered and online SIP endpoint ring. This is achieved with the following code fragment:
const dialer = twiml.dial({
ringTone: "de",
action: "https://...",
timeout: 25,
answerOnBridge: true,
callerId: event.From
})
dialer.sip('sip:accounta@demo1.sip.twilio.com');
dialer.sip('sip:accounta@demo2.sip.twilio.com');
dialer.sip('sip:accounta@demo3.sip.twilio.com');
Which is called on "Incoming Call" of the SIP-Domain. This works fine.
Currently all SIP phones ring when a new call comes in. Even the once which already are in an active call. Is there a way to only "ring" the SIP Endpoints currently not in a call, without running a full PBX? Maybe something like this?
Use Twilio Sync to "collect" the data, of all changing call status. Then use this data to only add the "free" sip endpoints in the code fragment above
Find a SIP softphone software, which "logs out" of SIP during a call. Doing this manually with MicroSIP client currently already works, but the agents need to manually login/logout on each call.
Any better solutions to this?
Find a SIP softphone software, which "logs out" of SIP during a call.
Softphone.Pro can "log out" while on call or ACW. It sends the SIP REGISTER Expires:0 message to your SIP server which means "unregister me immediately".
"UnregAccsForNA=1" configuration file parameter is what you need.