MicroSIP Rejects Call if Headset in Cradle

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 1

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:

MicroSIP 2

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.