I’ve been testing the MicroSIP softphone version 3.21.4 on a Windows 10 computer. I could not figure out why MicroSIP would ring for half a second, then hang up (Decline) the incoming call,
I confirmed that DND was not enabled.
I could see in a Wireshark trace that MicroSIP was rejecting the call with “486 Busy Here”, but why?
MIcroSIP offers some pretty detailed logging. After turning that on, I confirmed that MicroSIP was intentionally rejecting the call with a 486 code. Again, why?
14:54:03.137 ec09363F98 Latency bufferring complete 14:54:03.623 Hid.cpp !IN --- Received report 2, length 3 bytes --- 14:54:03.623 Hid.cpp IN get 1 Usage(s): 14:54:03.623 Hid.cpp IN 2a 14:54:03.852 Hid.cpp IN --- Received report 2, length 3 bytes --- 14:54:03.852 Hid.cpp IN get 0 Usage(s): 14:54:03.852 Hid.cpp IN Event: Reject incoming call 14:54:03.852 pjsua_call.c Call 0 hanging up: code=486.. 14:54:03.852 pjsua_media.c .Call 0: deinitializing media..
I didn’t know what the messages from Hid.cpp meant, but it occurred to me that HID = Human Interface Device, usually referring to things like mice and keyboards, but what about a headset? I had configured MicroSIP to ring the phone using the computers default speakers, but to allow me to talk through my Jabra PRO 9470 headset:
The way I normally work is that the headset rests in its cradle most of the day. When I get an incoming call, I pick up the headset and put it over my head, then answer the call.
I discovered that if I put the headset on first, then call in, MicroSIP rings as expected; it does not reject the call. I tested this with both TLS and UDP transports, and it was consistent: MicroSIP immediately rejects the call if the headset is in its cradle.
Unfortunately, it would be uncomfortable to leave the headset on all day, not to mention draining its battery, so I guess that means I won’t be able to use MicroSIP for inbound calls.
cmdIncomingCall Not Working?
The main thing I wanted to test is the cmdIncomingCall setting in the microsip.ini file. According to the Help file
“cmdIncomingCall” – runs specified command when incoming call arrives. Caller ID passed as parameter.
It’s not entirely clear if “command” means “Windows program” or maybe “Windows batch file.” There are no examples, so it’s a guessing game how it works. I tried several times to pass an .exe or .cmd name to cmdIncomingCall, e.g.
cmdIncomingCall=MyProgram.exe
cmdIncomingCall=MyProgram.cmd
but every time, as soon as MicroSIP loaded microsip.ini, it blanked out the setting, leaving just
cmdIncomingCall=
If anyone has successfully used MicroSIP wtih cmdIncomingCall, please leave a comment!
Contact Form is Broken
I tried to contact the developer about this but when submitting the contact form, I kept getting the message Token is empty or Token is incorrect.