Forum Index -> VoiceMac -> Keeps ringing after hangup
Delete Thread
Page First 1 Last

Chris Smith
March 10, 2011, 12:13:53 PM
I place a SIP call.

While the status shows as "Connecting...", I press Hangup.

The calling dialog goes away. But the audio keeps going with a ringing sound. The call never goes through. [Is VM generating the ringing audio based on status?]

If you make the same call again, the second call goes through.

If you Hangup after the status goes to Connected, everything works fine.

Mr. Gecko
March 10, 2011, 1:17:40 PM
According to the current code, it stops the ringing when you answer or ignore the call, so that means the first dialog you get, it will stop ringing no matter what button you push. You can see this at https://github.com/GRMrGecko/VoiceMac/blob/master/Classes/VoiceMac/SIP/MGMSIPCallWindow.m#L212M. I have no idea if it used to depend on the status, but it may have in the version you currently have. I have fixed a lot of things including the crash you sent in my latest version at http://dl.dropbox.com/u/610721/VoiceMac.zip.

Chris
March 10, 2011, 3:04:56 PM
I downloaded the copy I tested this morning from dropbox so I presume it is the latest.

This is on outgoing call - does your answer/ignore action apply to incoming calls?

Effect clearly depends on status. 100 percent reproducible

Will try tonite.

Mr. Gecko
March 10, 2011, 3:16:17 PM
Oh, you mean the ringback. It should stop after the call is disconnected. https://github.com/GRMrGecko/VoiceMac/blob/master/Classes/VoiceBase/SIP/MGMSIPCall.m#L117

Chris
March 10, 2011, 9:39:25 PM
Is this what Objective C looks like?

OK.. if you look at the answer and ignore handlers, you see:

(IBAction)answer:(id)sender {
[ringtone stop];
[ringtone release];
ringtone = nil;
...
}
- (IBAction)ignore:(id)sender {
[ringtone stop];
[ringtone release];
ringtone = nil;
...
}

But if you look at the hangup handler, there is nothing about stopping/releasing the ring tone:

(IBAction)hangUp:(id)sender {
[callWindow close];
[durationUpdater invalidate];
[durationUpdater release];
durationUpdater = nil;
[startTime release];
startTime = nil;
[call hangUp];
[SIPUser callDone:self];
}

I would suggest that, if ringtone is not nil, you stop and release it.

Not entirely sure what happens when status goes to "Connected".... Does the "confirmed" method get called? If so, it would seem to play another sound. I would presume that that cancels the ring tone.

Thanks for looking into this...

Mr. Gecko
March 10, 2011, 10:13:34 PM
Ringback and Ringtone is are 2 different things. The ringback plays when your calling someone, the ringtone plays when someone calls you. The ringback is what your having problems with, I fixed the issue by stopping it before it disconnects when you hangup on the call, but I would like to know why it isn't disconnecting when you hangup. The code hasn't been updated, nor have I updated the dropbox one. I'll take a look into this after I finish some stuff with the iPhone port.

chris
March 10, 2011, 10:20:06 PM
No problem. I'll be glad to test when a new copy is available.

I might even try my hand at installing xcode and seeing if I can actually compile this stuff.

Page First 1 Last
Name:
Email Address:
Message:
Image Verification:
verify
Refresh